aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_ksc5.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_ksc5.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_ksc5.x385644
1 files changed, 385644 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_ksc5.x b/final/ABI-Testsuite/test/s2_6/T_ksc5.x
new file mode 100755
index 00000000..39ce7400
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_ksc5.x
@@ -0,0 +1,385644 @@
+// 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;
+};
+//SIG(-1 aa0) C1{ Fi}
+
+
+
+static void Test_aa0()
+{
+ {
+ init_simple_test("aa0");
+ aa0 lv;
+ check2(sizeof(lv), 4, "sizeof(aa0)");
+ check2(__alignof__(lv), 4, "__alignof__(aa0)");
+ check_field_offset(lv, a, 0, "aa0.a");
+ }
+}
+static Arrange_To_Call_Me vaa0(Test_aa0, "aa0", 4);
+
+#else // __cplusplus
+
+extern VTBL_ENTRY _ZTI3aa0[];
+VTBL_ENTRY *P__ZTI3aa0 = _ZTI3aa0;
+Class_Descriptor cd_aa0 = { "aa0", // class name
+ 0,0,//no base classes
+ 0, // no vftv
+ 0, //no vtt
+ 4, // object size
+ NSPAIRA(_ZTI3aa0),ABISELECT(16,8), //typeinfo_var
+ {0,0},0, // 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 aa1 {
+ int a;
+ virtual void foo(); // _ZN3aa13fooEv
+ ~aa1(); // tgen
+ aa1(); // tgen
+};
+//SIG(-1 aa1) C1{ v1 Fi}
+
+
+void aa1 ::foo(){vfunc_called(this, "_ZN3aa13fooEv");}
+aa1 ::~aa1(){ note_dtor("aa1", this);} // tgen
+aa1 ::aa1(){ note_ctor("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 aa2 {
+ int a;
+ virtual void foo(); // _ZN3aa23fooEv
+ virtual void bar(); // _ZN3aa23barEv
+ ~aa2(); // tgen
+ aa2(); // tgen
+};
+//SIG(-1 aa2) C1{ v1 v2 Fi}
+
+
+void aa2 ::foo(){vfunc_called(this, "_ZN3aa23fooEv");}
+void aa2 ::bar(){vfunc_called(this, "_ZN3aa23barEv");}
+aa2 ::~aa2(){ note_dtor("aa2", this);} // tgen
+aa2 ::aa2(){ note_ctor("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();
+extern void _ZN3aa23barEv();
+static VTBL_ENTRY vtc_aa2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3aa2[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&_ZN3aa23barEv,
+};
+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),4, //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 : virtual aa0 {
+ int b;
+ virtual void bar(); // _ZN4bb503barEv
+ ~bb50(); // tgen
+ bb50(); // tgen
+};
+//SIG(-1 bb50) C1{ VBC2{ Fi} v1 Fi}
+
+
+void bb50 ::bar(){vfunc_called(this, "_ZN4bb503barEv");}
+bb50 ::~bb50(){ note_dtor("bb50", this);} // tgen
+bb50 ::bb50(){ note_ctor("bb50", this);} // tgen
+
+static void Test_bb50()
+{
+ extern Class_Descriptor cd_bb50;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(3,4)];
+ init_test(&cd_bb50, buf);
+ bb50 *dp, &lv = *(dp=new (buf) bb50());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,12), "sizeof(bb50)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb50)");
+ check_base_class_offset(lv, (aa0*), ABISELECT(12,8), "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,12));
+
+#else // __cplusplus
+
+extern void _ZN4bb50C1Ev();
+extern void _ZN4bb50D1Ev();
+Name_Map name_map_bb50[] = {
+ NSPAIR(_ZN4bb50C1Ev),
+ NSPAIR(_ZN4bb50D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+static Base_Class bases_bb50[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(12,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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI4bb50[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_bb50[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV4bb50[];
+static VTT_ENTRY vtt_bb50[] = {
+ {&(_ZTV4bb50[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+Class_Descriptor cd_bb50 = { "bb50", // class name
+ bases_bb50, 1,
+ &(vtc_bb50[0]), // expected_vtbl_contents
+ &(vtt_bb50[0]), // expected_vtt_contents
+ ABISELECT(16,12), // object size
+ NSPAIRA(_ZTI4bb50),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb50),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4bb50),1, //virtual table table var
+ 0, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc050 : bb50 {
+ int c;
+ ~cc050(); // tgen
+ cc050(); // tgen
+};
+//SIG(-1 cc050) C1{ BC2{ VBC3{ Fi} v1 Fi} Fi}
+
+
+cc050 ::~cc050(){ note_dtor("cc050", this);} // tgen
+cc050 ::cc050(){ note_ctor("cc050", this);} // tgen
+
+static void Test_cc050()
+{
+ extern Class_Descriptor cd_cc050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc050, buf);
+ cc050 *dp, &lv = *(dp=new (buf) cc050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc050)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(16,12), "cc050");
+ check_base_class_offset(lv, (bb50*), 0, "cc050");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc050.c");
+ test_class_info(&lv, &cd_cc050);
+ dp->~cc050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc050(Test_cc050, "cc050", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc050C1Ev();
+extern void _ZN5cc050D1Ev();
+Name_Map name_map_cc050[] = {
+ NSPAIR(_ZN5cc050C1Ev),
+ NSPAIR(_ZN5cc050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_cc050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV5cc050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc050[] = {
+ {&(_ZTV5cc050[3]), 3,4},
+ {&(_tg__ZTV4bb50__5cc050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+Class_Descriptor cd_cc050 = { "cc050", // class name
+ bases_cc050, 2,
+ &(vtc_cc050[0]), // expected_vtbl_contents
+ &(vtt_cc050[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc050),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0050 : cc050 {
+ int d;
+ ~dd0050(); // tgen
+ dd0050(); // tgen
+};
+//SIG(-1 dd0050) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0050 ::~dd0050(){ note_dtor("dd0050", this);} // tgen
+dd0050 ::dd0050(){ note_ctor("dd0050", this);} // tgen
+
+static void Test_dd0050()
+{
+ extern Class_Descriptor cd_dd0050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0050, buf);
+ dd0050 *dp, &lv = *(dp=new (buf) dd0050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(20,16), "dd0050");
+ check_base_class_offset(lv, (bb50*)(cc050*), 0, "dd0050");
+ check_base_class_offset(lv, (cc050*), 0, "dd0050");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0050.d");
+ test_class_info(&lv, &cd_dd0050);
+ dp->~dd0050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0050(Test_dd0050, "dd0050", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0050C1Ev();
+extern void _ZN6dd0050D1Ev();
+Name_Map name_map_dd0050[] = {
+ NSPAIR(_ZN6dd0050C1Ev),
+ NSPAIR(_ZN6dd0050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd0050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd0050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd0050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd0050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0050[] = {
+ {&(_ZTV6dd0050[3]), 3,4},
+ {&(_tg__ZTV5cc050__6dd0050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd0050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+Class_Descriptor cd_dd0050 = { "dd0050", // class name
+ bases_dd0050, 3,
+ &(vtc_dd0050[0]), // expected_vtbl_contents
+ &(vtt_dd0050[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0050),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00050 : dd0050 {
+ int e;
+ ~ee00050(); // tgen
+ ee00050(); // tgen
+};
+//SIG(1 ee00050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00050 ::~ee00050(){ note_dtor("ee00050", this);} // tgen
+ee00050 ::ee00050(){ note_ctor("ee00050", this);} // tgen
+
+static void Test_ee00050()
+{
+ extern Class_Descriptor cd_ee00050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00050, buf);
+ ee00050 *dp, &lv = *(dp=new (buf) ee00050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(24,20), "ee00050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), 0, "ee00050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), 0, "ee00050");
+ check_base_class_offset(lv, (dd0050*), 0, "ee00050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00050.e");
+ test_class_info(&lv, &cd_ee00050);
+ dp->~ee00050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00050(Test_ee00050, "ee00050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00050C1Ev();
+extern void _ZN7ee00050D1Ev();
+Name_Map name_map_ee00050[] = {
+ NSPAIR(_ZN7ee00050C1Ev),
+ NSPAIR(_ZN7ee00050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee00050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee00050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee00050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee00050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee00050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00050[] = {
+ {&(_ZTV7ee00050[3]), 3,4},
+ {&(_tg__ZTV6dd0050__7ee00050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee00050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee00050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00050[];
+extern VTBL_ENTRY _ZTV7ee00050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00050[];
+Class_Descriptor cd_ee00050 = { "ee00050", // class name
+ bases_ee00050, 4,
+ &(vtc_ee00050[0]), // expected_vtbl_contents
+ &(vtt_ee00050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10050 : virtual dd0050 {
+ int e;
+ ~ee10050(); // tgen
+ ee10050(); // tgen
+};
+//SIG(1 ee10050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10050 ::~ee10050(){ note_dtor("ee10050", this);} // tgen
+ee10050 ::ee10050(){ note_ctor("ee10050", this);} // tgen
+
+static void Test_ee10050()
+{
+ extern Class_Descriptor cd_ee10050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10050, buf);
+ ee10050 *dp, &lv = *(dp=new (buf) ee10050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(36,24), "ee10050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), ABISELECT(16,8), "ee10050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), ABISELECT(16,8), "ee10050");
+ check_base_class_offset(lv, (dd0050*), ABISELECT(16,8), "ee10050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10050.e");
+ test_class_info(&lv, &cd_ee10050);
+ dp->~ee10050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10050(Test_ee10050, "ee10050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10050C1Ev();
+extern void _ZN7ee10050D1Ev();
+Name_Map name_map_ee10050[] = {
+ NSPAIR(_ZN7ee10050C1Ev),
+ NSPAIR(_ZN7ee10050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee10050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee10050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10050[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee10050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee10050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee10050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10050[] = {
+ {&(_ZTV7ee10050[4]), 4,9},
+ {&(_ZTV7ee10050[8]), 8,9},
+ {&(_tg__ZTV6dd0050__7ee10050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee10050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee10050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10050[];
+extern VTBL_ENTRY _ZTV7ee10050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10050[];
+Class_Descriptor cd_ee10050 = { "ee10050", // class name
+ bases_ee10050, 4,
+ &(vtc_ee10050[0]), // expected_vtbl_contents
+ &(vtt_ee10050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10050),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20050 : dd0050 {
+ int e;
+ virtual void foo(); // _ZN7ee200503fooEv
+ ~ee20050(); // tgen
+ ee20050(); // tgen
+};
+//SIG(1 ee20050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20050 ::foo(){vfunc_called(this, "_ZN7ee200503fooEv");}
+ee20050 ::~ee20050(){ note_dtor("ee20050", this);} // tgen
+ee20050 ::ee20050(){ note_ctor("ee20050", this);} // tgen
+
+static void Test_ee20050()
+{
+ extern Class_Descriptor cd_ee20050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20050, buf);
+ ee20050 *dp, &lv = *(dp=new (buf) ee20050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(24,20), "ee20050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), 0, "ee20050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), 0, "ee20050");
+ check_base_class_offset(lv, (dd0050*), 0, "ee20050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20050.e");
+ test_class_info(&lv, &cd_ee20050);
+ dp->~ee20050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20050(Test_ee20050, "ee20050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20050C1Ev();
+extern void _ZN7ee20050D1Ev();
+Name_Map name_map_ee20050[] = {
+ NSPAIR(_ZN7ee20050C1Ev),
+ NSPAIR(_ZN7ee20050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee20050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20050[];
+extern void _ZN4bb503barEv();
+extern void _ZN7ee200503fooEv();
+static VTBL_ENTRY vtc_ee20050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN7ee200503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee20050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee20050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee20050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20050[] = {
+ {&(_ZTV7ee20050[3]), 3,5},
+ {&(_tg__ZTV6dd0050__7ee20050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee20050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee20050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20050[];
+extern VTBL_ENTRY _ZTV7ee20050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20050[];
+Class_Descriptor cd_ee20050 = { "ee20050", // class name
+ bases_ee20050, 4,
+ &(vtc_ee20050[0]), // expected_vtbl_contents
+ &(vtt_ee20050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30050 : virtual dd0050 {
+ int e;
+ virtual void foo(); // _ZN7ee300503fooEv
+ ~ee30050(); // tgen
+ ee30050(); // tgen
+};
+//SIG(1 ee30050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30050 ::foo(){vfunc_called(this, "_ZN7ee300503fooEv");}
+ee30050 ::~ee30050(){ note_dtor("ee30050", this);} // tgen
+ee30050 ::ee30050(){ note_ctor("ee30050", this);} // tgen
+
+static void Test_ee30050()
+{
+ extern Class_Descriptor cd_ee30050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30050, buf);
+ ee30050 *dp, &lv = *(dp=new (buf) ee30050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(36,24), "ee30050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), ABISELECT(16,8), "ee30050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), ABISELECT(16,8), "ee30050");
+ check_base_class_offset(lv, (dd0050*), ABISELECT(16,8), "ee30050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30050.e");
+ test_class_info(&lv, &cd_ee30050);
+ dp->~ee30050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30050(Test_ee30050, "ee30050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30050C1Ev();
+extern void _ZN7ee30050D1Ev();
+Name_Map name_map_ee30050[] = {
+ NSPAIR(_ZN7ee30050C1Ev),
+ NSPAIR(_ZN7ee30050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee30050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30050[];
+extern void _ZN7ee300503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee30050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30050[0]),
+ (VTBL_ENTRY)&_ZN7ee300503fooEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee30050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee30050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee30050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30050[] = {
+ {&(_ZTV7ee30050[4]), 4,10},
+ {&(_ZTV7ee30050[9]), 9,10},
+ {&(_tg__ZTV6dd0050__7ee30050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee30050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee30050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30050[];
+extern VTBL_ENTRY _ZTV7ee30050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30050[];
+Class_Descriptor cd_ee30050 = { "ee30050", // class name
+ bases_ee30050, 4,
+ &(vtc_ee30050[0]), // expected_vtbl_contents
+ &(vtt_ee30050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40050 : dd0050 {
+ int e;
+ virtual void bar(); // _ZN7ee400503barEv
+ ~ee40050(); // tgen
+ ee40050(); // tgen
+};
+//SIG(1 ee40050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40050 ::bar(){vfunc_called(this, "_ZN7ee400503barEv");}
+ee40050 ::~ee40050(){ note_dtor("ee40050", this);} // tgen
+ee40050 ::ee40050(){ note_ctor("ee40050", this);} // tgen
+
+static void Test_ee40050()
+{
+ extern Class_Descriptor cd_ee40050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40050, buf);
+ ee40050 *dp, &lv = *(dp=new (buf) ee40050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(24,20), "ee40050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), 0, "ee40050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), 0, "ee40050");
+ check_base_class_offset(lv, (dd0050*), 0, "ee40050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40050.e");
+ test_class_info(&lv, &cd_ee40050);
+ dp->~ee40050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40050(Test_ee40050, "ee40050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40050C1Ev();
+extern void _ZN7ee40050D1Ev();
+Name_Map name_map_ee40050[] = {
+ NSPAIR(_ZN7ee40050C1Ev),
+ NSPAIR(_ZN7ee40050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee40050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40050[];
+extern void _ZN7ee400503barEv();
+static VTBL_ENTRY vtc_ee40050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40050[0]),
+ (VTBL_ENTRY)&_ZN7ee400503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee40050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee40050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee40050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40050[] = {
+ {&(_ZTV7ee40050[3]), 3,4},
+ {&(_tg__ZTV6dd0050__7ee40050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee40050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee40050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40050[];
+extern VTBL_ENTRY _ZTV7ee40050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40050[];
+Class_Descriptor cd_ee40050 = { "ee40050", // class name
+ bases_ee40050, 4,
+ &(vtc_ee40050[0]), // expected_vtbl_contents
+ &(vtt_ee40050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50050 : virtual dd0050 {
+ int e;
+ virtual void bar(); // _ZN7ee500503barEv
+ ~ee50050(); // tgen
+ ee50050(); // tgen
+};
+//SIG(1 ee50050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50050 ::bar(){vfunc_called(this, "_ZN7ee500503barEv");}
+ee50050 ::~ee50050(){ note_dtor("ee50050", this);} // tgen
+ee50050 ::ee50050(){ note_ctor("ee50050", this);} // tgen
+
+static void Test_ee50050()
+{
+ extern Class_Descriptor cd_ee50050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50050, buf);
+ ee50050 *dp, &lv = *(dp=new (buf) ee50050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(36,24), "ee50050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), ABISELECT(16,8), "ee50050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), ABISELECT(16,8), "ee50050");
+ check_base_class_offset(lv, (dd0050*), ABISELECT(16,8), "ee50050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50050.e");
+ test_class_info(&lv, &cd_ee50050);
+ dp->~ee50050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50050(Test_ee50050, "ee50050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50050C1Ev();
+extern void _ZN7ee50050D1Ev();
+Name_Map name_map_ee50050[] = {
+ NSPAIR(_ZN7ee50050C1Ev),
+ NSPAIR(_ZN7ee50050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee50050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50050[];
+extern void _ZN7ee500503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500503barEv,_ZTv0_n16_N7ee500503barEv)();
+extern void ABISELECT(_ZThn16_N7ee500503barEv,_ZThn8_N7ee500503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50050[0]),
+ (VTBL_ENTRY)&_ZN7ee500503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500503barEv,_ZTv0_n16_N7ee500503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee50050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee50050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee50050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50050[] = {
+ {&(_ZTV7ee50050[4]), 4,10},
+ {&(_ZTV7ee50050[9]), 9,10},
+ {&(_tg__ZTV6dd0050__7ee50050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee50050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee50050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50050[];
+extern VTBL_ENTRY _ZTV7ee50050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50050[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500503barEv,_ZTv0_n16_N7ee500503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500503barEv,_ZThn8_N7ee500503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50050 = { "ee50050", // class name
+ bases_ee50050, 4,
+ &(vtc_ee50050[0]), // expected_vtbl_contents
+ &(vtt_ee50050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60050 : dd0050 {
+ int e;
+ virtual void foo(); // _ZN7ee600503fooEv
+ virtual void bar(); // _ZN7ee600503barEv
+ ~ee60050(); // tgen
+ ee60050(); // tgen
+};
+//SIG(1 ee60050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60050 ::foo(){vfunc_called(this, "_ZN7ee600503fooEv");}
+void ee60050 ::bar(){vfunc_called(this, "_ZN7ee600503barEv");}
+ee60050 ::~ee60050(){ note_dtor("ee60050", this);} // tgen
+ee60050 ::ee60050(){ note_ctor("ee60050", this);} // tgen
+
+static void Test_ee60050()
+{
+ extern Class_Descriptor cd_ee60050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60050, buf);
+ ee60050 *dp, &lv = *(dp=new (buf) ee60050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(24,20), "ee60050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), 0, "ee60050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), 0, "ee60050");
+ check_base_class_offset(lv, (dd0050*), 0, "ee60050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60050.e");
+ test_class_info(&lv, &cd_ee60050);
+ dp->~ee60050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60050(Test_ee60050, "ee60050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60050C1Ev();
+extern void _ZN7ee60050D1Ev();
+Name_Map name_map_ee60050[] = {
+ NSPAIR(_ZN7ee60050C1Ev),
+ NSPAIR(_ZN7ee60050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee60050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60050[];
+extern void _ZN7ee600503barEv();
+extern void _ZN7ee600503fooEv();
+static VTBL_ENTRY vtc_ee60050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60050[0]),
+ (VTBL_ENTRY)&_ZN7ee600503barEv,
+ (VTBL_ENTRY)&_ZN7ee600503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee60050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee60050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee60050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee60050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60050[] = {
+ {&(_ZTV7ee60050[3]), 3,5},
+ {&(_tg__ZTV6dd0050__7ee60050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee60050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee60050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60050[];
+extern VTBL_ENTRY _ZTV7ee60050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60050[];
+Class_Descriptor cd_ee60050 = { "ee60050", // class name
+ bases_ee60050, 4,
+ &(vtc_ee60050[0]), // expected_vtbl_contents
+ &(vtt_ee60050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70050 : virtual dd0050 {
+ int e;
+ virtual void foo(); // _ZN7ee700503fooEv
+ virtual void bar(); // _ZN7ee700503barEv
+ ~ee70050(); // tgen
+ ee70050(); // tgen
+};
+//SIG(1 ee70050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70050 ::foo(){vfunc_called(this, "_ZN7ee700503fooEv");}
+void ee70050 ::bar(){vfunc_called(this, "_ZN7ee700503barEv");}
+ee70050 ::~ee70050(){ note_dtor("ee70050", this);} // tgen
+ee70050 ::ee70050(){ note_ctor("ee70050", this);} // tgen
+
+static void Test_ee70050()
+{
+ extern Class_Descriptor cd_ee70050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70050, buf);
+ ee70050 *dp, &lv = *(dp=new (buf) ee70050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd0050*), ABISELECT(36,24), "ee70050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd0050*), ABISELECT(16,8), "ee70050");
+ check_base_class_offset(lv, (cc050*)(dd0050*), ABISELECT(16,8), "ee70050");
+ check_base_class_offset(lv, (dd0050*), ABISELECT(16,8), "ee70050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70050.e");
+ test_class_info(&lv, &cd_ee70050);
+ dp->~ee70050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70050(Test_ee70050, "ee70050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70050C1Ev();
+extern void _ZN7ee70050D1Ev();
+Name_Map name_map_ee70050[] = {
+ NSPAIR(_ZN7ee70050C1Ev),
+ NSPAIR(_ZN7ee70050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd0050;
+extern VTBL_ENTRY _ZTI6dd0050[];
+extern VTBL_ENTRY _ZTV6dd0050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0050[];
+static Base_Class bases_ee70050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0050, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70050[];
+extern void _ZN7ee700503fooEv();
+extern void _ZN7ee700503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee700503barEv,_ZTv0_n16_N7ee700503barEv)();
+extern void ABISELECT(_ZThn16_N7ee700503barEv,_ZThn8_N7ee700503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70050[0]),
+ (VTBL_ENTRY)&_ZN7ee700503fooEv,
+ (VTBL_ENTRY)&_ZN7ee700503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700503barEv,_ZTv0_n16_N7ee700503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0050__7ee70050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd0050__7ee70050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd0050__7ee70050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70050[] = {
+ {&(_ZTV7ee70050[4]), 4,11},
+ {&(_ZTV7ee70050[10]), 10,11},
+ {&(_tg__ZTV6dd0050__7ee70050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd0050__7ee70050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd0050__7ee70050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70050[];
+extern VTBL_ENTRY _ZTV7ee70050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70050[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700503barEv,_ZTv0_n16_N7ee700503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700503barEv,_ZThn8_N7ee700503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70050 = { "ee70050", // class name
+ bases_ee70050, 4,
+ &(vtc_ee70050[0]), // expected_vtbl_contents
+ &(vtt_ee70050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1050 : virtual cc050 {
+ int d;
+ ~dd1050(); // tgen
+ dd1050(); // tgen
+};
+//SIG(-1 dd1050) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1050 ::~dd1050(){ note_dtor("dd1050", this);} // tgen
+dd1050 ::dd1050(){ note_ctor("dd1050", this);} // tgen
+
+static void Test_dd1050()
+{
+ extern Class_Descriptor cd_dd1050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1050, buf);
+ dd1050 *dp, &lv = *(dp=new (buf) dd1050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,20), "dd1050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,8), "dd1050");
+ check_base_class_offset(lv, (cc050*), ABISELECT(16,8), "dd1050");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1050.d");
+ test_class_info(&lv, &cd_dd1050);
+ dp->~dd1050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1050(Test_dd1050, "dd1050", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1050C1Ev();
+extern void _ZN6dd1050D1Ev();
+Name_Map name_map_dd1050[] = {
+ NSPAIR(_ZN6dd1050C1Ev),
+ NSPAIR(_ZN6dd1050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd1050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd1050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd1050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1050[] = {
+ {&(_ZTV6dd1050[4]), 4,9},
+ {&(_ZTV6dd1050[8]), 8,9},
+ {&(_tg__ZTV5cc050__6dd1050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd1050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+Class_Descriptor cd_dd1050 = { "dd1050", // class name
+ bases_dd1050, 3,
+ &(vtc_dd1050[0]), // expected_vtbl_contents
+ &(vtt_dd1050[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1050),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1050),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01050 : dd1050 {
+ int e;
+ ~ee01050(); // tgen
+ ee01050(); // tgen
+};
+//SIG(1 ee01050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01050 ::~ee01050(){ note_dtor("ee01050", this);} // tgen
+ee01050 ::ee01050(){ note_ctor("ee01050", this);} // tgen
+
+static void Test_ee01050()
+{
+ extern Class_Descriptor cd_ee01050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01050, buf);
+ ee01050 *dp, &lv = *(dp=new (buf) ee01050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee01050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee01050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(16,12), "ee01050");
+ check_base_class_offset(lv, (dd1050*), 0, "ee01050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01050.e");
+ test_class_info(&lv, &cd_ee01050);
+ dp->~ee01050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01050(Test_ee01050, "ee01050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01050C1Ev();
+extern void _ZN7ee01050D1Ev();
+Name_Map name_map_ee01050[] = {
+ NSPAIR(_ZN7ee01050C1Ev),
+ NSPAIR(_ZN7ee01050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee01050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee01050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01050[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee01050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee01050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee01050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee01050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01050[] = {
+ {&(_ZTV7ee01050[4]), 4,9},
+ {&(_tg__ZTV6dd1050__7ee01050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee01050[4]), 4,5},
+ {&(_ZTV7ee01050[8]), 8,9},
+ {&(_tg__ZTV5cc050__7ee01050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee01050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01050[];
+extern VTBL_ENTRY _ZTV7ee01050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01050[];
+Class_Descriptor cd_ee01050 = { "ee01050", // class name
+ bases_ee01050, 4,
+ &(vtc_ee01050[0]), // expected_vtbl_contents
+ &(vtt_ee01050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01050),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11050 : virtual dd1050 {
+ int e;
+ ~ee11050(); // tgen
+ ee11050(); // tgen
+};
+//SIG(1 ee11050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11050 ::~ee11050(){ note_dtor("ee11050", this);} // tgen
+ee11050 ::ee11050(){ note_ctor("ee11050", this);} // tgen
+
+static void Test_ee11050()
+{
+ extern Class_Descriptor cd_ee11050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11050, buf);
+ ee11050 *dp, &lv = *(dp=new (buf) ee11050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee11050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee11050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(32,16), "ee11050");
+ check_base_class_offset(lv, (dd1050*), ABISELECT(16,8), "ee11050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11050.e");
+ test_class_info(&lv, &cd_ee11050);
+ dp->~ee11050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11050(Test_ee11050, "ee11050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11050C1Ev();
+extern void _ZN7ee11050D1Ev();
+Name_Map name_map_ee11050[] = {
+ NSPAIR(_ZN7ee11050C1Ev),
+ NSPAIR(_ZN7ee11050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee11050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI7ee11050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee11050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11050[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11050[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee11050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee11050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee11050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee11050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11050[] = {
+ {&(_ZTV7ee11050[5]), 5,14},
+ {&(_ZTV7ee11050[9]), 9,14},
+ {&(_ZTV7ee11050[13]), 13,14},
+ {&(_tg__ZTV6dd1050__7ee11050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee11050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee11050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee11050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11050[];
+extern VTBL_ENTRY _ZTV7ee11050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11050[];
+Class_Descriptor cd_ee11050 = { "ee11050", // class name
+ bases_ee11050, 4,
+ &(vtc_ee11050[0]), // expected_vtbl_contents
+ &(vtt_ee11050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11050),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21050 : dd1050 {
+ int e;
+ virtual void foo(); // _ZN7ee210503fooEv
+ ~ee21050(); // tgen
+ ee21050(); // tgen
+};
+//SIG(1 ee21050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21050 ::foo(){vfunc_called(this, "_ZN7ee210503fooEv");}
+ee21050 ::~ee21050(){ note_dtor("ee21050", this);} // tgen
+ee21050 ::ee21050(){ note_ctor("ee21050", this);} // tgen
+
+static void Test_ee21050()
+{
+ extern Class_Descriptor cd_ee21050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21050, buf);
+ ee21050 *dp, &lv = *(dp=new (buf) ee21050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee21050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee21050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(16,12), "ee21050");
+ check_base_class_offset(lv, (dd1050*), 0, "ee21050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21050.e");
+ test_class_info(&lv, &cd_ee21050);
+ dp->~ee21050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21050(Test_ee21050, "ee21050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21050C1Ev();
+extern void _ZN7ee21050D1Ev();
+Name_Map name_map_ee21050[] = {
+ NSPAIR(_ZN7ee21050C1Ev),
+ NSPAIR(_ZN7ee21050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee21050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21050[];
+extern void _ZN7ee210503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee21050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21050[0]),
+ (VTBL_ENTRY)&_ZN7ee210503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee21050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee21050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee21050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee21050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21050[] = {
+ {&(_ZTV7ee21050[4]), 4,10},
+ {&(_tg__ZTV6dd1050__7ee21050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee21050[4]), 4,5},
+ {&(_ZTV7ee21050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee21050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee21050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21050[];
+extern VTBL_ENTRY _ZTV7ee21050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21050[];
+Class_Descriptor cd_ee21050 = { "ee21050", // class name
+ bases_ee21050, 4,
+ &(vtc_ee21050[0]), // expected_vtbl_contents
+ &(vtt_ee21050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31050 : virtual dd1050 {
+ int e;
+ virtual void foo(); // _ZN7ee310503fooEv
+ ~ee31050(); // tgen
+ ee31050(); // tgen
+};
+//SIG(1 ee31050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31050 ::foo(){vfunc_called(this, "_ZN7ee310503fooEv");}
+ee31050 ::~ee31050(){ note_dtor("ee31050", this);} // tgen
+ee31050 ::ee31050(){ note_ctor("ee31050", this);} // tgen
+
+static void Test_ee31050()
+{
+ extern Class_Descriptor cd_ee31050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31050, buf);
+ ee31050 *dp, &lv = *(dp=new (buf) ee31050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee31050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee31050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(32,16), "ee31050");
+ check_base_class_offset(lv, (dd1050*), ABISELECT(16,8), "ee31050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31050.e");
+ test_class_info(&lv, &cd_ee31050);
+ dp->~ee31050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31050(Test_ee31050, "ee31050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31050C1Ev();
+extern void _ZN7ee31050D1Ev();
+Name_Map name_map_ee31050[] = {
+ NSPAIR(_ZN7ee31050C1Ev),
+ NSPAIR(_ZN7ee31050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee31050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31050[];
+extern void _ZN7ee310503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee31050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31050[0]),
+ (VTBL_ENTRY)&_ZN7ee310503fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31050[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee31050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee31050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee31050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee31050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31050[] = {
+ {&(_ZTV7ee31050[5]), 5,15},
+ {&(_ZTV7ee31050[10]), 10,15},
+ {&(_ZTV7ee31050[14]), 14,15},
+ {&(_tg__ZTV6dd1050__7ee31050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee31050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee31050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee31050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31050[];
+extern VTBL_ENTRY _ZTV7ee31050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31050[];
+Class_Descriptor cd_ee31050 = { "ee31050", // class name
+ bases_ee31050, 4,
+ &(vtc_ee31050[0]), // expected_vtbl_contents
+ &(vtt_ee31050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31050),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41050 : dd1050 {
+ int e;
+ virtual void bar(); // _ZN7ee410503barEv
+ ~ee41050(); // tgen
+ ee41050(); // tgen
+};
+//SIG(1 ee41050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41050 ::bar(){vfunc_called(this, "_ZN7ee410503barEv");}
+ee41050 ::~ee41050(){ note_dtor("ee41050", this);} // tgen
+ee41050 ::ee41050(){ note_ctor("ee41050", this);} // tgen
+
+static void Test_ee41050()
+{
+ extern Class_Descriptor cd_ee41050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41050, buf);
+ ee41050 *dp, &lv = *(dp=new (buf) ee41050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee41050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee41050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(16,12), "ee41050");
+ check_base_class_offset(lv, (dd1050*), 0, "ee41050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41050.e");
+ test_class_info(&lv, &cd_ee41050);
+ dp->~ee41050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41050(Test_ee41050, "ee41050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41050C1Ev();
+extern void _ZN7ee41050D1Ev();
+Name_Map name_map_ee41050[] = {
+ NSPAIR(_ZN7ee41050C1Ev),
+ NSPAIR(_ZN7ee41050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee41050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41050[];
+extern void _ZN7ee410503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410503barEv,_ZTv0_n16_N7ee410503barEv)();
+extern void ABISELECT(_ZThn16_N7ee410503barEv,_ZThn12_N7ee410503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41050[0]),
+ (VTBL_ENTRY)&_ZN7ee410503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410503barEv,_ZTv0_n16_N7ee410503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee41050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee41050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee41050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee41050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41050[] = {
+ {&(_ZTV7ee41050[4]), 4,10},
+ {&(_tg__ZTV6dd1050__7ee41050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee41050[4]), 4,5},
+ {&(_ZTV7ee41050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee41050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee41050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41050[];
+extern VTBL_ENTRY _ZTV7ee41050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41050[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410503barEv,_ZTv0_n16_N7ee410503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410503barEv,_ZThn12_N7ee410503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41050 = { "ee41050", // class name
+ bases_ee41050, 4,
+ &(vtc_ee41050[0]), // expected_vtbl_contents
+ &(vtt_ee41050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51050 : virtual dd1050 {
+ int e;
+ virtual void bar(); // _ZN7ee510503barEv
+ ~ee51050(); // tgen
+ ee51050(); // tgen
+};
+//SIG(1 ee51050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51050 ::bar(){vfunc_called(this, "_ZN7ee510503barEv");}
+ee51050 ::~ee51050(){ note_dtor("ee51050", this);} // tgen
+ee51050 ::ee51050(){ note_ctor("ee51050", this);} // tgen
+
+static void Test_ee51050()
+{
+ extern Class_Descriptor cd_ee51050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51050, buf);
+ ee51050 *dp, &lv = *(dp=new (buf) ee51050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee51050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee51050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(32,16), "ee51050");
+ check_base_class_offset(lv, (dd1050*), ABISELECT(16,8), "ee51050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51050.e");
+ test_class_info(&lv, &cd_ee51050);
+ dp->~ee51050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51050(Test_ee51050, "ee51050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51050C1Ev();
+extern void _ZN7ee51050D1Ev();
+Name_Map name_map_ee51050[] = {
+ NSPAIR(_ZN7ee51050C1Ev),
+ NSPAIR(_ZN7ee51050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee51050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51050[];
+extern void _ZN7ee510503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510503barEv,_ZTv0_n16_N7ee510503barEv)();
+extern void ABISELECT(_ZThn32_N7ee510503barEv,_ZThn16_N7ee510503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51050[0]),
+ (VTBL_ENTRY)&_ZN7ee510503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51050[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510503barEv,_ZTv0_n16_N7ee510503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee51050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee51050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee51050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee51050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51050[] = {
+ {&(_ZTV7ee51050[5]), 5,15},
+ {&(_ZTV7ee51050[10]), 10,15},
+ {&(_ZTV7ee51050[14]), 14,15},
+ {&(_tg__ZTV6dd1050__7ee51050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee51050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee51050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee51050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51050[];
+extern VTBL_ENTRY _ZTV7ee51050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51050[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510503barEv,_ZTv0_n16_N7ee510503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510503barEv,_ZThn16_N7ee510503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51050 = { "ee51050", // class name
+ bases_ee51050, 4,
+ &(vtc_ee51050[0]), // expected_vtbl_contents
+ &(vtt_ee51050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51050),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61050 : dd1050 {
+ int e;
+ virtual void foo(); // _ZN7ee610503fooEv
+ virtual void bar(); // _ZN7ee610503barEv
+ ~ee61050(); // tgen
+ ee61050(); // tgen
+};
+//SIG(1 ee61050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61050 ::foo(){vfunc_called(this, "_ZN7ee610503fooEv");}
+void ee61050 ::bar(){vfunc_called(this, "_ZN7ee610503barEv");}
+ee61050 ::~ee61050(){ note_dtor("ee61050", this);} // tgen
+ee61050 ::ee61050(){ note_ctor("ee61050", this);} // tgen
+
+static void Test_ee61050()
+{
+ extern Class_Descriptor cd_ee61050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61050, buf);
+ ee61050 *dp, &lv = *(dp=new (buf) ee61050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee61050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee61050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(16,12), "ee61050");
+ check_base_class_offset(lv, (dd1050*), 0, "ee61050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61050.e");
+ test_class_info(&lv, &cd_ee61050);
+ dp->~ee61050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61050(Test_ee61050, "ee61050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61050C1Ev();
+extern void _ZN7ee61050D1Ev();
+Name_Map name_map_ee61050[] = {
+ NSPAIR(_ZN7ee61050C1Ev),
+ NSPAIR(_ZN7ee61050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee61050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61050[];
+extern void _ZN7ee610503fooEv();
+extern void _ZN7ee610503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee610503barEv,_ZTv0_n16_N7ee610503barEv)();
+extern void ABISELECT(_ZThn16_N7ee610503barEv,_ZThn12_N7ee610503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61050[0]),
+ (VTBL_ENTRY)&_ZN7ee610503fooEv,
+ (VTBL_ENTRY)&_ZN7ee610503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610503barEv,_ZTv0_n16_N7ee610503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee61050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee61050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee61050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee61050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61050[] = {
+ {&(_ZTV7ee61050[4]), 4,11},
+ {&(_tg__ZTV6dd1050__7ee61050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee61050[4]), 4,5},
+ {&(_ZTV7ee61050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee61050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee61050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61050[];
+extern VTBL_ENTRY _ZTV7ee61050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61050[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610503barEv,_ZTv0_n16_N7ee610503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610503barEv,_ZThn12_N7ee610503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61050 = { "ee61050", // class name
+ bases_ee61050, 4,
+ &(vtc_ee61050[0]), // expected_vtbl_contents
+ &(vtt_ee61050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71050 : virtual dd1050 {
+ int e;
+ virtual void foo(); // _ZN7ee710503fooEv
+ virtual void bar(); // _ZN7ee710503barEv
+ ~ee71050(); // tgen
+ ee71050(); // tgen
+};
+//SIG(1 ee71050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71050 ::foo(){vfunc_called(this, "_ZN7ee710503fooEv");}
+void ee71050 ::bar(){vfunc_called(this, "_ZN7ee710503barEv");}
+ee71050 ::~ee71050(){ note_dtor("ee71050", this);} // tgen
+ee71050 ::ee71050(){ note_ctor("ee71050", this);} // tgen
+
+static void Test_ee71050()
+{
+ extern Class_Descriptor cd_ee71050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71050, buf);
+ ee71050 *dp, &lv = *(dp=new (buf) ee71050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee71050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee71050");
+ check_base_class_offset(lv, (cc050*)(dd1050*), ABISELECT(32,16), "ee71050");
+ check_base_class_offset(lv, (dd1050*), ABISELECT(16,8), "ee71050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71050.e");
+ test_class_info(&lv, &cd_ee71050);
+ dp->~ee71050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71050(Test_ee71050, "ee71050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71050C1Ev();
+extern void _ZN7ee71050D1Ev();
+Name_Map name_map_ee71050[] = {
+ NSPAIR(_ZN7ee71050C1Ev),
+ NSPAIR(_ZN7ee71050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd1050;
+extern VTBL_ENTRY _ZTI6dd1050[];
+extern VTBL_ENTRY _ZTV6dd1050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1050[];
+static Base_Class bases_ee71050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1050, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71050[];
+extern void _ZN7ee710503fooEv();
+extern void _ZN7ee710503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee710503barEv,_ZTv0_n16_N7ee710503barEv)();
+extern void ABISELECT(_ZThn32_N7ee710503barEv,_ZThn16_N7ee710503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71050[0]),
+ (VTBL_ENTRY)&_ZN7ee710503fooEv,
+ (VTBL_ENTRY)&_ZN7ee710503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71050[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710503barEv,_ZTv0_n16_N7ee710503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71050[];
+static VTBL_ENTRY _tg__ZTV6dd1050__7ee71050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd1050__7ee71050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee71050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee71050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71050[] = {
+ {&(_ZTV7ee71050[5]), 5,16},
+ {&(_ZTV7ee71050[11]), 11,16},
+ {&(_ZTV7ee71050[15]), 15,16},
+ {&(_tg__ZTV6dd1050__7ee71050[4]), 4,4},
+ {&(_tg__ZTV5cc050__6dd1050__7ee71050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee71050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee71050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71050[];
+extern VTBL_ENTRY _ZTV7ee71050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71050[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710503barEv,_ZTv0_n16_N7ee710503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710503barEv,_ZThn16_N7ee710503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71050 = { "ee71050", // class name
+ bases_ee71050, 4,
+ &(vtc_ee71050[0]), // expected_vtbl_contents
+ &(vtt_ee71050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71050),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2050 : cc050 {
+ int d;
+ virtual void foo(); // _ZN6dd20503fooEv
+ ~dd2050(); // tgen
+ dd2050(); // tgen
+};
+//SIG(-1 dd2050) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2050 ::foo(){vfunc_called(this, "_ZN6dd20503fooEv");}
+dd2050 ::~dd2050(){ note_dtor("dd2050", this);} // tgen
+dd2050 ::dd2050(){ note_ctor("dd2050", this);} // tgen
+
+static void Test_dd2050()
+{
+ extern Class_Descriptor cd_dd2050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2050, buf);
+ dd2050 *dp, &lv = *(dp=new (buf) dd2050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(20,16), "dd2050");
+ check_base_class_offset(lv, (bb50*)(cc050*), 0, "dd2050");
+ check_base_class_offset(lv, (cc050*), 0, "dd2050");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2050.d");
+ test_class_info(&lv, &cd_dd2050);
+ dp->~dd2050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2050(Test_dd2050, "dd2050", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2050C1Ev();
+extern void _ZN6dd2050D1Ev();
+Name_Map name_map_dd2050[] = {
+ NSPAIR(_ZN6dd2050C1Ev),
+ NSPAIR(_ZN6dd2050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd2050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY vtc_dd2050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd2050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd2050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2050[] = {
+ {&(_ZTV6dd2050[3]), 3,5},
+ {&(_tg__ZTV5cc050__6dd2050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd2050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+Class_Descriptor cd_dd2050 = { "dd2050", // class name
+ bases_dd2050, 3,
+ &(vtc_dd2050[0]), // expected_vtbl_contents
+ &(vtt_dd2050[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2050),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02050 : dd2050 {
+ int e;
+ ~ee02050(); // tgen
+ ee02050(); // tgen
+};
+//SIG(1 ee02050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02050 ::~ee02050(){ note_dtor("ee02050", this);} // tgen
+ee02050 ::ee02050(){ note_ctor("ee02050", this);} // tgen
+
+static void Test_ee02050()
+{
+ extern Class_Descriptor cd_ee02050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02050, buf);
+ ee02050 *dp, &lv = *(dp=new (buf) ee02050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(24,20), "ee02050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), 0, "ee02050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), 0, "ee02050");
+ check_base_class_offset(lv, (dd2050*), 0, "ee02050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02050.e");
+ test_class_info(&lv, &cd_ee02050);
+ dp->~ee02050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02050(Test_ee02050, "ee02050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02050C1Ev();
+extern void _ZN7ee02050D1Ev();
+Name_Map name_map_ee02050[] = {
+ NSPAIR(_ZN7ee02050C1Ev),
+ NSPAIR(_ZN7ee02050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee02050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY vtc_ee02050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee02050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee02050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee02050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02050[] = {
+ {&(_ZTV7ee02050[3]), 3,5},
+ {&(_tg__ZTV6dd2050__7ee02050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee02050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee02050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02050[];
+extern VTBL_ENTRY _ZTV7ee02050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02050[];
+Class_Descriptor cd_ee02050 = { "ee02050", // class name
+ bases_ee02050, 4,
+ &(vtc_ee02050[0]), // expected_vtbl_contents
+ &(vtt_ee02050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12050 : virtual dd2050 {
+ int e;
+ ~ee12050(); // tgen
+ ee12050(); // tgen
+};
+//SIG(1 ee12050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12050 ::~ee12050(){ note_dtor("ee12050", this);} // tgen
+ee12050 ::ee12050(){ note_ctor("ee12050", this);} // tgen
+
+static void Test_ee12050()
+{
+ extern Class_Descriptor cd_ee12050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12050, buf);
+ ee12050 *dp, &lv = *(dp=new (buf) ee12050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(36,24), "ee12050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), ABISELECT(16,8), "ee12050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), ABISELECT(16,8), "ee12050");
+ check_base_class_offset(lv, (dd2050*), ABISELECT(16,8), "ee12050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12050.e");
+ test_class_info(&lv, &cd_ee12050);
+ dp->~ee12050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12050(Test_ee12050, "ee12050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12050C1Ev();
+extern void _ZN7ee12050D1Ev();
+Name_Map name_map_ee12050[] = {
+ NSPAIR(_ZN7ee12050C1Ev),
+ NSPAIR(_ZN7ee12050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee12050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY vtc_ee12050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12050[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee12050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee12050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee12050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12050[] = {
+ {&(_ZTV7ee12050[4]), 4,11},
+ {&(_ZTV7ee12050[9]), 9,11},
+ {&(_tg__ZTV6dd2050__7ee12050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee12050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee12050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12050[];
+extern VTBL_ENTRY _ZTV7ee12050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12050[];
+Class_Descriptor cd_ee12050 = { "ee12050", // class name
+ bases_ee12050, 4,
+ &(vtc_ee12050[0]), // expected_vtbl_contents
+ &(vtt_ee12050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22050 : dd2050 {
+ int e;
+ virtual void foo(); // _ZN7ee220503fooEv
+ ~ee22050(); // tgen
+ ee22050(); // tgen
+};
+//SIG(1 ee22050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22050 ::foo(){vfunc_called(this, "_ZN7ee220503fooEv");}
+ee22050 ::~ee22050(){ note_dtor("ee22050", this);} // tgen
+ee22050 ::ee22050(){ note_ctor("ee22050", this);} // tgen
+
+static void Test_ee22050()
+{
+ extern Class_Descriptor cd_ee22050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22050, buf);
+ ee22050 *dp, &lv = *(dp=new (buf) ee22050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(24,20), "ee22050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), 0, "ee22050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), 0, "ee22050");
+ check_base_class_offset(lv, (dd2050*), 0, "ee22050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22050.e");
+ test_class_info(&lv, &cd_ee22050);
+ dp->~ee22050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22050(Test_ee22050, "ee22050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22050C1Ev();
+extern void _ZN7ee22050D1Ev();
+Name_Map name_map_ee22050[] = {
+ NSPAIR(_ZN7ee22050C1Ev),
+ NSPAIR(_ZN7ee22050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee22050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22050[];
+extern void _ZN4bb503barEv();
+extern void _ZN7ee220503fooEv();
+static VTBL_ENTRY vtc_ee22050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN7ee220503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee22050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee22050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee22050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22050[] = {
+ {&(_ZTV7ee22050[3]), 3,5},
+ {&(_tg__ZTV6dd2050__7ee22050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee22050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee22050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22050[];
+extern VTBL_ENTRY _ZTV7ee22050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22050[];
+Class_Descriptor cd_ee22050 = { "ee22050", // class name
+ bases_ee22050, 4,
+ &(vtc_ee22050[0]), // expected_vtbl_contents
+ &(vtt_ee22050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32050 : virtual dd2050 {
+ int e;
+ virtual void foo(); // _ZN7ee320503fooEv
+ ~ee32050(); // tgen
+ ee32050(); // tgen
+};
+//SIG(1 ee32050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32050 ::foo(){vfunc_called(this, "_ZN7ee320503fooEv");}
+ee32050 ::~ee32050(){ note_dtor("ee32050", this);} // tgen
+ee32050 ::ee32050(){ note_ctor("ee32050", this);} // tgen
+
+static void Test_ee32050()
+{
+ extern Class_Descriptor cd_ee32050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32050, buf);
+ ee32050 *dp, &lv = *(dp=new (buf) ee32050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(36,24), "ee32050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), ABISELECT(16,8), "ee32050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), ABISELECT(16,8), "ee32050");
+ check_base_class_offset(lv, (dd2050*), ABISELECT(16,8), "ee32050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32050.e");
+ test_class_info(&lv, &cd_ee32050);
+ dp->~ee32050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32050(Test_ee32050, "ee32050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32050C1Ev();
+extern void _ZN7ee32050D1Ev();
+Name_Map name_map_ee32050[] = {
+ NSPAIR(_ZN7ee32050C1Ev),
+ NSPAIR(_ZN7ee32050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee32050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32050[];
+extern void _ZN7ee320503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee320503fooEv,_ZTv0_n20_N7ee320503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320503fooEv,_ZThn8_N7ee320503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32050[0]),
+ (VTBL_ENTRY)&_ZN7ee320503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee320503fooEv,_ZTv0_n20_N7ee320503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee32050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee32050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee32050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32050[] = {
+ {&(_ZTV7ee32050[4]), 4,12},
+ {&(_ZTV7ee32050[10]), 10,12},
+ {&(_tg__ZTV6dd2050__7ee32050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee32050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee32050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32050[];
+extern VTBL_ENTRY _ZTV7ee32050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32050[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee320503fooEv,_ZTv0_n20_N7ee320503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320503fooEv,_ZThn8_N7ee320503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32050 = { "ee32050", // class name
+ bases_ee32050, 4,
+ &(vtc_ee32050[0]), // expected_vtbl_contents
+ &(vtt_ee32050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32050),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42050 : dd2050 {
+ int e;
+ virtual void bar(); // _ZN7ee420503barEv
+ ~ee42050(); // tgen
+ ee42050(); // tgen
+};
+//SIG(1 ee42050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42050 ::bar(){vfunc_called(this, "_ZN7ee420503barEv");}
+ee42050 ::~ee42050(){ note_dtor("ee42050", this);} // tgen
+ee42050 ::ee42050(){ note_ctor("ee42050", this);} // tgen
+
+static void Test_ee42050()
+{
+ extern Class_Descriptor cd_ee42050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42050, buf);
+ ee42050 *dp, &lv = *(dp=new (buf) ee42050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(24,20), "ee42050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), 0, "ee42050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), 0, "ee42050");
+ check_base_class_offset(lv, (dd2050*), 0, "ee42050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42050.e");
+ test_class_info(&lv, &cd_ee42050);
+ dp->~ee42050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42050(Test_ee42050, "ee42050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42050C1Ev();
+extern void _ZN7ee42050D1Ev();
+Name_Map name_map_ee42050[] = {
+ NSPAIR(_ZN7ee42050C1Ev),
+ NSPAIR(_ZN7ee42050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee42050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42050[];
+extern void _ZN7ee420503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY vtc_ee42050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42050[0]),
+ (VTBL_ENTRY)&_ZN7ee420503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee42050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee42050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee42050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee42050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42050[] = {
+ {&(_ZTV7ee42050[3]), 3,5},
+ {&(_tg__ZTV6dd2050__7ee42050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee42050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee42050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42050[];
+extern VTBL_ENTRY _ZTV7ee42050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42050[];
+Class_Descriptor cd_ee42050 = { "ee42050", // class name
+ bases_ee42050, 4,
+ &(vtc_ee42050[0]), // expected_vtbl_contents
+ &(vtt_ee42050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52050 : virtual dd2050 {
+ int e;
+ virtual void bar(); // _ZN7ee520503barEv
+ ~ee52050(); // tgen
+ ee52050(); // tgen
+};
+//SIG(1 ee52050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52050 ::bar(){vfunc_called(this, "_ZN7ee520503barEv");}
+ee52050 ::~ee52050(){ note_dtor("ee52050", this);} // tgen
+ee52050 ::ee52050(){ note_ctor("ee52050", this);} // tgen
+
+static void Test_ee52050()
+{
+ extern Class_Descriptor cd_ee52050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52050, buf);
+ ee52050 *dp, &lv = *(dp=new (buf) ee52050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(36,24), "ee52050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), ABISELECT(16,8), "ee52050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), ABISELECT(16,8), "ee52050");
+ check_base_class_offset(lv, (dd2050*), ABISELECT(16,8), "ee52050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52050.e");
+ test_class_info(&lv, &cd_ee52050);
+ dp->~ee52050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52050(Test_ee52050, "ee52050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52050C1Ev();
+extern void _ZN7ee52050D1Ev();
+Name_Map name_map_ee52050[] = {
+ NSPAIR(_ZN7ee52050C1Ev),
+ NSPAIR(_ZN7ee52050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee52050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52050[];
+extern void _ZN7ee520503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520503barEv,_ZTv0_n16_N7ee520503barEv)();
+extern void ABISELECT(_ZThn16_N7ee520503barEv,_ZThn8_N7ee520503barEv)() __attribute__((weak));
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY vtc_ee52050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52050[0]),
+ (VTBL_ENTRY)&_ZN7ee520503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520503barEv,_ZTv0_n16_N7ee520503barEv),
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee52050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee52050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee52050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52050[] = {
+ {&(_ZTV7ee52050[4]), 4,12},
+ {&(_ZTV7ee52050[10]), 10,12},
+ {&(_tg__ZTV6dd2050__7ee52050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee52050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee52050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52050[];
+extern VTBL_ENTRY _ZTV7ee52050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52050[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520503barEv,_ZTv0_n16_N7ee520503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520503barEv,_ZThn8_N7ee520503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52050 = { "ee52050", // class name
+ bases_ee52050, 4,
+ &(vtc_ee52050[0]), // expected_vtbl_contents
+ &(vtt_ee52050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52050),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62050 : dd2050 {
+ int e;
+ virtual void foo(); // _ZN7ee620503fooEv
+ virtual void bar(); // _ZN7ee620503barEv
+ ~ee62050(); // tgen
+ ee62050(); // tgen
+};
+//SIG(1 ee62050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62050 ::foo(){vfunc_called(this, "_ZN7ee620503fooEv");}
+void ee62050 ::bar(){vfunc_called(this, "_ZN7ee620503barEv");}
+ee62050 ::~ee62050(){ note_dtor("ee62050", this);} // tgen
+ee62050 ::ee62050(){ note_ctor("ee62050", this);} // tgen
+
+static void Test_ee62050()
+{
+ extern Class_Descriptor cd_ee62050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62050, buf);
+ ee62050 *dp, &lv = *(dp=new (buf) ee62050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(24,20), "ee62050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), 0, "ee62050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), 0, "ee62050");
+ check_base_class_offset(lv, (dd2050*), 0, "ee62050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62050.e");
+ test_class_info(&lv, &cd_ee62050);
+ dp->~ee62050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62050(Test_ee62050, "ee62050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62050C1Ev();
+extern void _ZN7ee62050D1Ev();
+Name_Map name_map_ee62050[] = {
+ NSPAIR(_ZN7ee62050C1Ev),
+ NSPAIR(_ZN7ee62050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee62050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62050[];
+extern void _ZN7ee620503barEv();
+extern void _ZN7ee620503fooEv();
+static VTBL_ENTRY vtc_ee62050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62050[0]),
+ (VTBL_ENTRY)&_ZN7ee620503barEv,
+ (VTBL_ENTRY)&_ZN7ee620503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee62050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee62050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee62050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee62050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62050[] = {
+ {&(_ZTV7ee62050[3]), 3,5},
+ {&(_tg__ZTV6dd2050__7ee62050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee62050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee62050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62050[];
+extern VTBL_ENTRY _ZTV7ee62050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62050[];
+Class_Descriptor cd_ee62050 = { "ee62050", // class name
+ bases_ee62050, 4,
+ &(vtc_ee62050[0]), // expected_vtbl_contents
+ &(vtt_ee62050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72050 : virtual dd2050 {
+ int e;
+ virtual void foo(); // _ZN7ee720503fooEv
+ virtual void bar(); // _ZN7ee720503barEv
+ ~ee72050(); // tgen
+ ee72050(); // tgen
+};
+//SIG(1 ee72050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72050 ::foo(){vfunc_called(this, "_ZN7ee720503fooEv");}
+void ee72050 ::bar(){vfunc_called(this, "_ZN7ee720503barEv");}
+ee72050 ::~ee72050(){ note_dtor("ee72050", this);} // tgen
+ee72050 ::ee72050(){ note_ctor("ee72050", this);} // tgen
+
+static void Test_ee72050()
+{
+ extern Class_Descriptor cd_ee72050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72050, buf);
+ ee72050 *dp, &lv = *(dp=new (buf) ee72050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd2050*), ABISELECT(36,24), "ee72050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd2050*), ABISELECT(16,8), "ee72050");
+ check_base_class_offset(lv, (cc050*)(dd2050*), ABISELECT(16,8), "ee72050");
+ check_base_class_offset(lv, (dd2050*), ABISELECT(16,8), "ee72050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72050.e");
+ test_class_info(&lv, &cd_ee72050);
+ dp->~ee72050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72050(Test_ee72050, "ee72050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72050C1Ev();
+extern void _ZN7ee72050D1Ev();
+Name_Map name_map_ee72050[] = {
+ NSPAIR(_ZN7ee72050C1Ev),
+ NSPAIR(_ZN7ee72050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd2050;
+extern VTBL_ENTRY _ZTI6dd2050[];
+extern VTBL_ENTRY _ZTV6dd2050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2050[];
+static Base_Class bases_ee72050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72050[];
+extern void _ZN7ee720503fooEv();
+extern void _ZN7ee720503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee720503barEv,_ZTv0_n16_N7ee720503barEv)();
+extern void ABISELECT(_ZThn16_N7ee720503barEv,_ZThn8_N7ee720503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee720503fooEv,_ZTv0_n20_N7ee720503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720503fooEv,_ZThn8_N7ee720503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72050[0]),
+ (VTBL_ENTRY)&_ZN7ee720503fooEv,
+ (VTBL_ENTRY)&_ZN7ee720503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720503barEv,_ZTv0_n16_N7ee720503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee720503fooEv,_ZTv0_n20_N7ee720503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72050[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd20503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2050__7ee72050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd20503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd2050__7ee72050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd2050__7ee72050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72050[] = {
+ {&(_ZTV7ee72050[4]), 4,13},
+ {&(_ZTV7ee72050[11]), 11,13},
+ {&(_tg__ZTV6dd2050__7ee72050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd2050__7ee72050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd2050__7ee72050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72050[];
+extern VTBL_ENTRY _ZTV7ee72050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72050[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee720503fooEv,_ZTv0_n20_N7ee720503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720503fooEv,_ZThn8_N7ee720503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720503barEv,_ZTv0_n16_N7ee720503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720503barEv,_ZThn8_N7ee720503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72050 = { "ee72050", // class name
+ bases_ee72050, 4,
+ &(vtc_ee72050[0]), // expected_vtbl_contents
+ &(vtt_ee72050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72050),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3050 : virtual cc050 {
+ int d;
+ virtual void foo(); // _ZN6dd30503fooEv
+ ~dd3050(); // tgen
+ dd3050(); // tgen
+};
+//SIG(-1 dd3050) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3050 ::foo(){vfunc_called(this, "_ZN6dd30503fooEv");}
+dd3050 ::~dd3050(){ note_dtor("dd3050", this);} // tgen
+dd3050 ::dd3050(){ note_ctor("dd3050", this);} // tgen
+
+static void Test_dd3050()
+{
+ extern Class_Descriptor cd_dd3050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3050, buf);
+ dd3050 *dp, &lv = *(dp=new (buf) dd3050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,20), "dd3050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,8), "dd3050");
+ check_base_class_offset(lv, (cc050*), ABISELECT(16,8), "dd3050");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3050.d");
+ test_class_info(&lv, &cd_dd3050);
+ dp->~dd3050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3050(Test_dd3050, "dd3050", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3050C1Ev();
+extern void _ZN6dd3050D1Ev();
+Name_Map name_map_dd3050[] = {
+ NSPAIR(_ZN6dd3050C1Ev),
+ NSPAIR(_ZN6dd3050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd3050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern void _ZN6dd30503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd3050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd3050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3050[] = {
+ {&(_ZTV6dd3050[4]), 4,10},
+ {&(_ZTV6dd3050[9]), 9,10},
+ {&(_tg__ZTV5cc050__6dd3050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd3050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+Class_Descriptor cd_dd3050 = { "dd3050", // class name
+ bases_dd3050, 3,
+ &(vtc_dd3050[0]), // expected_vtbl_contents
+ &(vtt_dd3050[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3050),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03050 : dd3050 {
+ int e;
+ ~ee03050(); // tgen
+ ee03050(); // tgen
+};
+//SIG(1 ee03050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03050 ::~ee03050(){ note_dtor("ee03050", this);} // tgen
+ee03050 ::ee03050(){ note_ctor("ee03050", this);} // tgen
+
+static void Test_ee03050()
+{
+ extern Class_Descriptor cd_ee03050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03050, buf);
+ ee03050 *dp, &lv = *(dp=new (buf) ee03050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee03050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee03050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(16,12), "ee03050");
+ check_base_class_offset(lv, (dd3050*), 0, "ee03050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03050.e");
+ test_class_info(&lv, &cd_ee03050);
+ dp->~ee03050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03050(Test_ee03050, "ee03050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03050C1Ev();
+extern void _ZN7ee03050D1Ev();
+Name_Map name_map_ee03050[] = {
+ NSPAIR(_ZN7ee03050C1Ev),
+ NSPAIR(_ZN7ee03050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee03050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03050[];
+extern void _ZN6dd30503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee03050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee03050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee03050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee03050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee03050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03050[] = {
+ {&(_ZTV7ee03050[4]), 4,10},
+ {&(_tg__ZTV6dd3050__7ee03050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee03050[4]), 4,5},
+ {&(_ZTV7ee03050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee03050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee03050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03050[];
+extern VTBL_ENTRY _ZTV7ee03050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03050[];
+Class_Descriptor cd_ee03050 = { "ee03050", // class name
+ bases_ee03050, 4,
+ &(vtc_ee03050[0]), // expected_vtbl_contents
+ &(vtt_ee03050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13050 : virtual dd3050 {
+ int e;
+ ~ee13050(); // tgen
+ ee13050(); // tgen
+};
+//SIG(1 ee13050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13050 ::~ee13050(){ note_dtor("ee13050", this);} // tgen
+ee13050 ::ee13050(){ note_ctor("ee13050", this);} // tgen
+
+static void Test_ee13050()
+{
+ extern Class_Descriptor cd_ee13050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13050, buf);
+ ee13050 *dp, &lv = *(dp=new (buf) ee13050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee13050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee13050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(32,16), "ee13050");
+ check_base_class_offset(lv, (dd3050*), ABISELECT(16,8), "ee13050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13050.e");
+ test_class_info(&lv, &cd_ee13050);
+ dp->~ee13050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13050(Test_ee13050, "ee13050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13050C1Ev();
+extern void _ZN7ee13050D1Ev();
+Name_Map name_map_ee13050[] = {
+ NSPAIR(_ZN7ee13050C1Ev),
+ NSPAIR(_ZN7ee13050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee13050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee13050[];
+extern void _ZN6dd30503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee13050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13050[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee13050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee13050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee13050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee13050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13050[] = {
+ {&(_ZTV7ee13050[5]), 5,16},
+ {&(_ZTV7ee13050[10]), 10,16},
+ {&(_ZTV7ee13050[15]), 15,16},
+ {&(_tg__ZTV6dd3050__7ee13050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee13050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee13050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee13050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13050[];
+extern VTBL_ENTRY _ZTV7ee13050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13050[];
+Class_Descriptor cd_ee13050 = { "ee13050", // class name
+ bases_ee13050, 4,
+ &(vtc_ee13050[0]), // expected_vtbl_contents
+ &(vtt_ee13050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13050),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23050 : dd3050 {
+ int e;
+ virtual void foo(); // _ZN7ee230503fooEv
+ ~ee23050(); // tgen
+ ee23050(); // tgen
+};
+//SIG(1 ee23050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23050 ::foo(){vfunc_called(this, "_ZN7ee230503fooEv");}
+ee23050 ::~ee23050(){ note_dtor("ee23050", this);} // tgen
+ee23050 ::ee23050(){ note_ctor("ee23050", this);} // tgen
+
+static void Test_ee23050()
+{
+ extern Class_Descriptor cd_ee23050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23050, buf);
+ ee23050 *dp, &lv = *(dp=new (buf) ee23050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee23050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee23050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(16,12), "ee23050");
+ check_base_class_offset(lv, (dd3050*), 0, "ee23050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23050.e");
+ test_class_info(&lv, &cd_ee23050);
+ dp->~ee23050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23050(Test_ee23050, "ee23050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23050C1Ev();
+extern void _ZN7ee23050D1Ev();
+Name_Map name_map_ee23050[] = {
+ NSPAIR(_ZN7ee23050C1Ev),
+ NSPAIR(_ZN7ee23050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee23050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23050[];
+extern void _ZN7ee230503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee23050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23050[0]),
+ (VTBL_ENTRY)&_ZN7ee230503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee23050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee23050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee23050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee23050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23050[] = {
+ {&(_ZTV7ee23050[4]), 4,10},
+ {&(_tg__ZTV6dd3050__7ee23050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee23050[4]), 4,5},
+ {&(_ZTV7ee23050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee23050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee23050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23050[];
+extern VTBL_ENTRY _ZTV7ee23050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23050[];
+Class_Descriptor cd_ee23050 = { "ee23050", // class name
+ bases_ee23050, 4,
+ &(vtc_ee23050[0]), // expected_vtbl_contents
+ &(vtt_ee23050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33050 : virtual dd3050 {
+ int e;
+ virtual void foo(); // _ZN7ee330503fooEv
+ ~ee33050(); // tgen
+ ee33050(); // tgen
+};
+//SIG(1 ee33050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33050 ::foo(){vfunc_called(this, "_ZN7ee330503fooEv");}
+ee33050 ::~ee33050(){ note_dtor("ee33050", this);} // tgen
+ee33050 ::ee33050(){ note_ctor("ee33050", this);} // tgen
+
+static void Test_ee33050()
+{
+ extern Class_Descriptor cd_ee33050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33050, buf);
+ ee33050 *dp, &lv = *(dp=new (buf) ee33050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee33050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee33050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(32,16), "ee33050");
+ check_base_class_offset(lv, (dd3050*), ABISELECT(16,8), "ee33050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33050.e");
+ test_class_info(&lv, &cd_ee33050);
+ dp->~ee33050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33050(Test_ee33050, "ee33050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33050C1Ev();
+extern void _ZN7ee33050D1Ev();
+Name_Map name_map_ee33050[] = {
+ NSPAIR(_ZN7ee33050C1Ev),
+ NSPAIR(_ZN7ee33050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee33050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee33050[];
+extern void _ZN7ee330503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee330503fooEv,_ZTv0_n20_N7ee330503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330503fooEv,_ZThn8_N7ee330503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee33050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33050[0]),
+ (VTBL_ENTRY)&_ZN7ee330503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee330503fooEv,_ZTv0_n20_N7ee330503fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee33050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee33050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee33050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee33050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33050[] = {
+ {&(_ZTV7ee33050[5]), 5,17},
+ {&(_ZTV7ee33050[11]), 11,17},
+ {&(_ZTV7ee33050[16]), 16,17},
+ {&(_tg__ZTV6dd3050__7ee33050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee33050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee33050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee33050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33050[];
+extern VTBL_ENTRY _ZTV7ee33050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33050[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee330503fooEv,_ZTv0_n20_N7ee330503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330503fooEv,_ZThn8_N7ee330503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33050 = { "ee33050", // class name
+ bases_ee33050, 4,
+ &(vtc_ee33050[0]), // expected_vtbl_contents
+ &(vtt_ee33050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33050),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43050 : dd3050 {
+ int e;
+ virtual void bar(); // _ZN7ee430503barEv
+ ~ee43050(); // tgen
+ ee43050(); // tgen
+};
+//SIG(1 ee43050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43050 ::bar(){vfunc_called(this, "_ZN7ee430503barEv");}
+ee43050 ::~ee43050(){ note_dtor("ee43050", this);} // tgen
+ee43050 ::ee43050(){ note_ctor("ee43050", this);} // tgen
+
+static void Test_ee43050()
+{
+ extern Class_Descriptor cd_ee43050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43050, buf);
+ ee43050 *dp, &lv = *(dp=new (buf) ee43050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee43050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee43050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(16,12), "ee43050");
+ check_base_class_offset(lv, (dd3050*), 0, "ee43050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43050.e");
+ test_class_info(&lv, &cd_ee43050);
+ dp->~ee43050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43050(Test_ee43050, "ee43050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43050C1Ev();
+extern void _ZN7ee43050D1Ev();
+Name_Map name_map_ee43050[] = {
+ NSPAIR(_ZN7ee43050C1Ev),
+ NSPAIR(_ZN7ee43050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee43050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43050[];
+extern void _ZN6dd30503fooEv();
+extern void _ZN7ee430503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee430503barEv,_ZTv0_n16_N7ee430503barEv)();
+extern void ABISELECT(_ZThn16_N7ee430503barEv,_ZThn12_N7ee430503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+ (VTBL_ENTRY)&_ZN7ee430503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430503barEv,_ZTv0_n16_N7ee430503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee43050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee43050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee43050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee43050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43050[] = {
+ {&(_ZTV7ee43050[4]), 4,11},
+ {&(_tg__ZTV6dd3050__7ee43050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee43050[4]), 4,5},
+ {&(_ZTV7ee43050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee43050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee43050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43050[];
+extern VTBL_ENTRY _ZTV7ee43050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43050[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430503barEv,_ZTv0_n16_N7ee430503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430503barEv,_ZThn12_N7ee430503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43050 = { "ee43050", // class name
+ bases_ee43050, 4,
+ &(vtc_ee43050[0]), // expected_vtbl_contents
+ &(vtt_ee43050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53050 : virtual dd3050 {
+ int e;
+ virtual void bar(); // _ZN7ee530503barEv
+ ~ee53050(); // tgen
+ ee53050(); // tgen
+};
+//SIG(1 ee53050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53050 ::bar(){vfunc_called(this, "_ZN7ee530503barEv");}
+ee53050 ::~ee53050(){ note_dtor("ee53050", this);} // tgen
+ee53050 ::ee53050(){ note_ctor("ee53050", this);} // tgen
+
+static void Test_ee53050()
+{
+ extern Class_Descriptor cd_ee53050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53050, buf);
+ ee53050 *dp, &lv = *(dp=new (buf) ee53050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee53050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee53050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(32,16), "ee53050");
+ check_base_class_offset(lv, (dd3050*), ABISELECT(16,8), "ee53050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53050.e");
+ test_class_info(&lv, &cd_ee53050);
+ dp->~ee53050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53050(Test_ee53050, "ee53050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53050C1Ev();
+extern void _ZN7ee53050D1Ev();
+Name_Map name_map_ee53050[] = {
+ NSPAIR(_ZN7ee53050C1Ev),
+ NSPAIR(_ZN7ee53050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee53050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee53050[];
+extern void _ZN7ee530503barEv();
+extern void _ZN6dd30503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee530503barEv,_ZTv0_n16_N7ee530503barEv)();
+extern void ABISELECT(_ZThn32_N7ee530503barEv,_ZThn16_N7ee530503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53050[0]),
+ (VTBL_ENTRY)&_ZN7ee530503barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530503barEv,_ZTv0_n16_N7ee530503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee53050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee53050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee53050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee53050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53050[] = {
+ {&(_ZTV7ee53050[5]), 5,17},
+ {&(_ZTV7ee53050[11]), 11,17},
+ {&(_ZTV7ee53050[16]), 16,17},
+ {&(_tg__ZTV6dd3050__7ee53050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee53050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee53050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee53050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53050[];
+extern VTBL_ENTRY _ZTV7ee53050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53050[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530503barEv,_ZTv0_n16_N7ee530503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530503barEv,_ZThn16_N7ee530503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53050 = { "ee53050", // class name
+ bases_ee53050, 4,
+ &(vtc_ee53050[0]), // expected_vtbl_contents
+ &(vtt_ee53050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53050),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63050 : dd3050 {
+ int e;
+ virtual void foo(); // _ZN7ee630503fooEv
+ virtual void bar(); // _ZN7ee630503barEv
+ ~ee63050(); // tgen
+ ee63050(); // tgen
+};
+//SIG(1 ee63050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63050 ::foo(){vfunc_called(this, "_ZN7ee630503fooEv");}
+void ee63050 ::bar(){vfunc_called(this, "_ZN7ee630503barEv");}
+ee63050 ::~ee63050(){ note_dtor("ee63050", this);} // tgen
+ee63050 ::ee63050(){ note_ctor("ee63050", this);} // tgen
+
+static void Test_ee63050()
+{
+ extern Class_Descriptor cd_ee63050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63050, buf);
+ ee63050 *dp, &lv = *(dp=new (buf) ee63050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee63050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee63050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(16,12), "ee63050");
+ check_base_class_offset(lv, (dd3050*), 0, "ee63050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63050.e");
+ test_class_info(&lv, &cd_ee63050);
+ dp->~ee63050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63050(Test_ee63050, "ee63050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63050C1Ev();
+extern void _ZN7ee63050D1Ev();
+Name_Map name_map_ee63050[] = {
+ NSPAIR(_ZN7ee63050C1Ev),
+ NSPAIR(_ZN7ee63050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee63050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63050[];
+extern void _ZN7ee630503fooEv();
+extern void _ZN7ee630503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee630503barEv,_ZTv0_n16_N7ee630503barEv)();
+extern void ABISELECT(_ZThn16_N7ee630503barEv,_ZThn12_N7ee630503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63050[0]),
+ (VTBL_ENTRY)&_ZN7ee630503fooEv,
+ (VTBL_ENTRY)&_ZN7ee630503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630503barEv,_ZTv0_n16_N7ee630503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee63050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee63050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee63050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee63050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63050[] = {
+ {&(_ZTV7ee63050[4]), 4,11},
+ {&(_tg__ZTV6dd3050__7ee63050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee63050[4]), 4,5},
+ {&(_ZTV7ee63050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee63050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee63050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63050[];
+extern VTBL_ENTRY _ZTV7ee63050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63050[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630503barEv,_ZTv0_n16_N7ee630503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630503barEv,_ZThn12_N7ee630503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63050 = { "ee63050", // class name
+ bases_ee63050, 4,
+ &(vtc_ee63050[0]), // expected_vtbl_contents
+ &(vtt_ee63050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73050 : virtual dd3050 {
+ int e;
+ virtual void foo(); // _ZN7ee730503fooEv
+ virtual void bar(); // _ZN7ee730503barEv
+ ~ee73050(); // tgen
+ ee73050(); // tgen
+};
+//SIG(1 ee73050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73050 ::foo(){vfunc_called(this, "_ZN7ee730503fooEv");}
+void ee73050 ::bar(){vfunc_called(this, "_ZN7ee730503barEv");}
+ee73050 ::~ee73050(){ note_dtor("ee73050", this);} // tgen
+ee73050 ::ee73050(){ note_ctor("ee73050", this);} // tgen
+
+static void Test_ee73050()
+{
+ extern Class_Descriptor cd_ee73050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73050, buf);
+ ee73050 *dp, &lv = *(dp=new (buf) ee73050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee73050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee73050");
+ check_base_class_offset(lv, (cc050*)(dd3050*), ABISELECT(32,16), "ee73050");
+ check_base_class_offset(lv, (dd3050*), ABISELECT(16,8), "ee73050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73050.e");
+ test_class_info(&lv, &cd_ee73050);
+ dp->~ee73050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73050(Test_ee73050, "ee73050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73050C1Ev();
+extern void _ZN7ee73050D1Ev();
+Name_Map name_map_ee73050[] = {
+ NSPAIR(_ZN7ee73050C1Ev),
+ NSPAIR(_ZN7ee73050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd3050;
+extern VTBL_ENTRY _ZTI6dd3050[];
+extern VTBL_ENTRY _ZTV6dd3050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3050[];
+static Base_Class bases_ee73050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3050, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73050[];
+extern void _ZN7ee730503fooEv();
+extern void _ZN7ee730503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee730503fooEv,_ZTv0_n20_N7ee730503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730503fooEv,_ZThn8_N7ee730503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730503barEv,_ZTv0_n16_N7ee730503barEv)();
+extern void ABISELECT(_ZThn32_N7ee730503barEv,_ZThn16_N7ee730503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73050[0]),
+ (VTBL_ENTRY)&_ZN7ee730503fooEv,
+ (VTBL_ENTRY)&_ZN7ee730503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee730503fooEv,_ZTv0_n20_N7ee730503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730503barEv,_ZTv0_n16_N7ee730503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73050[];
+extern void _ZN6dd30503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3050__7ee73050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN6dd30503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd3050__7ee73050[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee73050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee73050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73050[] = {
+ {&(_ZTV7ee73050[5]), 5,18},
+ {&(_ZTV7ee73050[12]), 12,18},
+ {&(_ZTV7ee73050[17]), 17,18},
+ {&(_tg__ZTV6dd3050__7ee73050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd3050__7ee73050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee73050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee73050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73050[];
+extern VTBL_ENTRY _ZTV7ee73050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73050[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730503barEv,_ZTv0_n16_N7ee730503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730503barEv,_ZThn16_N7ee730503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee730503fooEv,_ZTv0_n20_N7ee730503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730503fooEv,_ZThn8_N7ee730503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73050 = { "ee73050", // class name
+ bases_ee73050, 4,
+ &(vtc_ee73050[0]), // expected_vtbl_contents
+ &(vtt_ee73050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73050),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4050 : cc050 {
+ int d;
+ virtual void bar(); // _ZN6dd40503barEv
+ ~dd4050(); // tgen
+ dd4050(); // tgen
+};
+//SIG(-1 dd4050) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4050 ::bar(){vfunc_called(this, "_ZN6dd40503barEv");}
+dd4050 ::~dd4050(){ note_dtor("dd4050", this);} // tgen
+dd4050 ::dd4050(){ note_ctor("dd4050", this);} // tgen
+
+static void Test_dd4050()
+{
+ extern Class_Descriptor cd_dd4050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4050, buf);
+ dd4050 *dp, &lv = *(dp=new (buf) dd4050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(20,16), "dd4050");
+ check_base_class_offset(lv, (bb50*)(cc050*), 0, "dd4050");
+ check_base_class_offset(lv, (cc050*), 0, "dd4050");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4050.d");
+ test_class_info(&lv, &cd_dd4050);
+ dp->~dd4050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4050(Test_dd4050, "dd4050", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4050C1Ev();
+extern void _ZN6dd4050D1Ev();
+Name_Map name_map_dd4050[] = {
+ NSPAIR(_ZN6dd4050C1Ev),
+ NSPAIR(_ZN6dd4050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd4050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY vtc_dd4050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd4050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd4050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4050[] = {
+ {&(_ZTV6dd4050[3]), 3,4},
+ {&(_tg__ZTV5cc050__6dd4050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd4050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+Class_Descriptor cd_dd4050 = { "dd4050", // class name
+ bases_dd4050, 3,
+ &(vtc_dd4050[0]), // expected_vtbl_contents
+ &(vtt_dd4050[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4050),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04050 : dd4050 {
+ int e;
+ ~ee04050(); // tgen
+ ee04050(); // tgen
+};
+//SIG(1 ee04050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04050 ::~ee04050(){ note_dtor("ee04050", this);} // tgen
+ee04050 ::ee04050(){ note_ctor("ee04050", this);} // tgen
+
+static void Test_ee04050()
+{
+ extern Class_Descriptor cd_ee04050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04050, buf);
+ ee04050 *dp, &lv = *(dp=new (buf) ee04050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(24,20), "ee04050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), 0, "ee04050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), 0, "ee04050");
+ check_base_class_offset(lv, (dd4050*), 0, "ee04050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04050.e");
+ test_class_info(&lv, &cd_ee04050);
+ dp->~ee04050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04050(Test_ee04050, "ee04050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04050C1Ev();
+extern void _ZN7ee04050D1Ev();
+Name_Map name_map_ee04050[] = {
+ NSPAIR(_ZN7ee04050C1Ev),
+ NSPAIR(_ZN7ee04050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee04050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY vtc_ee04050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee04050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee04050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee04050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04050[] = {
+ {&(_ZTV7ee04050[3]), 3,4},
+ {&(_tg__ZTV6dd4050__7ee04050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee04050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee04050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04050[];
+extern VTBL_ENTRY _ZTV7ee04050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04050[];
+Class_Descriptor cd_ee04050 = { "ee04050", // class name
+ bases_ee04050, 4,
+ &(vtc_ee04050[0]), // expected_vtbl_contents
+ &(vtt_ee04050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14050 : virtual dd4050 {
+ int e;
+ ~ee14050(); // tgen
+ ee14050(); // tgen
+};
+//SIG(1 ee14050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14050 ::~ee14050(){ note_dtor("ee14050", this);} // tgen
+ee14050 ::ee14050(){ note_ctor("ee14050", this);} // tgen
+
+static void Test_ee14050()
+{
+ extern Class_Descriptor cd_ee14050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14050, buf);
+ ee14050 *dp, &lv = *(dp=new (buf) ee14050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(36,24), "ee14050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), ABISELECT(16,8), "ee14050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), ABISELECT(16,8), "ee14050");
+ check_base_class_offset(lv, (dd4050*), ABISELECT(16,8), "ee14050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14050.e");
+ test_class_info(&lv, &cd_ee14050);
+ dp->~ee14050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14050(Test_ee14050, "ee14050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14050C1Ev();
+extern void _ZN7ee14050D1Ev();
+Name_Map name_map_ee14050[] = {
+ NSPAIR(_ZN7ee14050C1Ev),
+ NSPAIR(_ZN7ee14050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee14050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY vtc_ee14050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14050[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee14050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee14050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee14050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14050[] = {
+ {&(_ZTV7ee14050[4]), 4,9},
+ {&(_ZTV7ee14050[8]), 8,9},
+ {&(_tg__ZTV6dd4050__7ee14050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee14050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee14050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14050[];
+extern VTBL_ENTRY _ZTV7ee14050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14050[];
+Class_Descriptor cd_ee14050 = { "ee14050", // class name
+ bases_ee14050, 4,
+ &(vtc_ee14050[0]), // expected_vtbl_contents
+ &(vtt_ee14050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14050),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24050 : dd4050 {
+ int e;
+ virtual void foo(); // _ZN7ee240503fooEv
+ ~ee24050(); // tgen
+ ee24050(); // tgen
+};
+//SIG(1 ee24050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24050 ::foo(){vfunc_called(this, "_ZN7ee240503fooEv");}
+ee24050 ::~ee24050(){ note_dtor("ee24050", this);} // tgen
+ee24050 ::ee24050(){ note_ctor("ee24050", this);} // tgen
+
+static void Test_ee24050()
+{
+ extern Class_Descriptor cd_ee24050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24050, buf);
+ ee24050 *dp, &lv = *(dp=new (buf) ee24050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(24,20), "ee24050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), 0, "ee24050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), 0, "ee24050");
+ check_base_class_offset(lv, (dd4050*), 0, "ee24050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24050.e");
+ test_class_info(&lv, &cd_ee24050);
+ dp->~ee24050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24050(Test_ee24050, "ee24050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24050C1Ev();
+extern void _ZN7ee24050D1Ev();
+Name_Map name_map_ee24050[] = {
+ NSPAIR(_ZN7ee24050C1Ev),
+ NSPAIR(_ZN7ee24050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee24050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24050[];
+extern void _ZN6dd40503barEv();
+extern void _ZN7ee240503fooEv();
+static VTBL_ENTRY vtc_ee24050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+ (VTBL_ENTRY)&_ZN7ee240503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee24050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee24050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee24050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24050[] = {
+ {&(_ZTV7ee24050[3]), 3,5},
+ {&(_tg__ZTV6dd4050__7ee24050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee24050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee24050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24050[];
+extern VTBL_ENTRY _ZTV7ee24050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24050[];
+Class_Descriptor cd_ee24050 = { "ee24050", // class name
+ bases_ee24050, 4,
+ &(vtc_ee24050[0]), // expected_vtbl_contents
+ &(vtt_ee24050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34050 : virtual dd4050 {
+ int e;
+ virtual void foo(); // _ZN7ee340503fooEv
+ ~ee34050(); // tgen
+ ee34050(); // tgen
+};
+//SIG(1 ee34050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34050 ::foo(){vfunc_called(this, "_ZN7ee340503fooEv");}
+ee34050 ::~ee34050(){ note_dtor("ee34050", this);} // tgen
+ee34050 ::ee34050(){ note_ctor("ee34050", this);} // tgen
+
+static void Test_ee34050()
+{
+ extern Class_Descriptor cd_ee34050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34050, buf);
+ ee34050 *dp, &lv = *(dp=new (buf) ee34050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(36,24), "ee34050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), ABISELECT(16,8), "ee34050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), ABISELECT(16,8), "ee34050");
+ check_base_class_offset(lv, (dd4050*), ABISELECT(16,8), "ee34050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34050.e");
+ test_class_info(&lv, &cd_ee34050);
+ dp->~ee34050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34050(Test_ee34050, "ee34050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34050C1Ev();
+extern void _ZN7ee34050D1Ev();
+Name_Map name_map_ee34050[] = {
+ NSPAIR(_ZN7ee34050C1Ev),
+ NSPAIR(_ZN7ee34050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee34050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34050[];
+extern void _ZN7ee340503fooEv();
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY vtc_ee34050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34050[0]),
+ (VTBL_ENTRY)&_ZN7ee340503fooEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee34050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee34050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee34050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34050[] = {
+ {&(_ZTV7ee34050[4]), 4,10},
+ {&(_ZTV7ee34050[9]), 9,10},
+ {&(_tg__ZTV6dd4050__7ee34050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee34050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee34050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34050[];
+extern VTBL_ENTRY _ZTV7ee34050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34050[];
+Class_Descriptor cd_ee34050 = { "ee34050", // class name
+ bases_ee34050, 4,
+ &(vtc_ee34050[0]), // expected_vtbl_contents
+ &(vtt_ee34050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44050 : dd4050 {
+ int e;
+ virtual void bar(); // _ZN7ee440503barEv
+ ~ee44050(); // tgen
+ ee44050(); // tgen
+};
+//SIG(1 ee44050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44050 ::bar(){vfunc_called(this, "_ZN7ee440503barEv");}
+ee44050 ::~ee44050(){ note_dtor("ee44050", this);} // tgen
+ee44050 ::ee44050(){ note_ctor("ee44050", this);} // tgen
+
+static void Test_ee44050()
+{
+ extern Class_Descriptor cd_ee44050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44050, buf);
+ ee44050 *dp, &lv = *(dp=new (buf) ee44050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(24,20), "ee44050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), 0, "ee44050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), 0, "ee44050");
+ check_base_class_offset(lv, (dd4050*), 0, "ee44050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44050.e");
+ test_class_info(&lv, &cd_ee44050);
+ dp->~ee44050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44050(Test_ee44050, "ee44050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44050C1Ev();
+extern void _ZN7ee44050D1Ev();
+Name_Map name_map_ee44050[] = {
+ NSPAIR(_ZN7ee44050C1Ev),
+ NSPAIR(_ZN7ee44050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee44050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44050[];
+extern void _ZN7ee440503barEv();
+static VTBL_ENTRY vtc_ee44050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44050[0]),
+ (VTBL_ENTRY)&_ZN7ee440503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee44050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee44050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee44050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44050[] = {
+ {&(_ZTV7ee44050[3]), 3,4},
+ {&(_tg__ZTV6dd4050__7ee44050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee44050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee44050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44050[];
+extern VTBL_ENTRY _ZTV7ee44050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44050[];
+Class_Descriptor cd_ee44050 = { "ee44050", // class name
+ bases_ee44050, 4,
+ &(vtc_ee44050[0]), // expected_vtbl_contents
+ &(vtt_ee44050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44050),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54050 : virtual dd4050 {
+ int e;
+ virtual void bar(); // _ZN7ee540503barEv
+ ~ee54050(); // tgen
+ ee54050(); // tgen
+};
+//SIG(1 ee54050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54050 ::bar(){vfunc_called(this, "_ZN7ee540503barEv");}
+ee54050 ::~ee54050(){ note_dtor("ee54050", this);} // tgen
+ee54050 ::ee54050(){ note_ctor("ee54050", this);} // tgen
+
+static void Test_ee54050()
+{
+ extern Class_Descriptor cd_ee54050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54050, buf);
+ ee54050 *dp, &lv = *(dp=new (buf) ee54050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(36,24), "ee54050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), ABISELECT(16,8), "ee54050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), ABISELECT(16,8), "ee54050");
+ check_base_class_offset(lv, (dd4050*), ABISELECT(16,8), "ee54050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54050.e");
+ test_class_info(&lv, &cd_ee54050);
+ dp->~ee54050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54050(Test_ee54050, "ee54050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54050C1Ev();
+extern void _ZN7ee54050D1Ev();
+Name_Map name_map_ee54050[] = {
+ NSPAIR(_ZN7ee54050C1Ev),
+ NSPAIR(_ZN7ee54050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee54050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54050[];
+extern void _ZN7ee540503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540503barEv,_ZTv0_n16_N7ee540503barEv)();
+extern void ABISELECT(_ZThn16_N7ee540503barEv,_ZThn8_N7ee540503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54050[0]),
+ (VTBL_ENTRY)&_ZN7ee540503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540503barEv,_ZTv0_n16_N7ee540503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee54050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee54050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee54050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54050[] = {
+ {&(_ZTV7ee54050[4]), 4,10},
+ {&(_ZTV7ee54050[9]), 9,10},
+ {&(_tg__ZTV6dd4050__7ee54050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee54050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee54050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54050[];
+extern VTBL_ENTRY _ZTV7ee54050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54050[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540503barEv,_ZTv0_n16_N7ee540503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540503barEv,_ZThn8_N7ee540503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54050 = { "ee54050", // class name
+ bases_ee54050, 4,
+ &(vtc_ee54050[0]), // expected_vtbl_contents
+ &(vtt_ee54050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64050 : dd4050 {
+ int e;
+ virtual void foo(); // _ZN7ee640503fooEv
+ virtual void bar(); // _ZN7ee640503barEv
+ ~ee64050(); // tgen
+ ee64050(); // tgen
+};
+//SIG(1 ee64050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64050 ::foo(){vfunc_called(this, "_ZN7ee640503fooEv");}
+void ee64050 ::bar(){vfunc_called(this, "_ZN7ee640503barEv");}
+ee64050 ::~ee64050(){ note_dtor("ee64050", this);} // tgen
+ee64050 ::ee64050(){ note_ctor("ee64050", this);} // tgen
+
+static void Test_ee64050()
+{
+ extern Class_Descriptor cd_ee64050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64050, buf);
+ ee64050 *dp, &lv = *(dp=new (buf) ee64050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(24,20), "ee64050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), 0, "ee64050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), 0, "ee64050");
+ check_base_class_offset(lv, (dd4050*), 0, "ee64050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64050.e");
+ test_class_info(&lv, &cd_ee64050);
+ dp->~ee64050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64050(Test_ee64050, "ee64050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64050C1Ev();
+extern void _ZN7ee64050D1Ev();
+Name_Map name_map_ee64050[] = {
+ NSPAIR(_ZN7ee64050C1Ev),
+ NSPAIR(_ZN7ee64050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee64050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64050[];
+extern void _ZN7ee640503barEv();
+extern void _ZN7ee640503fooEv();
+static VTBL_ENTRY vtc_ee64050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64050[0]),
+ (VTBL_ENTRY)&_ZN7ee640503barEv,
+ (VTBL_ENTRY)&_ZN7ee640503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee64050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee64050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee64050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64050[] = {
+ {&(_ZTV7ee64050[3]), 3,5},
+ {&(_tg__ZTV6dd4050__7ee64050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee64050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee64050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64050[];
+extern VTBL_ENTRY _ZTV7ee64050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64050[];
+Class_Descriptor cd_ee64050 = { "ee64050", // class name
+ bases_ee64050, 4,
+ &(vtc_ee64050[0]), // expected_vtbl_contents
+ &(vtt_ee64050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74050 : virtual dd4050 {
+ int e;
+ virtual void foo(); // _ZN7ee740503fooEv
+ virtual void bar(); // _ZN7ee740503barEv
+ ~ee74050(); // tgen
+ ee74050(); // tgen
+};
+//SIG(1 ee74050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74050 ::foo(){vfunc_called(this, "_ZN7ee740503fooEv");}
+void ee74050 ::bar(){vfunc_called(this, "_ZN7ee740503barEv");}
+ee74050 ::~ee74050(){ note_dtor("ee74050", this);} // tgen
+ee74050 ::ee74050(){ note_ctor("ee74050", this);} // tgen
+
+static void Test_ee74050()
+{
+ extern Class_Descriptor cd_ee74050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74050, buf);
+ ee74050 *dp, &lv = *(dp=new (buf) ee74050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd4050*), ABISELECT(36,24), "ee74050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd4050*), ABISELECT(16,8), "ee74050");
+ check_base_class_offset(lv, (cc050*)(dd4050*), ABISELECT(16,8), "ee74050");
+ check_base_class_offset(lv, (dd4050*), ABISELECT(16,8), "ee74050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74050.e");
+ test_class_info(&lv, &cd_ee74050);
+ dp->~ee74050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74050(Test_ee74050, "ee74050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74050C1Ev();
+extern void _ZN7ee74050D1Ev();
+Name_Map name_map_ee74050[] = {
+ NSPAIR(_ZN7ee74050C1Ev),
+ NSPAIR(_ZN7ee74050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd4050;
+extern VTBL_ENTRY _ZTI6dd4050[];
+extern VTBL_ENTRY _ZTV6dd4050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4050[];
+static Base_Class bases_ee74050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4050, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74050[];
+extern void _ZN7ee740503fooEv();
+extern void _ZN7ee740503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee740503barEv,_ZTv0_n16_N7ee740503barEv)();
+extern void ABISELECT(_ZThn16_N7ee740503barEv,_ZThn8_N7ee740503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74050[0]),
+ (VTBL_ENTRY)&_ZN7ee740503fooEv,
+ (VTBL_ENTRY)&_ZN7ee740503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740503barEv,_ZTv0_n16_N7ee740503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74050[];
+extern void _ZN6dd40503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4050__7ee74050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4050[0]),
+ (VTBL_ENTRY)&_ZN6dd40503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd4050__7ee74050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd4050__7ee74050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74050[] = {
+ {&(_ZTV7ee74050[4]), 4,11},
+ {&(_ZTV7ee74050[10]), 10,11},
+ {&(_tg__ZTV6dd4050__7ee74050[3]), 3,4},
+ {&(_tg__ZTV5cc0506dd4050__7ee74050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd4050__7ee74050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74050[];
+extern VTBL_ENTRY _ZTV7ee74050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74050[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740503barEv,_ZTv0_n16_N7ee740503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740503barEv,_ZThn8_N7ee740503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74050 = { "ee74050", // class name
+ bases_ee74050, 4,
+ &(vtc_ee74050[0]), // expected_vtbl_contents
+ &(vtt_ee74050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5050 : virtual cc050 {
+ int d;
+ virtual void bar(); // _ZN6dd50503barEv
+ ~dd5050(); // tgen
+ dd5050(); // tgen
+};
+//SIG(-1 dd5050) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5050 ::bar(){vfunc_called(this, "_ZN6dd50503barEv");}
+dd5050 ::~dd5050(){ note_dtor("dd5050", this);} // tgen
+dd5050 ::dd5050(){ note_ctor("dd5050", this);} // tgen
+
+static void Test_dd5050()
+{
+ extern Class_Descriptor cd_dd5050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5050, buf);
+ dd5050 *dp, &lv = *(dp=new (buf) dd5050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,20), "dd5050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,8), "dd5050");
+ check_base_class_offset(lv, (cc050*), ABISELECT(16,8), "dd5050");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5050.d");
+ test_class_info(&lv, &cd_dd5050);
+ dp->~dd5050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5050(Test_dd5050, "dd5050", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5050C1Ev();
+extern void _ZN6dd5050D1Ev();
+Name_Map name_map_dd5050[] = {
+ NSPAIR(_ZN6dd5050C1Ev),
+ NSPAIR(_ZN6dd5050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd5050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern void _ZN6dd50503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd5050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5050[] = {
+ {&(_ZTV6dd5050[4]), 4,10},
+ {&(_ZTV6dd5050[9]), 9,10},
+ {&(_tg__ZTV5cc050__6dd5050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd5050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5050 = { "dd5050", // class name
+ bases_dd5050, 3,
+ &(vtc_dd5050[0]), // expected_vtbl_contents
+ &(vtt_dd5050[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5050),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05050 : dd5050 {
+ int e;
+ ~ee05050(); // tgen
+ ee05050(); // tgen
+};
+//SIG(1 ee05050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05050 ::~ee05050(){ note_dtor("ee05050", this);} // tgen
+ee05050 ::ee05050(){ note_ctor("ee05050", this);} // tgen
+
+static void Test_ee05050()
+{
+ extern Class_Descriptor cd_ee05050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05050, buf);
+ ee05050 *dp, &lv = *(dp=new (buf) ee05050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee05050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee05050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(16,12), "ee05050");
+ check_base_class_offset(lv, (dd5050*), 0, "ee05050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05050.e");
+ test_class_info(&lv, &cd_ee05050);
+ dp->~ee05050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05050(Test_ee05050, "ee05050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05050C1Ev();
+extern void _ZN7ee05050D1Ev();
+Name_Map name_map_ee05050[] = {
+ NSPAIR(_ZN7ee05050C1Ev),
+ NSPAIR(_ZN7ee05050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee05050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05050[];
+extern void _ZN6dd50503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee05050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee05050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee05050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee05050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05050[] = {
+ {&(_ZTV7ee05050[4]), 4,10},
+ {&(_tg__ZTV6dd5050__7ee05050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee05050[4]), 4,5},
+ {&(_ZTV7ee05050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee05050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee05050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05050[];
+extern VTBL_ENTRY _ZTV7ee05050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05050[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05050 = { "ee05050", // class name
+ bases_ee05050, 4,
+ &(vtc_ee05050[0]), // expected_vtbl_contents
+ &(vtt_ee05050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15050 : virtual dd5050 {
+ int e;
+ ~ee15050(); // tgen
+ ee15050(); // tgen
+};
+//SIG(1 ee15050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15050 ::~ee15050(){ note_dtor("ee15050", this);} // tgen
+ee15050 ::ee15050(){ note_ctor("ee15050", this);} // tgen
+
+static void Test_ee15050()
+{
+ extern Class_Descriptor cd_ee15050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15050, buf);
+ ee15050 *dp, &lv = *(dp=new (buf) ee15050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee15050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee15050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(32,16), "ee15050");
+ check_base_class_offset(lv, (dd5050*), ABISELECT(16,8), "ee15050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15050.e");
+ test_class_info(&lv, &cd_ee15050);
+ dp->~ee15050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15050(Test_ee15050, "ee15050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15050C1Ev();
+extern void _ZN7ee15050D1Ev();
+Name_Map name_map_ee15050[] = {
+ NSPAIR(_ZN7ee15050C1Ev),
+ NSPAIR(_ZN7ee15050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee15050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee15050[];
+extern void _ZN6dd50503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15050[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee15050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee15050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee15050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee15050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15050[] = {
+ {&(_ZTV7ee15050[5]), 5,16},
+ {&(_ZTV7ee15050[10]), 10,16},
+ {&(_ZTV7ee15050[15]), 15,16},
+ {&(_tg__ZTV6dd5050__7ee15050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee15050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee15050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee15050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15050[];
+extern VTBL_ENTRY _ZTV7ee15050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15050[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15050 = { "ee15050", // class name
+ bases_ee15050, 4,
+ &(vtc_ee15050[0]), // expected_vtbl_contents
+ &(vtt_ee15050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15050),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25050 : dd5050 {
+ int e;
+ virtual void foo(); // _ZN7ee250503fooEv
+ ~ee25050(); // tgen
+ ee25050(); // tgen
+};
+//SIG(1 ee25050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25050 ::foo(){vfunc_called(this, "_ZN7ee250503fooEv");}
+ee25050 ::~ee25050(){ note_dtor("ee25050", this);} // tgen
+ee25050 ::ee25050(){ note_ctor("ee25050", this);} // tgen
+
+static void Test_ee25050()
+{
+ extern Class_Descriptor cd_ee25050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25050, buf);
+ ee25050 *dp, &lv = *(dp=new (buf) ee25050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee25050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee25050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(16,12), "ee25050");
+ check_base_class_offset(lv, (dd5050*), 0, "ee25050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25050.e");
+ test_class_info(&lv, &cd_ee25050);
+ dp->~ee25050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25050(Test_ee25050, "ee25050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25050C1Ev();
+extern void _ZN7ee25050D1Ev();
+Name_Map name_map_ee25050[] = {
+ NSPAIR(_ZN7ee25050C1Ev),
+ NSPAIR(_ZN7ee25050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee25050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25050[];
+extern void _ZN6dd50503barEv();
+extern void _ZN7ee250503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+ (VTBL_ENTRY)&_ZN7ee250503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee25050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee25050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee25050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee25050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25050[] = {
+ {&(_ZTV7ee25050[4]), 4,11},
+ {&(_tg__ZTV6dd5050__7ee25050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee25050[4]), 4,5},
+ {&(_ZTV7ee25050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee25050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee25050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25050[];
+extern VTBL_ENTRY _ZTV7ee25050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25050[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25050 = { "ee25050", // class name
+ bases_ee25050, 4,
+ &(vtc_ee25050[0]), // expected_vtbl_contents
+ &(vtt_ee25050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35050 : virtual dd5050 {
+ int e;
+ virtual void foo(); // _ZN7ee350503fooEv
+ ~ee35050(); // tgen
+ ee35050(); // tgen
+};
+//SIG(1 ee35050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35050 ::foo(){vfunc_called(this, "_ZN7ee350503fooEv");}
+ee35050 ::~ee35050(){ note_dtor("ee35050", this);} // tgen
+ee35050 ::ee35050(){ note_ctor("ee35050", this);} // tgen
+
+static void Test_ee35050()
+{
+ extern Class_Descriptor cd_ee35050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35050, buf);
+ ee35050 *dp, &lv = *(dp=new (buf) ee35050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee35050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee35050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(32,16), "ee35050");
+ check_base_class_offset(lv, (dd5050*), ABISELECT(16,8), "ee35050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35050.e");
+ test_class_info(&lv, &cd_ee35050);
+ dp->~ee35050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35050(Test_ee35050, "ee35050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35050C1Ev();
+extern void _ZN7ee35050D1Ev();
+Name_Map name_map_ee35050[] = {
+ NSPAIR(_ZN7ee35050C1Ev),
+ NSPAIR(_ZN7ee35050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee35050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee35050[];
+extern void _ZN7ee350503fooEv();
+extern void _ZN6dd50503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35050[0]),
+ (VTBL_ENTRY)&_ZN7ee350503fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee35050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee35050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee35050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee35050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35050[] = {
+ {&(_ZTV7ee35050[5]), 5,17},
+ {&(_ZTV7ee35050[11]), 11,17},
+ {&(_ZTV7ee35050[16]), 16,17},
+ {&(_tg__ZTV6dd5050__7ee35050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee35050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee35050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee35050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35050[];
+extern VTBL_ENTRY _ZTV7ee35050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35050[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35050 = { "ee35050", // class name
+ bases_ee35050, 4,
+ &(vtc_ee35050[0]), // expected_vtbl_contents
+ &(vtt_ee35050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35050),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45050 : dd5050 {
+ int e;
+ virtual void bar(); // _ZN7ee450503barEv
+ ~ee45050(); // tgen
+ ee45050(); // tgen
+};
+//SIG(1 ee45050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45050 ::bar(){vfunc_called(this, "_ZN7ee450503barEv");}
+ee45050 ::~ee45050(){ note_dtor("ee45050", this);} // tgen
+ee45050 ::ee45050(){ note_ctor("ee45050", this);} // tgen
+
+static void Test_ee45050()
+{
+ extern Class_Descriptor cd_ee45050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45050, buf);
+ ee45050 *dp, &lv = *(dp=new (buf) ee45050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee45050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee45050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(16,12), "ee45050");
+ check_base_class_offset(lv, (dd5050*), 0, "ee45050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45050.e");
+ test_class_info(&lv, &cd_ee45050);
+ dp->~ee45050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45050(Test_ee45050, "ee45050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45050C1Ev();
+extern void _ZN7ee45050D1Ev();
+Name_Map name_map_ee45050[] = {
+ NSPAIR(_ZN7ee45050C1Ev),
+ NSPAIR(_ZN7ee45050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee45050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45050[];
+extern void _ZN7ee450503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450503barEv,_ZTv0_n16_N7ee450503barEv)();
+extern void ABISELECT(_ZThn16_N7ee450503barEv,_ZThn12_N7ee450503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45050[0]),
+ (VTBL_ENTRY)&_ZN7ee450503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450503barEv,_ZTv0_n16_N7ee450503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee45050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee45050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee45050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee45050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45050[] = {
+ {&(_ZTV7ee45050[4]), 4,10},
+ {&(_tg__ZTV6dd5050__7ee45050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee45050[4]), 4,5},
+ {&(_ZTV7ee45050[9]), 9,10},
+ {&(_tg__ZTV5cc050__7ee45050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee45050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45050[];
+extern VTBL_ENTRY _ZTV7ee45050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45050[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450503barEv,_ZTv0_n16_N7ee450503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450503barEv,_ZThn12_N7ee450503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45050 = { "ee45050", // class name
+ bases_ee45050, 4,
+ &(vtc_ee45050[0]), // expected_vtbl_contents
+ &(vtt_ee45050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45050),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55050 : virtual dd5050 {
+ int e;
+ virtual void bar(); // _ZN7ee550503barEv
+ ~ee55050(); // tgen
+ ee55050(); // tgen
+};
+//SIG(1 ee55050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55050 ::bar(){vfunc_called(this, "_ZN7ee550503barEv");}
+ee55050 ::~ee55050(){ note_dtor("ee55050", this);} // tgen
+ee55050 ::ee55050(){ note_ctor("ee55050", this);} // tgen
+
+static void Test_ee55050()
+{
+ extern Class_Descriptor cd_ee55050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55050, buf);
+ ee55050 *dp, &lv = *(dp=new (buf) ee55050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee55050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee55050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(32,16), "ee55050");
+ check_base_class_offset(lv, (dd5050*), ABISELECT(16,8), "ee55050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55050.e");
+ test_class_info(&lv, &cd_ee55050);
+ dp->~ee55050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55050(Test_ee55050, "ee55050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55050C1Ev();
+extern void _ZN7ee55050D1Ev();
+Name_Map name_map_ee55050[] = {
+ NSPAIR(_ZN7ee55050C1Ev),
+ NSPAIR(_ZN7ee55050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee55050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee55050[];
+extern void _ZN7ee550503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee550503barEv,_ZTv0_n20_N7ee550503barEv)();
+extern void ABISELECT(_ZThn16_N7ee550503barEv,_ZThn8_N7ee550503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee550503barEv,_ZTv0_n16_N7ee550503barEv)();
+extern void ABISELECT(_ZThn32_N7ee550503barEv,_ZThn16_N7ee550503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55050[0]),
+ (VTBL_ENTRY)&_ZN7ee550503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee550503barEv,_ZTv0_n20_N7ee550503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550503barEv,_ZTv0_n16_N7ee550503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee55050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee55050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee55050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee55050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55050[] = {
+ {&(_ZTV7ee55050[5]), 5,17},
+ {&(_ZTV7ee55050[11]), 11,17},
+ {&(_ZTV7ee55050[16]), 16,17},
+ {&(_tg__ZTV6dd5050__7ee55050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee55050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee55050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee55050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55050[];
+extern VTBL_ENTRY _ZTV7ee55050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55050[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550503barEv,_ZTv0_n16_N7ee550503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550503barEv,_ZThn16_N7ee550503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee550503barEv,_ZTv0_n20_N7ee550503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550503barEv,_ZThn8_N7ee550503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55050 = { "ee55050", // class name
+ bases_ee55050, 4,
+ &(vtc_ee55050[0]), // expected_vtbl_contents
+ &(vtt_ee55050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55050),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65050 : dd5050 {
+ int e;
+ virtual void foo(); // _ZN7ee650503fooEv
+ virtual void bar(); // _ZN7ee650503barEv
+ ~ee65050(); // tgen
+ ee65050(); // tgen
+};
+//SIG(1 ee65050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65050 ::foo(){vfunc_called(this, "_ZN7ee650503fooEv");}
+void ee65050 ::bar(){vfunc_called(this, "_ZN7ee650503barEv");}
+ee65050 ::~ee65050(){ note_dtor("ee65050", this);} // tgen
+ee65050 ::ee65050(){ note_ctor("ee65050", this);} // tgen
+
+static void Test_ee65050()
+{
+ extern Class_Descriptor cd_ee65050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65050, buf);
+ ee65050 *dp, &lv = *(dp=new (buf) ee65050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee65050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee65050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(16,12), "ee65050");
+ check_base_class_offset(lv, (dd5050*), 0, "ee65050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65050.e");
+ test_class_info(&lv, &cd_ee65050);
+ dp->~ee65050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65050(Test_ee65050, "ee65050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65050C1Ev();
+extern void _ZN7ee65050D1Ev();
+Name_Map name_map_ee65050[] = {
+ NSPAIR(_ZN7ee65050C1Ev),
+ NSPAIR(_ZN7ee65050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee65050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65050[];
+extern void _ZN7ee650503barEv();
+extern void _ZN7ee650503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee650503barEv,_ZTv0_n16_N7ee650503barEv)();
+extern void ABISELECT(_ZThn16_N7ee650503barEv,_ZThn12_N7ee650503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65050[0]),
+ (VTBL_ENTRY)&_ZN7ee650503barEv,
+ (VTBL_ENTRY)&_ZN7ee650503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650503barEv,_ZTv0_n16_N7ee650503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee65050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee65050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee65050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee65050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65050[] = {
+ {&(_ZTV7ee65050[4]), 4,11},
+ {&(_tg__ZTV6dd5050__7ee65050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee65050[4]), 4,5},
+ {&(_ZTV7ee65050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee65050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee65050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65050[];
+extern VTBL_ENTRY _ZTV7ee65050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65050[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn12_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650503barEv,_ZTv0_n16_N7ee650503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650503barEv,_ZThn12_N7ee650503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65050 = { "ee65050", // class name
+ bases_ee65050, 4,
+ &(vtc_ee65050[0]), // expected_vtbl_contents
+ &(vtt_ee65050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75050 : virtual dd5050 {
+ int e;
+ virtual void foo(); // _ZN7ee750503fooEv
+ virtual void bar(); // _ZN7ee750503barEv
+ ~ee75050(); // tgen
+ ee75050(); // tgen
+};
+//SIG(1 ee75050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75050 ::foo(){vfunc_called(this, "_ZN7ee750503fooEv");}
+void ee75050 ::bar(){vfunc_called(this, "_ZN7ee750503barEv");}
+ee75050 ::~ee75050(){ note_dtor("ee75050", this);} // tgen
+ee75050 ::ee75050(){ note_ctor("ee75050", this);} // tgen
+
+static void Test_ee75050()
+{
+ extern Class_Descriptor cd_ee75050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75050, buf);
+ ee75050 *dp, &lv = *(dp=new (buf) ee75050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee75050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee75050");
+ check_base_class_offset(lv, (cc050*)(dd5050*), ABISELECT(32,16), "ee75050");
+ check_base_class_offset(lv, (dd5050*), ABISELECT(16,8), "ee75050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75050.e");
+ test_class_info(&lv, &cd_ee75050);
+ dp->~ee75050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75050(Test_ee75050, "ee75050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75050C1Ev();
+extern void _ZN7ee75050D1Ev();
+Name_Map name_map_ee75050[] = {
+ NSPAIR(_ZN7ee75050C1Ev),
+ NSPAIR(_ZN7ee75050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd5050;
+extern VTBL_ENTRY _ZTI6dd5050[];
+extern VTBL_ENTRY _ZTV6dd5050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5050[];
+static Base_Class bases_ee75050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5050, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75050[];
+extern void _ZN7ee750503fooEv();
+extern void _ZN7ee750503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee750503barEv,_ZTv0_n20_N7ee750503barEv)();
+extern void ABISELECT(_ZThn16_N7ee750503barEv,_ZThn8_N7ee750503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750503barEv,_ZTv0_n16_N7ee750503barEv)();
+extern void ABISELECT(_ZThn32_N7ee750503barEv,_ZThn16_N7ee750503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75050[0]),
+ (VTBL_ENTRY)&_ZN7ee750503fooEv,
+ (VTBL_ENTRY)&_ZN7ee750503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee750503barEv,_ZTv0_n20_N7ee750503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750503barEv,_ZTv0_n16_N7ee750503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75050[];
+extern void _ZN6dd50503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5050__7ee75050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&_ZN6dd50503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv)();
+extern void ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd5050__7ee75050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee75050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee75050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75050[] = {
+ {&(_ZTV7ee75050[5]), 5,18},
+ {&(_ZTV7ee75050[12]), 12,18},
+ {&(_ZTV7ee75050[17]), 17,18},
+ {&(_tg__ZTV6dd5050__7ee75050[4]), 4,5},
+ {&(_tg__ZTV5cc050__6dd5050__7ee75050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee75050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee75050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75050[];
+extern VTBL_ENTRY _ZTV7ee75050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75050[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50503barEv,_ZTv0_n16_N6dd50503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50503barEv,_ZThn8_N6dd50503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750503barEv,_ZTv0_n16_N7ee750503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750503barEv,_ZThn16_N7ee750503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee750503barEv,_ZTv0_n20_N7ee750503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750503barEv,_ZThn8_N7ee750503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75050 = { "ee75050", // class name
+ bases_ee75050, 4,
+ &(vtc_ee75050[0]), // expected_vtbl_contents
+ &(vtt_ee75050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75050),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names25,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6050 : cc050 {
+ int d;
+ virtual void bar(); // _ZN6dd60503barEv
+ virtual void foo(); // _ZN6dd60503fooEv
+ ~dd6050(); // tgen
+ dd6050(); // tgen
+};
+//SIG(-1 dd6050) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6050 ::bar(){vfunc_called(this, "_ZN6dd60503barEv");}
+void dd6050 ::foo(){vfunc_called(this, "_ZN6dd60503fooEv");}
+dd6050 ::~dd6050(){ note_dtor("dd6050", this);} // tgen
+dd6050 ::dd6050(){ note_ctor("dd6050", this);} // tgen
+
+static void Test_dd6050()
+{
+ extern Class_Descriptor cd_dd6050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6050, buf);
+ dd6050 *dp, &lv = *(dp=new (buf) dd6050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(20,16), "dd6050");
+ check_base_class_offset(lv, (bb50*)(cc050*), 0, "dd6050");
+ check_base_class_offset(lv, (cc050*), 0, "dd6050");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6050.d");
+ test_class_info(&lv, &cd_dd6050);
+ dp->~dd6050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6050(Test_dd6050, "dd6050", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6050C1Ev();
+extern void _ZN6dd6050D1Ev();
+Name_Map name_map_dd6050[] = {
+ NSPAIR(_ZN6dd6050C1Ev),
+ NSPAIR(_ZN6dd6050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd6050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY vtc_dd6050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd6050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd6050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6050[] = {
+ {&(_ZTV6dd6050[3]), 3,5},
+ {&(_tg__ZTV5cc050__6dd6050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd6050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+Class_Descriptor cd_dd6050 = { "dd6050", // class name
+ bases_dd6050, 3,
+ &(vtc_dd6050[0]), // expected_vtbl_contents
+ &(vtt_dd6050[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6050),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06050 : dd6050 {
+ int e;
+ ~ee06050(); // tgen
+ ee06050(); // tgen
+};
+//SIG(1 ee06050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06050 ::~ee06050(){ note_dtor("ee06050", this);} // tgen
+ee06050 ::ee06050(){ note_ctor("ee06050", this);} // tgen
+
+static void Test_ee06050()
+{
+ extern Class_Descriptor cd_ee06050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06050, buf);
+ ee06050 *dp, &lv = *(dp=new (buf) ee06050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(24,20), "ee06050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), 0, "ee06050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), 0, "ee06050");
+ check_base_class_offset(lv, (dd6050*), 0, "ee06050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06050.e");
+ test_class_info(&lv, &cd_ee06050);
+ dp->~ee06050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06050(Test_ee06050, "ee06050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06050C1Ev();
+extern void _ZN7ee06050D1Ev();
+Name_Map name_map_ee06050[] = {
+ NSPAIR(_ZN7ee06050C1Ev),
+ NSPAIR(_ZN7ee06050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee06050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY vtc_ee06050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee06050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee06050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee06050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06050[] = {
+ {&(_ZTV7ee06050[3]), 3,5},
+ {&(_tg__ZTV6dd6050__7ee06050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee06050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee06050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06050[];
+extern VTBL_ENTRY _ZTV7ee06050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06050[];
+Class_Descriptor cd_ee06050 = { "ee06050", // class name
+ bases_ee06050, 4,
+ &(vtc_ee06050[0]), // expected_vtbl_contents
+ &(vtt_ee06050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16050 : virtual dd6050 {
+ int e;
+ ~ee16050(); // tgen
+ ee16050(); // tgen
+};
+//SIG(1 ee16050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16050 ::~ee16050(){ note_dtor("ee16050", this);} // tgen
+ee16050 ::ee16050(){ note_ctor("ee16050", this);} // tgen
+
+static void Test_ee16050()
+{
+ extern Class_Descriptor cd_ee16050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16050, buf);
+ ee16050 *dp, &lv = *(dp=new (buf) ee16050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(36,24), "ee16050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), ABISELECT(16,8), "ee16050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), ABISELECT(16,8), "ee16050");
+ check_base_class_offset(lv, (dd6050*), ABISELECT(16,8), "ee16050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16050.e");
+ test_class_info(&lv, &cd_ee16050);
+ dp->~ee16050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16050(Test_ee16050, "ee16050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16050C1Ev();
+extern void _ZN7ee16050D1Ev();
+Name_Map name_map_ee16050[] = {
+ NSPAIR(_ZN7ee16050C1Ev),
+ NSPAIR(_ZN7ee16050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee16050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY vtc_ee16050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16050[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee16050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee16050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee16050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16050[] = {
+ {&(_ZTV7ee16050[4]), 4,11},
+ {&(_ZTV7ee16050[9]), 9,11},
+ {&(_tg__ZTV6dd6050__7ee16050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee16050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee16050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16050[];
+extern VTBL_ENTRY _ZTV7ee16050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16050[];
+Class_Descriptor cd_ee16050 = { "ee16050", // class name
+ bases_ee16050, 4,
+ &(vtc_ee16050[0]), // expected_vtbl_contents
+ &(vtt_ee16050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26050 : dd6050 {
+ int e;
+ virtual void foo(); // _ZN7ee260503fooEv
+ ~ee26050(); // tgen
+ ee26050(); // tgen
+};
+//SIG(1 ee26050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26050 ::foo(){vfunc_called(this, "_ZN7ee260503fooEv");}
+ee26050 ::~ee26050(){ note_dtor("ee26050", this);} // tgen
+ee26050 ::ee26050(){ note_ctor("ee26050", this);} // tgen
+
+static void Test_ee26050()
+{
+ extern Class_Descriptor cd_ee26050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26050, buf);
+ ee26050 *dp, &lv = *(dp=new (buf) ee26050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(24,20), "ee26050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), 0, "ee26050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), 0, "ee26050");
+ check_base_class_offset(lv, (dd6050*), 0, "ee26050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26050.e");
+ test_class_info(&lv, &cd_ee26050);
+ dp->~ee26050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26050(Test_ee26050, "ee26050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26050C1Ev();
+extern void _ZN7ee26050D1Ev();
+Name_Map name_map_ee26050[] = {
+ NSPAIR(_ZN7ee26050C1Ev),
+ NSPAIR(_ZN7ee26050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee26050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN7ee260503fooEv();
+static VTBL_ENTRY vtc_ee26050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN7ee260503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee26050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee26050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee26050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26050[] = {
+ {&(_ZTV7ee26050[3]), 3,5},
+ {&(_tg__ZTV6dd6050__7ee26050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee26050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee26050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26050[];
+extern VTBL_ENTRY _ZTV7ee26050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26050[];
+Class_Descriptor cd_ee26050 = { "ee26050", // class name
+ bases_ee26050, 4,
+ &(vtc_ee26050[0]), // expected_vtbl_contents
+ &(vtt_ee26050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36050 : virtual dd6050 {
+ int e;
+ virtual void foo(); // _ZN7ee360503fooEv
+ ~ee36050(); // tgen
+ ee36050(); // tgen
+};
+//SIG(1 ee36050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36050 ::foo(){vfunc_called(this, "_ZN7ee360503fooEv");}
+ee36050 ::~ee36050(){ note_dtor("ee36050", this);} // tgen
+ee36050 ::ee36050(){ note_ctor("ee36050", this);} // tgen
+
+static void Test_ee36050()
+{
+ extern Class_Descriptor cd_ee36050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36050, buf);
+ ee36050 *dp, &lv = *(dp=new (buf) ee36050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(36,24), "ee36050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), ABISELECT(16,8), "ee36050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), ABISELECT(16,8), "ee36050");
+ check_base_class_offset(lv, (dd6050*), ABISELECT(16,8), "ee36050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36050.e");
+ test_class_info(&lv, &cd_ee36050);
+ dp->~ee36050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36050(Test_ee36050, "ee36050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36050C1Ev();
+extern void _ZN7ee36050D1Ev();
+Name_Map name_map_ee36050[] = {
+ NSPAIR(_ZN7ee36050C1Ev),
+ NSPAIR(_ZN7ee36050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee36050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36050[];
+extern void _ZN7ee360503fooEv();
+extern void _ZN6dd60503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee360503fooEv,_ZTv0_n20_N7ee360503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360503fooEv,_ZThn8_N7ee360503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36050[0]),
+ (VTBL_ENTRY)&_ZN7ee360503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee360503fooEv,_ZTv0_n20_N7ee360503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee36050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee36050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee36050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36050[] = {
+ {&(_ZTV7ee36050[4]), 4,12},
+ {&(_ZTV7ee36050[10]), 10,12},
+ {&(_tg__ZTV6dd6050__7ee36050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee36050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee36050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36050[];
+extern VTBL_ENTRY _ZTV7ee36050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36050[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee360503fooEv,_ZTv0_n20_N7ee360503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360503fooEv,_ZThn8_N7ee360503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36050 = { "ee36050", // class name
+ bases_ee36050, 4,
+ &(vtc_ee36050[0]), // expected_vtbl_contents
+ &(vtt_ee36050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36050),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46050 : dd6050 {
+ int e;
+ virtual void bar(); // _ZN7ee460503barEv
+ ~ee46050(); // tgen
+ ee46050(); // tgen
+};
+//SIG(1 ee46050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46050 ::bar(){vfunc_called(this, "_ZN7ee460503barEv");}
+ee46050 ::~ee46050(){ note_dtor("ee46050", this);} // tgen
+ee46050 ::ee46050(){ note_ctor("ee46050", this);} // tgen
+
+static void Test_ee46050()
+{
+ extern Class_Descriptor cd_ee46050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46050, buf);
+ ee46050 *dp, &lv = *(dp=new (buf) ee46050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(24,20), "ee46050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), 0, "ee46050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), 0, "ee46050");
+ check_base_class_offset(lv, (dd6050*), 0, "ee46050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46050.e");
+ test_class_info(&lv, &cd_ee46050);
+ dp->~ee46050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46050(Test_ee46050, "ee46050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46050C1Ev();
+extern void _ZN7ee46050D1Ev();
+Name_Map name_map_ee46050[] = {
+ NSPAIR(_ZN7ee46050C1Ev),
+ NSPAIR(_ZN7ee46050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee46050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46050[];
+extern void _ZN7ee460503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY vtc_ee46050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46050[0]),
+ (VTBL_ENTRY)&_ZN7ee460503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee46050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee46050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee46050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46050[] = {
+ {&(_ZTV7ee46050[3]), 3,5},
+ {&(_tg__ZTV6dd6050__7ee46050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee46050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee46050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46050[];
+extern VTBL_ENTRY _ZTV7ee46050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46050[];
+Class_Descriptor cd_ee46050 = { "ee46050", // class name
+ bases_ee46050, 4,
+ &(vtc_ee46050[0]), // expected_vtbl_contents
+ &(vtt_ee46050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56050 : virtual dd6050 {
+ int e;
+ virtual void bar(); // _ZN7ee560503barEv
+ ~ee56050(); // tgen
+ ee56050(); // tgen
+};
+//SIG(1 ee56050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56050 ::bar(){vfunc_called(this, "_ZN7ee560503barEv");}
+ee56050 ::~ee56050(){ note_dtor("ee56050", this);} // tgen
+ee56050 ::ee56050(){ note_ctor("ee56050", this);} // tgen
+
+static void Test_ee56050()
+{
+ extern Class_Descriptor cd_ee56050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56050, buf);
+ ee56050 *dp, &lv = *(dp=new (buf) ee56050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(36,24), "ee56050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), ABISELECT(16,8), "ee56050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), ABISELECT(16,8), "ee56050");
+ check_base_class_offset(lv, (dd6050*), ABISELECT(16,8), "ee56050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56050.e");
+ test_class_info(&lv, &cd_ee56050);
+ dp->~ee56050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56050(Test_ee56050, "ee56050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56050C1Ev();
+extern void _ZN7ee56050D1Ev();
+Name_Map name_map_ee56050[] = {
+ NSPAIR(_ZN7ee56050C1Ev),
+ NSPAIR(_ZN7ee56050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee56050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56050[];
+extern void _ZN7ee560503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560503barEv,_ZTv0_n16_N7ee560503barEv)();
+extern void ABISELECT(_ZThn16_N7ee560503barEv,_ZThn8_N7ee560503barEv)() __attribute__((weak));
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY vtc_ee56050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56050[0]),
+ (VTBL_ENTRY)&_ZN7ee560503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560503barEv,_ZTv0_n16_N7ee560503barEv),
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee56050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee56050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee56050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56050[] = {
+ {&(_ZTV7ee56050[4]), 4,12},
+ {&(_ZTV7ee56050[10]), 10,12},
+ {&(_tg__ZTV6dd6050__7ee56050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee56050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee56050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56050[];
+extern VTBL_ENTRY _ZTV7ee56050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56050[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560503barEv,_ZTv0_n16_N7ee560503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560503barEv,_ZThn8_N7ee560503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56050 = { "ee56050", // class name
+ bases_ee56050, 4,
+ &(vtc_ee56050[0]), // expected_vtbl_contents
+ &(vtt_ee56050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56050),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66050 : dd6050 {
+ int e;
+ virtual void foo(); // _ZN7ee660503fooEv
+ virtual void bar(); // _ZN7ee660503barEv
+ ~ee66050(); // tgen
+ ee66050(); // tgen
+};
+//SIG(1 ee66050) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66050 ::foo(){vfunc_called(this, "_ZN7ee660503fooEv");}
+void ee66050 ::bar(){vfunc_called(this, "_ZN7ee660503barEv");}
+ee66050 ::~ee66050(){ note_dtor("ee66050", this);} // tgen
+ee66050 ::ee66050(){ note_ctor("ee66050", this);} // tgen
+
+static void Test_ee66050()
+{
+ extern Class_Descriptor cd_ee66050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66050, buf);
+ ee66050 *dp, &lv = *(dp=new (buf) ee66050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(24,20), "ee66050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), 0, "ee66050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), 0, "ee66050");
+ check_base_class_offset(lv, (dd6050*), 0, "ee66050");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66050.e");
+ test_class_info(&lv, &cd_ee66050);
+ dp->~ee66050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66050(Test_ee66050, "ee66050", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66050C1Ev();
+extern void _ZN7ee66050D1Ev();
+Name_Map name_map_ee66050[] = {
+ NSPAIR(_ZN7ee66050C1Ev),
+ NSPAIR(_ZN7ee66050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee66050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66050[];
+extern void _ZN7ee660503barEv();
+extern void _ZN7ee660503fooEv();
+static VTBL_ENTRY vtc_ee66050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66050[0]),
+ (VTBL_ENTRY)&_ZN7ee660503barEv,
+ (VTBL_ENTRY)&_ZN7ee660503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee66050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee66050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee66050[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66050[] = {
+ {&(_ZTV7ee66050[3]), 3,5},
+ {&(_tg__ZTV6dd6050__7ee66050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee66050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee66050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66050[];
+extern VTBL_ENTRY _ZTV7ee66050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66050[];
+Class_Descriptor cd_ee66050 = { "ee66050", // class name
+ bases_ee66050, 4,
+ &(vtc_ee66050[0]), // expected_vtbl_contents
+ &(vtt_ee66050[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66050),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66050),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76050 : virtual dd6050 {
+ int e;
+ virtual void foo(); // _ZN7ee760503fooEv
+ virtual void bar(); // _ZN7ee760503barEv
+ ~ee76050(); // tgen
+ ee76050(); // tgen
+};
+//SIG(1 ee76050) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76050 ::foo(){vfunc_called(this, "_ZN7ee760503fooEv");}
+void ee76050 ::bar(){vfunc_called(this, "_ZN7ee760503barEv");}
+ee76050 ::~ee76050(){ note_dtor("ee76050", this);} // tgen
+ee76050 ::ee76050(){ note_ctor("ee76050", this);} // tgen
+
+static void Test_ee76050()
+{
+ extern Class_Descriptor cd_ee76050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76050, buf);
+ ee76050 *dp, &lv = *(dp=new (buf) ee76050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*)(dd6050*), ABISELECT(36,24), "ee76050");
+ check_base_class_offset(lv, (bb50*)(cc050*)(dd6050*), ABISELECT(16,8), "ee76050");
+ check_base_class_offset(lv, (cc050*)(dd6050*), ABISELECT(16,8), "ee76050");
+ check_base_class_offset(lv, (dd6050*), ABISELECT(16,8), "ee76050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76050.e");
+ test_class_info(&lv, &cd_ee76050);
+ dp->~ee76050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76050(Test_ee76050, "ee76050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76050C1Ev();
+extern void _ZN7ee76050D1Ev();
+Name_Map name_map_ee76050[] = {
+ NSPAIR(_ZN7ee76050C1Ev),
+ NSPAIR(_ZN7ee76050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd6050;
+extern VTBL_ENTRY _ZTI6dd6050[];
+extern VTBL_ENTRY _ZTV6dd6050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6050[];
+static Base_Class bases_ee76050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76050[];
+extern void _ZN7ee760503fooEv();
+extern void _ZN7ee760503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee760503barEv,_ZTv0_n16_N7ee760503barEv)();
+extern void ABISELECT(_ZThn16_N7ee760503barEv,_ZThn8_N7ee760503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee760503fooEv,_ZTv0_n20_N7ee760503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760503fooEv,_ZThn8_N7ee760503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76050[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76050[0]),
+ (VTBL_ENTRY)&_ZN7ee760503fooEv,
+ (VTBL_ENTRY)&_ZN7ee760503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760503barEv,_ZTv0_n16_N7ee760503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee760503fooEv,_ZTv0_n20_N7ee760503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76050[];
+extern void _ZN6dd60503barEv();
+extern void _ZN6dd60503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6050__7ee76050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6050[0]),
+ (VTBL_ENTRY)&_ZN6dd60503barEv,
+ (VTBL_ENTRY)&_ZN6dd60503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc0506dd6050__7ee76050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc0506dd6050__7ee76050[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76050[] = {
+ {&(_ZTV7ee76050[4]), 4,13},
+ {&(_ZTV7ee76050[11]), 11,13},
+ {&(_tg__ZTV6dd6050__7ee76050[3]), 3,5},
+ {&(_tg__ZTV5cc0506dd6050__7ee76050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc0506dd6050__7ee76050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76050[];
+extern VTBL_ENTRY _ZTV7ee76050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76050[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee760503fooEv,_ZTv0_n20_N7ee760503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760503fooEv,_ZThn8_N7ee760503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760503barEv,_ZTv0_n16_N7ee760503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760503barEv,_ZThn8_N7ee760503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76050 = { "ee76050", // class name
+ bases_ee76050, 4,
+ &(vtc_ee76050[0]), // expected_vtbl_contents
+ &(vtt_ee76050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76050),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76050),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7050 : virtual cc050 {
+ int d;
+ virtual void bar(); // _ZN6dd70503barEv
+ virtual void foo(); // _ZN6dd70503fooEv
+ ~dd7050(); // tgen
+ dd7050(); // tgen
+};
+//SIG(-1 dd7050) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7050 ::bar(){vfunc_called(this, "_ZN6dd70503barEv");}
+void dd7050 ::foo(){vfunc_called(this, "_ZN6dd70503fooEv");}
+dd7050 ::~dd7050(){ note_dtor("dd7050", this);} // tgen
+dd7050 ::dd7050(){ note_ctor("dd7050", this);} // tgen
+
+static void Test_dd7050()
+{
+ extern Class_Descriptor cd_dd7050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7050, buf);
+ dd7050 *dp, &lv = *(dp=new (buf) dd7050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,20), "dd7050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,8), "dd7050");
+ check_base_class_offset(lv, (cc050*), ABISELECT(16,8), "dd7050");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7050.d");
+ test_class_info(&lv, &cd_dd7050);
+ dp->~dd7050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7050(Test_dd7050, "dd7050", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7050C1Ev();
+extern void _ZN6dd7050D1Ev();
+Name_Map name_map_dd7050[] = {
+ NSPAIR(_ZN6dd7050C1Ev),
+ NSPAIR(_ZN6dd7050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+static Base_Class bases_dd7050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__6dd7050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7050[] = {
+ {&(_ZTV6dd7050[4]), 4,11},
+ {&(_ZTV6dd7050[10]), 10,11},
+ {&(_tg__ZTV5cc050__6dd7050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__6dd7050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7050 = { "dd7050", // class name
+ bases_dd7050, 3,
+ &(vtc_dd7050[0]), // expected_vtbl_contents
+ &(vtt_dd7050[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7050),4, //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 ee07050 : dd7050 {
+ int e;
+ ~ee07050(); // tgen
+ ee07050(); // tgen
+};
+//SIG(1 ee07050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07050 ::~ee07050(){ note_dtor("ee07050", this);} // tgen
+ee07050 ::ee07050(){ note_ctor("ee07050", this);} // tgen
+
+static void Test_ee07050()
+{
+ extern Class_Descriptor cd_ee07050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07050, buf);
+ ee07050 *dp, &lv = *(dp=new (buf) ee07050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee07050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee07050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(16,12), "ee07050");
+ check_base_class_offset(lv, (dd7050*), 0, "ee07050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07050.e");
+ test_class_info(&lv, &cd_ee07050);
+ dp->~ee07050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07050(Test_ee07050, "ee07050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07050C1Ev();
+extern void _ZN7ee07050D1Ev();
+Name_Map name_map_ee07050[] = {
+ NSPAIR(_ZN7ee07050C1Ev),
+ NSPAIR(_ZN7ee07050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee07050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee07050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee07050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee07050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee07050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07050[] = {
+ {&(_ZTV7ee07050[4]), 4,11},
+ {&(_tg__ZTV6dd7050__7ee07050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee07050[4]), 4,5},
+ {&(_ZTV7ee07050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee07050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee07050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07050[];
+extern VTBL_ENTRY _ZTV7ee07050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07050[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07050 = { "ee07050", // class name
+ bases_ee07050, 4,
+ &(vtc_ee07050[0]), // expected_vtbl_contents
+ &(vtt_ee07050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17050 : virtual dd7050 {
+ int e;
+ ~ee17050(); // tgen
+ ee17050(); // tgen
+};
+//SIG(1 ee17050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17050 ::~ee17050(){ note_dtor("ee17050", this);} // tgen
+ee17050 ::ee17050(){ note_ctor("ee17050", this);} // tgen
+
+static void Test_ee17050()
+{
+ extern Class_Descriptor cd_ee17050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17050, buf);
+ ee17050 *dp, &lv = *(dp=new (buf) ee17050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee17050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee17050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(32,16), "ee17050");
+ check_base_class_offset(lv, (dd7050*), ABISELECT(16,8), "ee17050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17050.e");
+ test_class_info(&lv, &cd_ee17050);
+ dp->~ee17050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17050(Test_ee17050, "ee17050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17050C1Ev();
+extern void _ZN7ee17050D1Ev();
+Name_Map name_map_ee17050[] = {
+ NSPAIR(_ZN7ee17050C1Ev),
+ NSPAIR(_ZN7ee17050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee17050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee17050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17050[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee17050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee17050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee17050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee17050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17050[] = {
+ {&(_ZTV7ee17050[5]), 5,18},
+ {&(_ZTV7ee17050[11]), 11,18},
+ {&(_ZTV7ee17050[17]), 17,18},
+ {&(_tg__ZTV6dd7050__7ee17050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee17050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee17050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee17050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17050[];
+extern VTBL_ENTRY _ZTV7ee17050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17050[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17050 = { "ee17050", // class name
+ bases_ee17050, 4,
+ &(vtc_ee17050[0]), // expected_vtbl_contents
+ &(vtt_ee17050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17050),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27050 : dd7050 {
+ int e;
+ virtual void foo(); // _ZN7ee270503fooEv
+ ~ee27050(); // tgen
+ ee27050(); // tgen
+};
+//SIG(1 ee27050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27050 ::foo(){vfunc_called(this, "_ZN7ee270503fooEv");}
+ee27050 ::~ee27050(){ note_dtor("ee27050", this);} // tgen
+ee27050 ::ee27050(){ note_ctor("ee27050", this);} // tgen
+
+static void Test_ee27050()
+{
+ extern Class_Descriptor cd_ee27050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27050, buf);
+ ee27050 *dp, &lv = *(dp=new (buf) ee27050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee27050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee27050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(16,12), "ee27050");
+ check_base_class_offset(lv, (dd7050*), 0, "ee27050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27050.e");
+ test_class_info(&lv, &cd_ee27050);
+ dp->~ee27050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27050(Test_ee27050, "ee27050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27050C1Ev();
+extern void _ZN7ee27050D1Ev();
+Name_Map name_map_ee27050[] = {
+ NSPAIR(_ZN7ee27050C1Ev),
+ NSPAIR(_ZN7ee27050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee27050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN7ee270503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN7ee270503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee27050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee27050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee27050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee27050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27050[] = {
+ {&(_ZTV7ee27050[4]), 4,11},
+ {&(_tg__ZTV6dd7050__7ee27050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee27050[4]), 4,5},
+ {&(_ZTV7ee27050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee27050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee27050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27050[];
+extern VTBL_ENTRY _ZTV7ee27050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27050[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27050 = { "ee27050", // class name
+ bases_ee27050, 4,
+ &(vtc_ee27050[0]), // expected_vtbl_contents
+ &(vtt_ee27050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37050 : virtual dd7050 {
+ int e;
+ virtual void foo(); // _ZN7ee370503fooEv
+ ~ee37050(); // tgen
+ ee37050(); // tgen
+};
+//SIG(1 ee37050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37050 ::foo(){vfunc_called(this, "_ZN7ee370503fooEv");}
+ee37050 ::~ee37050(){ note_dtor("ee37050", this);} // tgen
+ee37050 ::ee37050(){ note_ctor("ee37050", this);} // tgen
+
+static void Test_ee37050()
+{
+ extern Class_Descriptor cd_ee37050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37050, buf);
+ ee37050 *dp, &lv = *(dp=new (buf) ee37050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee37050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee37050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(32,16), "ee37050");
+ check_base_class_offset(lv, (dd7050*), ABISELECT(16,8), "ee37050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37050.e");
+ test_class_info(&lv, &cd_ee37050);
+ dp->~ee37050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37050(Test_ee37050, "ee37050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37050C1Ev();
+extern void _ZN7ee37050D1Ev();
+Name_Map name_map_ee37050[] = {
+ NSPAIR(_ZN7ee37050C1Ev),
+ NSPAIR(_ZN7ee37050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee37050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee37050[];
+extern void _ZN7ee370503fooEv();
+extern void _ZN6dd70503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee370503fooEv,_ZTv0_n24_N7ee370503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370503fooEv,_ZThn8_N7ee370503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37050[0]),
+ (VTBL_ENTRY)&_ZN7ee370503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee370503fooEv,_ZTv0_n24_N7ee370503fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee37050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee37050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee37050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee37050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37050[] = {
+ {&(_ZTV7ee37050[5]), 5,19},
+ {&(_ZTV7ee37050[12]), 12,19},
+ {&(_ZTV7ee37050[18]), 18,19},
+ {&(_tg__ZTV6dd7050__7ee37050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee37050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee37050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee37050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37050[];
+extern VTBL_ENTRY _ZTV7ee37050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37050[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee370503fooEv,_ZTv0_n24_N7ee370503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370503fooEv,_ZThn8_N7ee370503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37050 = { "ee37050", // class name
+ bases_ee37050, 4,
+ &(vtc_ee37050[0]), // expected_vtbl_contents
+ &(vtt_ee37050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37050),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47050 : dd7050 {
+ int e;
+ virtual void bar(); // _ZN7ee470503barEv
+ ~ee47050(); // tgen
+ ee47050(); // tgen
+};
+//SIG(1 ee47050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47050 ::bar(){vfunc_called(this, "_ZN7ee470503barEv");}
+ee47050 ::~ee47050(){ note_dtor("ee47050", this);} // tgen
+ee47050 ::ee47050(){ note_ctor("ee47050", this);} // tgen
+
+static void Test_ee47050()
+{
+ extern Class_Descriptor cd_ee47050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47050, buf);
+ ee47050 *dp, &lv = *(dp=new (buf) ee47050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee47050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee47050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(16,12), "ee47050");
+ check_base_class_offset(lv, (dd7050*), 0, "ee47050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47050.e");
+ test_class_info(&lv, &cd_ee47050);
+ dp->~ee47050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47050(Test_ee47050, "ee47050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47050C1Ev();
+extern void _ZN7ee47050D1Ev();
+Name_Map name_map_ee47050[] = {
+ NSPAIR(_ZN7ee47050C1Ev),
+ NSPAIR(_ZN7ee47050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee47050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47050[];
+extern void _ZN7ee470503barEv();
+extern void _ZN6dd70503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee470503barEv,_ZTv0_n16_N7ee470503barEv)();
+extern void ABISELECT(_ZThn16_N7ee470503barEv,_ZThn12_N7ee470503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47050[0]),
+ (VTBL_ENTRY)&_ZN7ee470503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470503barEv,_ZTv0_n16_N7ee470503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee47050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee47050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee47050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee47050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47050[] = {
+ {&(_ZTV7ee47050[4]), 4,11},
+ {&(_tg__ZTV6dd7050__7ee47050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee47050[4]), 4,5},
+ {&(_ZTV7ee47050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee47050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee47050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47050[];
+extern VTBL_ENTRY _ZTV7ee47050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47050[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470503barEv,_ZTv0_n16_N7ee470503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470503barEv,_ZThn12_N7ee470503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47050 = { "ee47050", // class name
+ bases_ee47050, 4,
+ &(vtc_ee47050[0]), // expected_vtbl_contents
+ &(vtt_ee47050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57050 : virtual dd7050 {
+ int e;
+ virtual void bar(); // _ZN7ee570503barEv
+ ~ee57050(); // tgen
+ ee57050(); // tgen
+};
+//SIG(1 ee57050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57050 ::bar(){vfunc_called(this, "_ZN7ee570503barEv");}
+ee57050 ::~ee57050(){ note_dtor("ee57050", this);} // tgen
+ee57050 ::ee57050(){ note_ctor("ee57050", this);} // tgen
+
+static void Test_ee57050()
+{
+ extern Class_Descriptor cd_ee57050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57050, buf);
+ ee57050 *dp, &lv = *(dp=new (buf) ee57050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee57050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee57050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(32,16), "ee57050");
+ check_base_class_offset(lv, (dd7050*), ABISELECT(16,8), "ee57050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57050.e");
+ test_class_info(&lv, &cd_ee57050);
+ dp->~ee57050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57050(Test_ee57050, "ee57050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57050C1Ev();
+extern void _ZN7ee57050D1Ev();
+Name_Map name_map_ee57050[] = {
+ NSPAIR(_ZN7ee57050C1Ev),
+ NSPAIR(_ZN7ee57050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee57050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee57050[];
+extern void _ZN7ee570503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee570503barEv,_ZTv0_n20_N7ee570503barEv)();
+extern void ABISELECT(_ZThn16_N7ee570503barEv,_ZThn8_N7ee570503barEv)() __attribute__((weak));
+extern void _ZN6dd70503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570503barEv,_ZTv0_n16_N7ee570503barEv)();
+extern void ABISELECT(_ZThn32_N7ee570503barEv,_ZThn16_N7ee570503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57050[0]),
+ (VTBL_ENTRY)&_ZN7ee570503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee570503barEv,_ZTv0_n20_N7ee570503barEv),
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570503barEv,_ZTv0_n16_N7ee570503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee57050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee57050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee57050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee57050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57050[] = {
+ {&(_ZTV7ee57050[5]), 5,19},
+ {&(_ZTV7ee57050[12]), 12,19},
+ {&(_ZTV7ee57050[18]), 18,19},
+ {&(_tg__ZTV6dd7050__7ee57050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee57050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee57050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee57050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57050[];
+extern VTBL_ENTRY _ZTV7ee57050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57050[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570503barEv,_ZTv0_n16_N7ee570503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570503barEv,_ZThn16_N7ee570503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee570503barEv,_ZTv0_n20_N7ee570503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570503barEv,_ZThn8_N7ee570503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57050 = { "ee57050", // class name
+ bases_ee57050, 4,
+ &(vtc_ee57050[0]), // expected_vtbl_contents
+ &(vtt_ee57050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57050),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67050 : dd7050 {
+ int e;
+ virtual void foo(); // _ZN7ee670503fooEv
+ virtual void bar(); // _ZN7ee670503barEv
+ ~ee67050(); // tgen
+ ee67050(); // tgen
+};
+//SIG(1 ee67050) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67050 ::foo(){vfunc_called(this, "_ZN7ee670503fooEv");}
+void ee67050 ::bar(){vfunc_called(this, "_ZN7ee670503barEv");}
+ee67050 ::~ee67050(){ note_dtor("ee67050", this);} // tgen
+ee67050 ::ee67050(){ note_ctor("ee67050", this);} // tgen
+
+static void Test_ee67050()
+{
+ extern Class_Descriptor cd_ee67050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67050, buf);
+ ee67050 *dp, &lv = *(dp=new (buf) ee67050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(32,24), "ee67050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(16,12), "ee67050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(16,12), "ee67050");
+ check_base_class_offset(lv, (dd7050*), 0, "ee67050");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67050.e");
+ test_class_info(&lv, &cd_ee67050);
+ dp->~ee67050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67050(Test_ee67050, "ee67050", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67050C1Ev();
+extern void _ZN7ee67050D1Ev();
+Name_Map name_map_ee67050[] = {
+ NSPAIR(_ZN7ee67050C1Ev),
+ NSPAIR(_ZN7ee67050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee67050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67050[];
+extern void _ZN7ee670503barEv();
+extern void _ZN7ee670503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee670503barEv,_ZTv0_n16_N7ee670503barEv)();
+extern void ABISELECT(_ZThn16_N7ee670503barEv,_ZThn12_N7ee670503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67050[0]),
+ (VTBL_ENTRY)&_ZN7ee670503barEv,
+ (VTBL_ENTRY)&_ZN7ee670503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670503barEv,_ZTv0_n16_N7ee670503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee67050[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee67050[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee67050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee67050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67050[] = {
+ {&(_ZTV7ee67050[4]), 4,11},
+ {&(_tg__ZTV6dd7050__7ee67050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee67050[4]), 4,5},
+ {&(_ZTV7ee67050[10]), 10,11},
+ {&(_tg__ZTV5cc050__7ee67050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee67050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67050[];
+extern VTBL_ENTRY _ZTV7ee67050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67050[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn12_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670503barEv,_ZTv0_n16_N7ee670503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670503barEv,_ZThn12_N7ee670503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67050 = { "ee67050", // class name
+ bases_ee67050, 4,
+ &(vtc_ee67050[0]), // expected_vtbl_contents
+ &(vtt_ee67050[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67050),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67050),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67050),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77050 : virtual dd7050 {
+ int e;
+ virtual void foo(); // _ZN7ee770503fooEv
+ virtual void bar(); // _ZN7ee770503barEv
+ ~ee77050(); // tgen
+ ee77050(); // tgen
+};
+//SIG(1 ee77050) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77050 ::foo(){vfunc_called(this, "_ZN7ee770503fooEv");}
+void ee77050 ::bar(){vfunc_called(this, "_ZN7ee770503barEv");}
+ee77050 ::~ee77050(){ note_dtor("ee77050", this);} // tgen
+ee77050 ::ee77050(){ note_ctor("ee77050", this);} // tgen
+
+static void Test_ee77050()
+{
+ extern Class_Descriptor cd_ee77050;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77050, buf);
+ ee77050 *dp, &lv = *(dp=new (buf) ee77050());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77050)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77050)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc050*), ABISELECT(48,28), "ee77050");
+ check_base_class_offset(lv, (bb50*)(cc050*), ABISELECT(32,16), "ee77050");
+ check_base_class_offset(lv, (cc050*)(dd7050*), ABISELECT(32,16), "ee77050");
+ check_base_class_offset(lv, (dd7050*), ABISELECT(16,8), "ee77050");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77050.e");
+ test_class_info(&lv, &cd_ee77050);
+ dp->~ee77050();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77050(Test_ee77050, "ee77050", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77050C1Ev();
+extern void _ZN7ee77050D1Ev();
+Name_Map name_map_ee77050[] = {
+ NSPAIR(_ZN7ee77050C1Ev),
+ NSPAIR(_ZN7ee77050D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc050;
+extern VTBL_ENTRY _ZTI5cc050[];
+extern VTBL_ENTRY _ZTV5cc050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc050[];
+extern Class_Descriptor cd_dd7050;
+extern VTBL_ENTRY _ZTI6dd7050[];
+extern VTBL_ENTRY _ZTV6dd7050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7050[];
+static Base_Class bases_ee77050[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc050, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7050, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee77050[];
+extern void _ZN7ee770503fooEv();
+extern void _ZN7ee770503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee770503barEv,_ZTv0_n20_N7ee770503barEv)();
+extern void ABISELECT(_ZThn16_N7ee770503barEv,_ZThn8_N7ee770503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee770503fooEv,_ZTv0_n24_N7ee770503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770503fooEv,_ZThn8_N7ee770503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770503barEv,_ZTv0_n16_N7ee770503barEv)();
+extern void ABISELECT(_ZThn32_N7ee770503barEv,_ZThn16_N7ee770503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77050[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77050[0]),
+ (VTBL_ENTRY)&_ZN7ee770503fooEv,
+ (VTBL_ENTRY)&_ZN7ee770503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770503barEv,_ZTv0_n20_N7ee770503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee770503fooEv,_ZTv0_n24_N7ee770503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770503barEv,_ZTv0_n16_N7ee770503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77050[];
+extern void _ZN6dd70503barEv();
+extern void _ZN6dd70503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7050__7ee77050[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&_ZN6dd70503barEv,
+ (VTBL_ENTRY)&_ZN6dd70503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv)();
+extern void ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc050__6dd7050__7ee77050[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7050[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV5cc050__7ee77050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc050[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc050__7ee77050[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77050[] = {
+ {&(_ZTV7ee77050[5]), 5,20},
+ {&(_ZTV7ee77050[13]), 13,20},
+ {&(_ZTV7ee77050[19]), 19,20},
+ {&(_tg__ZTV6dd7050__7ee77050[4]), 4,6},
+ {&(_tg__ZTV5cc050__6dd7050__7ee77050[4]), 4,5},
+ {&(_tg__ZTV5cc050__7ee77050[3]), 3,4},
+ {&(_tg__ZTV4bb505cc050__7ee77050[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77050[];
+extern VTBL_ENTRY _ZTV7ee77050[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77050[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70503barEv,_ZTv0_n16_N6dd70503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70503barEv,_ZThn8_N6dd70503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770503barEv,_ZTv0_n16_N7ee770503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770503barEv,_ZThn16_N7ee770503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee770503fooEv,_ZTv0_n24_N7ee770503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770503fooEv,_ZThn8_N7ee770503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770503barEv,_ZTv0_n20_N7ee770503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770503barEv,_ZThn8_N7ee770503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77050 = { "ee77050", // class name
+ bases_ee77050, 4,
+ &(vtc_ee77050[0]), // expected_vtbl_contents
+ &(vtt_ee77050[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77050),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77050),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77050),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names37,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc150 : virtual bb50 {
+ int c;
+ ~cc150(); // tgen
+ cc150(); // tgen
+};
+//SIG(-1 cc150) C1{ VBC2{ VBC3{ Fi} v1 Fi} Fi}
+
+
+cc150 ::~cc150(){ note_dtor("cc150", this);} // tgen
+cc150 ::cc150(){ note_ctor("cc150", this);} // tgen
+
+static void Test_cc150()
+{
+ extern Class_Descriptor cd_cc150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc150, buf);
+ cc150 *dp, &lv = *(dp=new (buf) cc150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,16), "cc150");
+ check_base_class_offset(lv, (bb50*), ABISELECT(16,8), "cc150");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc150.c");
+ test_class_info(&lv, &cd_cc150);
+ dp->~cc150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc150(Test_cc150, "cc150", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc150C1Ev();
+extern void _ZN5cc150D1Ev();
+Name_Map name_map_cc150[] = {
+ NSPAIR(_ZN5cc150C1Ev),
+ NSPAIR(_ZN5cc150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_cc150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV5cc150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc150[] = {
+ {&(_ZTV5cc150[4]), 4,9},
+ {&(_ZTV5cc150[8]), 8,9},
+ {&(_tg__ZTV4bb50__5cc150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+Class_Descriptor cd_cc150 = { "cc150", // class name
+ bases_cc150, 2,
+ &(vtc_cc150[0]), // expected_vtbl_contents
+ &(vtt_cc150[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc150),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc150),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0150 : cc150 {
+ int d;
+ ~dd0150(); // tgen
+ dd0150(); // tgen
+};
+//SIG(-1 dd0150) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd0150 ::~dd0150(){ note_dtor("dd0150", this);} // tgen
+dd0150 ::dd0150(){ note_ctor("dd0150", this);} // tgen
+
+static void Test_dd0150()
+{
+ extern Class_Descriptor cd_dd0150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0150, buf);
+ dd0150 *dp, &lv = *(dp=new (buf) dd0150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd0150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(16,12), "dd0150");
+ check_base_class_offset(lv, (cc150*), 0, "dd0150");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0150.d");
+ test_class_info(&lv, &cd_dd0150);
+ dp->~dd0150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0150(Test_dd0150, "dd0150", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0150C1Ev();
+extern void _ZN6dd0150D1Ev();
+Name_Map name_map_dd0150[] = {
+ NSPAIR(_ZN6dd0150C1Ev),
+ NSPAIR(_ZN6dd0150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd0150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd0150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd0150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd0150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0150[] = {
+ {&(_ZTV6dd0150[4]), 4,9},
+ {&(_tg__ZTV5cc150__6dd0150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd0150[4]), 4,5},
+ {&(_ZTV6dd0150[8]), 8,9},
+ {&(_tg__ZTV4bb50__6dd0150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+Class_Descriptor cd_dd0150 = { "dd0150", // class name
+ bases_dd0150, 3,
+ &(vtc_dd0150[0]), // expected_vtbl_contents
+ &(vtt_dd0150[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0150),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0150),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00150 : dd0150 {
+ int e;
+ ~ee00150(); // tgen
+ ee00150(); // tgen
+};
+//SIG(1 ee00150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00150 ::~ee00150(){ note_dtor("ee00150", this);} // tgen
+ee00150 ::ee00150(){ note_ctor("ee00150", this);} // tgen
+
+static void Test_ee00150()
+{
+ extern Class_Descriptor cd_ee00150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00150, buf);
+ ee00150 *dp, &lv = *(dp=new (buf) ee00150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee00150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(24,16), "ee00150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), 0, "ee00150");
+ check_base_class_offset(lv, (dd0150*), 0, "ee00150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00150.e");
+ test_class_info(&lv, &cd_ee00150);
+ dp->~ee00150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00150(Test_ee00150, "ee00150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00150C1Ev();
+extern void _ZN7ee00150D1Ev();
+Name_Map name_map_ee00150[] = {
+ NSPAIR(_ZN7ee00150C1Ev),
+ NSPAIR(_ZN7ee00150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee00150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee00150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee00150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee00150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee00150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee00150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee00150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00150[] = {
+ {&(_ZTV7ee00150[4]), 4,9},
+ {&(_tg__ZTV6dd0150__7ee00150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee00150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee00150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee00150[4]), 4,5},
+ {&(_ZTV7ee00150[8]), 8,9},
+ {&(_tg__ZTV4bb50__7ee00150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00150[];
+extern VTBL_ENTRY _ZTV7ee00150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00150[];
+Class_Descriptor cd_ee00150 = { "ee00150", // class name
+ bases_ee00150, 4,
+ &(vtc_ee00150[0]), // expected_vtbl_contents
+ &(vtt_ee00150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00150),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10150 : virtual dd0150 {
+ int e;
+ ~ee10150(); // tgen
+ ee10150(); // tgen
+};
+//SIG(1 ee10150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10150 ::~ee10150(){ note_dtor("ee10150", this);} // tgen
+ee10150 ::ee10150(){ note_ctor("ee10150", this);} // tgen
+
+static void Test_ee10150()
+{
+ extern Class_Descriptor cd_ee10150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10150, buf);
+ ee10150 *dp, &lv = *(dp=new (buf) ee10150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee10150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(32,20), "ee10150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), ABISELECT(16,8), "ee10150");
+ check_base_class_offset(lv, (dd0150*), ABISELECT(16,8), "ee10150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10150.e");
+ test_class_info(&lv, &cd_ee10150);
+ dp->~ee10150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10150(Test_ee10150, "ee10150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10150C1Ev();
+extern void _ZN7ee10150D1Ev();
+Name_Map name_map_ee10150[] = {
+ NSPAIR(_ZN7ee10150C1Ev),
+ NSPAIR(_ZN7ee10150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee10150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI7ee10150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee10150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10150[0]),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee10150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee10150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee10150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee10150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee10150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10150[] = {
+ {&(_ZTV7ee10150[5]), 5,14},
+ {&(_ZTV7ee10150[9]), 9,14},
+ {&(_ZTV7ee10150[13]), 13,14},
+ {&(_tg__ZTV6dd0150__7ee10150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee10150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee10150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee10150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee10150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10150[];
+extern VTBL_ENTRY _ZTV7ee10150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10150[];
+Class_Descriptor cd_ee10150 = { "ee10150", // class name
+ bases_ee10150, 4,
+ &(vtc_ee10150[0]), // expected_vtbl_contents
+ &(vtt_ee10150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10150),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20150 : dd0150 {
+ int e;
+ virtual void foo(); // _ZN7ee201503fooEv
+ ~ee20150(); // tgen
+ ee20150(); // tgen
+};
+//SIG(1 ee20150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20150 ::foo(){vfunc_called(this, "_ZN7ee201503fooEv");}
+ee20150 ::~ee20150(){ note_dtor("ee20150", this);} // tgen
+ee20150 ::ee20150(){ note_ctor("ee20150", this);} // tgen
+
+static void Test_ee20150()
+{
+ extern Class_Descriptor cd_ee20150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20150, buf);
+ ee20150 *dp, &lv = *(dp=new (buf) ee20150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee20150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(24,16), "ee20150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), 0, "ee20150");
+ check_base_class_offset(lv, (dd0150*), 0, "ee20150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20150.e");
+ test_class_info(&lv, &cd_ee20150);
+ dp->~ee20150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20150(Test_ee20150, "ee20150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20150C1Ev();
+extern void _ZN7ee20150D1Ev();
+Name_Map name_map_ee20150[] = {
+ NSPAIR(_ZN7ee20150C1Ev),
+ NSPAIR(_ZN7ee20150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee20150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20150[];
+extern void _ZN7ee201503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee20150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20150[0]),
+ (VTBL_ENTRY)&_ZN7ee201503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee20150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee20150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee20150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee20150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee20150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20150[] = {
+ {&(_ZTV7ee20150[4]), 4,10},
+ {&(_tg__ZTV6dd0150__7ee20150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee20150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee20150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee20150[4]), 4,5},
+ {&(_ZTV7ee20150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee20150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20150[];
+extern VTBL_ENTRY _ZTV7ee20150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20150[];
+Class_Descriptor cd_ee20150 = { "ee20150", // class name
+ bases_ee20150, 4,
+ &(vtc_ee20150[0]), // expected_vtbl_contents
+ &(vtt_ee20150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30150 : virtual dd0150 {
+ int e;
+ virtual void foo(); // _ZN7ee301503fooEv
+ ~ee30150(); // tgen
+ ee30150(); // tgen
+};
+//SIG(1 ee30150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30150 ::foo(){vfunc_called(this, "_ZN7ee301503fooEv");}
+ee30150 ::~ee30150(){ note_dtor("ee30150", this);} // tgen
+ee30150 ::ee30150(){ note_ctor("ee30150", this);} // tgen
+
+static void Test_ee30150()
+{
+ extern Class_Descriptor cd_ee30150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30150, buf);
+ ee30150 *dp, &lv = *(dp=new (buf) ee30150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee30150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(32,20), "ee30150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), ABISELECT(16,8), "ee30150");
+ check_base_class_offset(lv, (dd0150*), ABISELECT(16,8), "ee30150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30150.e");
+ test_class_info(&lv, &cd_ee30150);
+ dp->~ee30150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30150(Test_ee30150, "ee30150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30150C1Ev();
+extern void _ZN7ee30150D1Ev();
+Name_Map name_map_ee30150[] = {
+ NSPAIR(_ZN7ee30150C1Ev),
+ NSPAIR(_ZN7ee30150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee30150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30150[];
+extern void _ZN7ee301503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee30150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30150[0]),
+ (VTBL_ENTRY)&_ZN7ee301503fooEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee30150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee30150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee30150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee30150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee30150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30150[] = {
+ {&(_ZTV7ee30150[5]), 5,15},
+ {&(_ZTV7ee30150[10]), 10,15},
+ {&(_ZTV7ee30150[14]), 14,15},
+ {&(_tg__ZTV6dd0150__7ee30150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee30150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee30150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee30150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee30150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30150[];
+extern VTBL_ENTRY _ZTV7ee30150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30150[];
+Class_Descriptor cd_ee30150 = { "ee30150", // class name
+ bases_ee30150, 4,
+ &(vtc_ee30150[0]), // expected_vtbl_contents
+ &(vtt_ee30150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40150 : dd0150 {
+ int e;
+ virtual void bar(); // _ZN7ee401503barEv
+ ~ee40150(); // tgen
+ ee40150(); // tgen
+};
+//SIG(1 ee40150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40150 ::bar(){vfunc_called(this, "_ZN7ee401503barEv");}
+ee40150 ::~ee40150(){ note_dtor("ee40150", this);} // tgen
+ee40150 ::ee40150(){ note_ctor("ee40150", this);} // tgen
+
+static void Test_ee40150()
+{
+ extern Class_Descriptor cd_ee40150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40150, buf);
+ ee40150 *dp, &lv = *(dp=new (buf) ee40150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee40150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(24,16), "ee40150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), 0, "ee40150");
+ check_base_class_offset(lv, (dd0150*), 0, "ee40150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40150.e");
+ test_class_info(&lv, &cd_ee40150);
+ dp->~ee40150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40150(Test_ee40150, "ee40150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40150C1Ev();
+extern void _ZN7ee40150D1Ev();
+Name_Map name_map_ee40150[] = {
+ NSPAIR(_ZN7ee40150C1Ev),
+ NSPAIR(_ZN7ee40150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee40150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40150[];
+extern void _ZN7ee401503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401503barEv,_ZTv0_n16_N7ee401503barEv)();
+extern void ABISELECT(_ZThn24_N7ee401503barEv,_ZThn16_N7ee401503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40150[0]),
+ (VTBL_ENTRY)&_ZN7ee401503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401503barEv,_ZTv0_n16_N7ee401503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee40150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee40150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee40150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee40150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee40150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40150[] = {
+ {&(_ZTV7ee40150[4]), 4,10},
+ {&(_tg__ZTV6dd0150__7ee40150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee40150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee40150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee40150[4]), 4,5},
+ {&(_ZTV7ee40150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee40150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40150[];
+extern VTBL_ENTRY _ZTV7ee40150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40150[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401503barEv,_ZTv0_n16_N7ee401503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401503barEv,_ZThn16_N7ee401503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40150 = { "ee40150", // class name
+ bases_ee40150, 4,
+ &(vtc_ee40150[0]), // expected_vtbl_contents
+ &(vtt_ee40150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50150 : virtual dd0150 {
+ int e;
+ virtual void bar(); // _ZN7ee501503barEv
+ ~ee50150(); // tgen
+ ee50150(); // tgen
+};
+//SIG(1 ee50150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50150 ::bar(){vfunc_called(this, "_ZN7ee501503barEv");}
+ee50150 ::~ee50150(){ note_dtor("ee50150", this);} // tgen
+ee50150 ::ee50150(){ note_ctor("ee50150", this);} // tgen
+
+static void Test_ee50150()
+{
+ extern Class_Descriptor cd_ee50150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50150, buf);
+ ee50150 *dp, &lv = *(dp=new (buf) ee50150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee50150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(32,20), "ee50150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), ABISELECT(16,8), "ee50150");
+ check_base_class_offset(lv, (dd0150*), ABISELECT(16,8), "ee50150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50150.e");
+ test_class_info(&lv, &cd_ee50150);
+ dp->~ee50150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50150(Test_ee50150, "ee50150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50150C1Ev();
+extern void _ZN7ee50150D1Ev();
+Name_Map name_map_ee50150[] = {
+ NSPAIR(_ZN7ee50150C1Ev),
+ NSPAIR(_ZN7ee50150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee50150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50150[];
+extern void _ZN7ee501503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501503barEv,_ZTv0_n16_N7ee501503barEv)();
+extern void ABISELECT(_ZThn32_N7ee501503barEv,_ZThn20_N7ee501503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50150[0]),
+ (VTBL_ENTRY)&_ZN7ee501503barEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501503barEv,_ZTv0_n16_N7ee501503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee50150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee50150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee50150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee50150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee50150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50150[] = {
+ {&(_ZTV7ee50150[5]), 5,15},
+ {&(_ZTV7ee50150[10]), 10,15},
+ {&(_ZTV7ee50150[14]), 14,15},
+ {&(_tg__ZTV6dd0150__7ee50150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee50150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee50150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee50150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee50150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50150[];
+extern VTBL_ENTRY _ZTV7ee50150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50150[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501503barEv,_ZTv0_n16_N7ee501503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501503barEv,_ZThn20_N7ee501503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50150 = { "ee50150", // class name
+ bases_ee50150, 4,
+ &(vtc_ee50150[0]), // expected_vtbl_contents
+ &(vtt_ee50150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60150 : dd0150 {
+ int e;
+ virtual void foo(); // _ZN7ee601503fooEv
+ virtual void bar(); // _ZN7ee601503barEv
+ ~ee60150(); // tgen
+ ee60150(); // tgen
+};
+//SIG(1 ee60150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60150 ::foo(){vfunc_called(this, "_ZN7ee601503fooEv");}
+void ee60150 ::bar(){vfunc_called(this, "_ZN7ee601503barEv");}
+ee60150 ::~ee60150(){ note_dtor("ee60150", this);} // tgen
+ee60150 ::ee60150(){ note_ctor("ee60150", this);} // tgen
+
+static void Test_ee60150()
+{
+ extern Class_Descriptor cd_ee60150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60150, buf);
+ ee60150 *dp, &lv = *(dp=new (buf) ee60150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee60150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(24,16), "ee60150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), 0, "ee60150");
+ check_base_class_offset(lv, (dd0150*), 0, "ee60150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60150.e");
+ test_class_info(&lv, &cd_ee60150);
+ dp->~ee60150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60150(Test_ee60150, "ee60150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60150C1Ev();
+extern void _ZN7ee60150D1Ev();
+Name_Map name_map_ee60150[] = {
+ NSPAIR(_ZN7ee60150C1Ev),
+ NSPAIR(_ZN7ee60150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee60150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60150[];
+extern void _ZN7ee601503fooEv();
+extern void _ZN7ee601503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee601503barEv,_ZTv0_n16_N7ee601503barEv)();
+extern void ABISELECT(_ZThn24_N7ee601503barEv,_ZThn16_N7ee601503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60150[0]),
+ (VTBL_ENTRY)&_ZN7ee601503fooEv,
+ (VTBL_ENTRY)&_ZN7ee601503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601503barEv,_ZTv0_n16_N7ee601503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee60150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee60150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee60150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee60150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee60150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60150[] = {
+ {&(_ZTV7ee60150[4]), 4,11},
+ {&(_tg__ZTV6dd0150__7ee60150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee60150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee60150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee60150[4]), 4,5},
+ {&(_ZTV7ee60150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee60150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60150[];
+extern VTBL_ENTRY _ZTV7ee60150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60150[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601503barEv,_ZTv0_n16_N7ee601503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601503barEv,_ZThn16_N7ee601503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60150 = { "ee60150", // class name
+ bases_ee60150, 4,
+ &(vtc_ee60150[0]), // expected_vtbl_contents
+ &(vtt_ee60150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70150 : virtual dd0150 {
+ int e;
+ virtual void foo(); // _ZN7ee701503fooEv
+ virtual void bar(); // _ZN7ee701503barEv
+ ~ee70150(); // tgen
+ ee70150(); // tgen
+};
+//SIG(1 ee70150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70150 ::foo(){vfunc_called(this, "_ZN7ee701503fooEv");}
+void ee70150 ::bar(){vfunc_called(this, "_ZN7ee701503barEv");}
+ee70150 ::~ee70150(){ note_dtor("ee70150", this);} // tgen
+ee70150 ::ee70150(){ note_ctor("ee70150", this);} // tgen
+
+static void Test_ee70150()
+{
+ extern Class_Descriptor cd_ee70150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70150, buf);
+ ee70150 *dp, &lv = *(dp=new (buf) ee70150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee70150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd0150*), ABISELECT(32,20), "ee70150");
+ check_base_class_offset(lv, (cc150*)(dd0150*), ABISELECT(16,8), "ee70150");
+ check_base_class_offset(lv, (dd0150*), ABISELECT(16,8), "ee70150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70150.e");
+ test_class_info(&lv, &cd_ee70150);
+ dp->~ee70150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70150(Test_ee70150, "ee70150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70150C1Ev();
+extern void _ZN7ee70150D1Ev();
+Name_Map name_map_ee70150[] = {
+ NSPAIR(_ZN7ee70150C1Ev),
+ NSPAIR(_ZN7ee70150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd0150;
+extern VTBL_ENTRY _ZTI6dd0150[];
+extern VTBL_ENTRY _ZTV6dd0150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0150[];
+static Base_Class bases_ee70150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70150[];
+extern void _ZN7ee701503fooEv();
+extern void _ZN7ee701503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee701503barEv,_ZTv0_n16_N7ee701503barEv)();
+extern void ABISELECT(_ZThn32_N7ee701503barEv,_ZThn20_N7ee701503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70150[0]),
+ (VTBL_ENTRY)&_ZN7ee701503fooEv,
+ (VTBL_ENTRY)&_ZN7ee701503barEv,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701503barEv,_ZTv0_n16_N7ee701503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70150[];
+static VTBL_ENTRY _tg__ZTV6dd0150__7ee70150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd0150__7ee70150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd0150__7ee70150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0150__7ee70150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee70150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70150[] = {
+ {&(_ZTV7ee70150[5]), 5,16},
+ {&(_ZTV7ee70150[11]), 11,16},
+ {&(_ZTV7ee70150[15]), 15,16},
+ {&(_tg__ZTV6dd0150__7ee70150[4]), 4,4},
+ {&(_tg__ZTV5cc1506dd0150__7ee70150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd0150__7ee70150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0150__7ee70150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee70150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70150[];
+extern VTBL_ENTRY _ZTV7ee70150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70150[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701503barEv,_ZTv0_n16_N7ee701503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701503barEv,_ZThn20_N7ee701503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70150 = { "ee70150", // class name
+ bases_ee70150, 4,
+ &(vtc_ee70150[0]), // expected_vtbl_contents
+ &(vtt_ee70150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1150 : virtual cc150 {
+ int d;
+ ~dd1150(); // tgen
+ dd1150(); // tgen
+};
+//SIG(-1 dd1150) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} Fi}
+
+
+dd1150 ::~dd1150(){ note_dtor("dd1150", this);} // tgen
+dd1150 ::dd1150(){ note_ctor("dd1150", this);} // tgen
+
+static void Test_dd1150()
+{
+ extern Class_Descriptor cd_dd1150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1150, buf);
+ dd1150 *dp, &lv = *(dp=new (buf) dd1150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd1150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,16), "dd1150");
+ check_base_class_offset(lv, (cc150*), ABISELECT(16,8), "dd1150");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1150.d");
+ test_class_info(&lv, &cd_dd1150);
+ dp->~dd1150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1150(Test_dd1150, "dd1150", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1150C1Ev();
+extern void _ZN6dd1150D1Ev();
+Name_Map name_map_dd1150[] = {
+ NSPAIR(_ZN6dd1150C1Ev),
+ NSPAIR(_ZN6dd1150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd1150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd1150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd1150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1150[] = {
+ {&(_ZTV6dd1150[5]), 5,14},
+ {&(_ZTV6dd1150[9]), 9,14},
+ {&(_ZTV6dd1150[13]), 13,14},
+ {&(_tg__ZTV5cc150__6dd1150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd1150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd1150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+Class_Descriptor cd_dd1150 = { "dd1150", // class name
+ bases_dd1150, 3,
+ &(vtc_dd1150[0]), // expected_vtbl_contents
+ &(vtt_dd1150[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1150),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1150),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01150 : dd1150 {
+ int e;
+ ~ee01150(); // tgen
+ ee01150(); // tgen
+};
+//SIG(1 ee01150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01150 ::~ee01150(){ note_dtor("ee01150", this);} // tgen
+ee01150 ::ee01150(){ note_ctor("ee01150", this);} // tgen
+
+static void Test_ee01150()
+{
+ extern Class_Descriptor cd_ee01150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01150, buf);
+ ee01150 *dp, &lv = *(dp=new (buf) ee01150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee01150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee01150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(16,12), "ee01150");
+ check_base_class_offset(lv, (dd1150*), 0, "ee01150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01150.e");
+ test_class_info(&lv, &cd_ee01150);
+ dp->~ee01150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01150(Test_ee01150, "ee01150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01150C1Ev();
+extern void _ZN7ee01150D1Ev();
+Name_Map name_map_ee01150[] = {
+ NSPAIR(_ZN7ee01150C1Ev),
+ NSPAIR(_ZN7ee01150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee01150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee01150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee01150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee01150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee01150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee01150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee01150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee01150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01150[] = {
+ {&(_ZTV7ee01150[5]), 5,14},
+ {&(_tg__ZTV6dd1150__7ee01150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee01150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee01150[4]), 4,5},
+ {&(_ZTV7ee01150[9]), 9,14},
+ {&(_ZTV7ee01150[13]), 13,14},
+ {&(_tg__ZTV5cc150__7ee01150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee01150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee01150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01150[];
+extern VTBL_ENTRY _ZTV7ee01150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01150[];
+Class_Descriptor cd_ee01150 = { "ee01150", // class name
+ bases_ee01150, 4,
+ &(vtc_ee01150[0]), // expected_vtbl_contents
+ &(vtt_ee01150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01150),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11150 : virtual dd1150 {
+ int e;
+ ~ee11150(); // tgen
+ ee11150(); // tgen
+};
+//SIG(1 ee11150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11150 ::~ee11150(){ note_dtor("ee11150", this);} // tgen
+ee11150 ::ee11150(){ note_ctor("ee11150", this);} // tgen
+
+static void Test_ee11150()
+{
+ extern Class_Descriptor cd_ee11150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11150, buf);
+ ee11150 *dp, &lv = *(dp=new (buf) ee11150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee11150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee11150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(32,16), "ee11150");
+ check_base_class_offset(lv, (dd1150*), ABISELECT(16,8), "ee11150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11150.e");
+ test_class_info(&lv, &cd_ee11150);
+ dp->~ee11150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11150(Test_ee11150, "ee11150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11150C1Ev();
+extern void _ZN7ee11150D1Ev();
+Name_Map name_map_ee11150[] = {
+ NSPAIR(_ZN7ee11150C1Ev),
+ NSPAIR(_ZN7ee11150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee11150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI7ee11150[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee11150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11150[0]),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee11150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee11150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee11150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee11150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee11150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee11150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11150[] = {
+ {&(_ZTV7ee11150[6]), 6,20},
+ {&(_ZTV7ee11150[11]), 11,20},
+ {&(_ZTV7ee11150[15]), 15,20},
+ {&(_ZTV7ee11150[19]), 19,20},
+ {&(_tg__ZTV6dd1150__7ee11150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee11150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee11150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee11150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee11150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee11150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11150[];
+extern VTBL_ENTRY _ZTV7ee11150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11150[];
+Class_Descriptor cd_ee11150 = { "ee11150", // class name
+ bases_ee11150, 4,
+ &(vtc_ee11150[0]), // expected_vtbl_contents
+ &(vtt_ee11150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11150),20, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21150 : dd1150 {
+ int e;
+ virtual void foo(); // _ZN7ee211503fooEv
+ ~ee21150(); // tgen
+ ee21150(); // tgen
+};
+//SIG(1 ee21150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21150 ::foo(){vfunc_called(this, "_ZN7ee211503fooEv");}
+ee21150 ::~ee21150(){ note_dtor("ee21150", this);} // tgen
+ee21150 ::ee21150(){ note_ctor("ee21150", this);} // tgen
+
+static void Test_ee21150()
+{
+ extern Class_Descriptor cd_ee21150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21150, buf);
+ ee21150 *dp, &lv = *(dp=new (buf) ee21150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee21150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee21150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(16,12), "ee21150");
+ check_base_class_offset(lv, (dd1150*), 0, "ee21150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21150.e");
+ test_class_info(&lv, &cd_ee21150);
+ dp->~ee21150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21150(Test_ee21150, "ee21150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21150C1Ev();
+extern void _ZN7ee21150D1Ev();
+Name_Map name_map_ee21150[] = {
+ NSPAIR(_ZN7ee21150C1Ev),
+ NSPAIR(_ZN7ee21150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee21150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21150[];
+extern void _ZN7ee211503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee21150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21150[0]),
+ (VTBL_ENTRY)&_ZN7ee211503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee21150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee21150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee21150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee21150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee21150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee21150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21150[] = {
+ {&(_ZTV7ee21150[5]), 5,15},
+ {&(_tg__ZTV6dd1150__7ee21150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee21150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee21150[4]), 4,5},
+ {&(_ZTV7ee21150[10]), 10,15},
+ {&(_ZTV7ee21150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee21150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee21150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee21150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21150[];
+extern VTBL_ENTRY _ZTV7ee21150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21150[];
+Class_Descriptor cd_ee21150 = { "ee21150", // class name
+ bases_ee21150, 4,
+ &(vtc_ee21150[0]), // expected_vtbl_contents
+ &(vtt_ee21150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31150 : virtual dd1150 {
+ int e;
+ virtual void foo(); // _ZN7ee311503fooEv
+ ~ee31150(); // tgen
+ ee31150(); // tgen
+};
+//SIG(1 ee31150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31150 ::foo(){vfunc_called(this, "_ZN7ee311503fooEv");}
+ee31150 ::~ee31150(){ note_dtor("ee31150", this);} // tgen
+ee31150 ::ee31150(){ note_ctor("ee31150", this);} // tgen
+
+static void Test_ee31150()
+{
+ extern Class_Descriptor cd_ee31150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31150, buf);
+ ee31150 *dp, &lv = *(dp=new (buf) ee31150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee31150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee31150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(32,16), "ee31150");
+ check_base_class_offset(lv, (dd1150*), ABISELECT(16,8), "ee31150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31150.e");
+ test_class_info(&lv, &cd_ee31150);
+ dp->~ee31150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31150(Test_ee31150, "ee31150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31150C1Ev();
+extern void _ZN7ee31150D1Ev();
+Name_Map name_map_ee31150[] = {
+ NSPAIR(_ZN7ee31150C1Ev),
+ NSPAIR(_ZN7ee31150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee31150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31150[];
+extern void _ZN7ee311503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee31150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31150[0]),
+ (VTBL_ENTRY)&_ZN7ee311503fooEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee31150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee31150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee31150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee31150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee31150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee31150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31150[] = {
+ {&(_ZTV7ee31150[6]), 6,21},
+ {&(_ZTV7ee31150[12]), 12,21},
+ {&(_ZTV7ee31150[16]), 16,21},
+ {&(_ZTV7ee31150[20]), 20,21},
+ {&(_tg__ZTV6dd1150__7ee31150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee31150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee31150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee31150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee31150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee31150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31150[];
+extern VTBL_ENTRY _ZTV7ee31150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31150[];
+Class_Descriptor cd_ee31150 = { "ee31150", // class name
+ bases_ee31150, 4,
+ &(vtc_ee31150[0]), // expected_vtbl_contents
+ &(vtt_ee31150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31150),21, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41150 : dd1150 {
+ int e;
+ virtual void bar(); // _ZN7ee411503barEv
+ ~ee41150(); // tgen
+ ee41150(); // tgen
+};
+//SIG(1 ee41150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41150 ::bar(){vfunc_called(this, "_ZN7ee411503barEv");}
+ee41150 ::~ee41150(){ note_dtor("ee41150", this);} // tgen
+ee41150 ::ee41150(){ note_ctor("ee41150", this);} // tgen
+
+static void Test_ee41150()
+{
+ extern Class_Descriptor cd_ee41150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41150, buf);
+ ee41150 *dp, &lv = *(dp=new (buf) ee41150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee41150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee41150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(16,12), "ee41150");
+ check_base_class_offset(lv, (dd1150*), 0, "ee41150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41150.e");
+ test_class_info(&lv, &cd_ee41150);
+ dp->~ee41150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41150(Test_ee41150, "ee41150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41150C1Ev();
+extern void _ZN7ee41150D1Ev();
+Name_Map name_map_ee41150[] = {
+ NSPAIR(_ZN7ee41150C1Ev),
+ NSPAIR(_ZN7ee41150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee41150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41150[];
+extern void _ZN7ee411503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411503barEv,_ZTv0_n16_N7ee411503barEv)();
+extern void ABISELECT(_ZThn32_N7ee411503barEv,_ZThn20_N7ee411503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41150[0]),
+ (VTBL_ENTRY)&_ZN7ee411503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411503barEv,_ZTv0_n16_N7ee411503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee41150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee41150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee41150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee41150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee41150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee41150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41150[] = {
+ {&(_ZTV7ee41150[5]), 5,15},
+ {&(_tg__ZTV6dd1150__7ee41150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee41150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee41150[4]), 4,5},
+ {&(_ZTV7ee41150[10]), 10,15},
+ {&(_ZTV7ee41150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee41150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee41150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee41150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41150[];
+extern VTBL_ENTRY _ZTV7ee41150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41150[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411503barEv,_ZTv0_n16_N7ee411503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411503barEv,_ZThn20_N7ee411503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41150 = { "ee41150", // class name
+ bases_ee41150, 4,
+ &(vtc_ee41150[0]), // expected_vtbl_contents
+ &(vtt_ee41150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51150 : virtual dd1150 {
+ int e;
+ virtual void bar(); // _ZN7ee511503barEv
+ ~ee51150(); // tgen
+ ee51150(); // tgen
+};
+//SIG(1 ee51150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51150 ::bar(){vfunc_called(this, "_ZN7ee511503barEv");}
+ee51150 ::~ee51150(){ note_dtor("ee51150", this);} // tgen
+ee51150 ::ee51150(){ note_ctor("ee51150", this);} // tgen
+
+static void Test_ee51150()
+{
+ extern Class_Descriptor cd_ee51150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51150, buf);
+ ee51150 *dp, &lv = *(dp=new (buf) ee51150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee51150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee51150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(32,16), "ee51150");
+ check_base_class_offset(lv, (dd1150*), ABISELECT(16,8), "ee51150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51150.e");
+ test_class_info(&lv, &cd_ee51150);
+ dp->~ee51150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51150(Test_ee51150, "ee51150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51150C1Ev();
+extern void _ZN7ee51150D1Ev();
+Name_Map name_map_ee51150[] = {
+ NSPAIR(_ZN7ee51150C1Ev),
+ NSPAIR(_ZN7ee51150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee51150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51150[];
+extern void _ZN7ee511503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511503barEv,_ZTv0_n16_N7ee511503barEv)();
+extern void ABISELECT(_ZThn48_N7ee511503barEv,_ZThn24_N7ee511503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51150[0]),
+ (VTBL_ENTRY)&_ZN7ee511503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511503barEv,_ZTv0_n16_N7ee511503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee51150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee51150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee51150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee51150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee51150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee51150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51150[] = {
+ {&(_ZTV7ee51150[6]), 6,21},
+ {&(_ZTV7ee51150[12]), 12,21},
+ {&(_ZTV7ee51150[16]), 16,21},
+ {&(_ZTV7ee51150[20]), 20,21},
+ {&(_tg__ZTV6dd1150__7ee51150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee51150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee51150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee51150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee51150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee51150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51150[];
+extern VTBL_ENTRY _ZTV7ee51150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51150[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511503barEv,_ZTv0_n16_N7ee511503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511503barEv,_ZThn24_N7ee511503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51150 = { "ee51150", // class name
+ bases_ee51150, 4,
+ &(vtc_ee51150[0]), // expected_vtbl_contents
+ &(vtt_ee51150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51150),21, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61150 : dd1150 {
+ int e;
+ virtual void foo(); // _ZN7ee611503fooEv
+ virtual void bar(); // _ZN7ee611503barEv
+ ~ee61150(); // tgen
+ ee61150(); // tgen
+};
+//SIG(1 ee61150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61150 ::foo(){vfunc_called(this, "_ZN7ee611503fooEv");}
+void ee61150 ::bar(){vfunc_called(this, "_ZN7ee611503barEv");}
+ee61150 ::~ee61150(){ note_dtor("ee61150", this);} // tgen
+ee61150 ::ee61150(){ note_ctor("ee61150", this);} // tgen
+
+static void Test_ee61150()
+{
+ extern Class_Descriptor cd_ee61150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61150, buf);
+ ee61150 *dp, &lv = *(dp=new (buf) ee61150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee61150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee61150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(16,12), "ee61150");
+ check_base_class_offset(lv, (dd1150*), 0, "ee61150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61150.e");
+ test_class_info(&lv, &cd_ee61150);
+ dp->~ee61150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61150(Test_ee61150, "ee61150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61150C1Ev();
+extern void _ZN7ee61150D1Ev();
+Name_Map name_map_ee61150[] = {
+ NSPAIR(_ZN7ee61150C1Ev),
+ NSPAIR(_ZN7ee61150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee61150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61150[];
+extern void _ZN7ee611503fooEv();
+extern void _ZN7ee611503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee611503barEv,_ZTv0_n16_N7ee611503barEv)();
+extern void ABISELECT(_ZThn32_N7ee611503barEv,_ZThn20_N7ee611503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61150[0]),
+ (VTBL_ENTRY)&_ZN7ee611503fooEv,
+ (VTBL_ENTRY)&_ZN7ee611503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611503barEv,_ZTv0_n16_N7ee611503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee61150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee61150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee61150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee61150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee61150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee61150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61150[] = {
+ {&(_ZTV7ee61150[5]), 5,16},
+ {&(_tg__ZTV6dd1150__7ee61150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee61150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee61150[4]), 4,5},
+ {&(_ZTV7ee61150[11]), 11,16},
+ {&(_ZTV7ee61150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee61150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee61150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee61150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61150[];
+extern VTBL_ENTRY _ZTV7ee61150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61150[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611503barEv,_ZTv0_n16_N7ee611503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611503barEv,_ZThn20_N7ee611503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61150 = { "ee61150", // class name
+ bases_ee61150, 4,
+ &(vtc_ee61150[0]), // expected_vtbl_contents
+ &(vtt_ee61150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71150 : virtual dd1150 {
+ int e;
+ virtual void foo(); // _ZN7ee711503fooEv
+ virtual void bar(); // _ZN7ee711503barEv
+ ~ee71150(); // tgen
+ ee71150(); // tgen
+};
+//SIG(1 ee71150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71150 ::foo(){vfunc_called(this, "_ZN7ee711503fooEv");}
+void ee71150 ::bar(){vfunc_called(this, "_ZN7ee711503barEv");}
+ee71150 ::~ee71150(){ note_dtor("ee71150", this);} // tgen
+ee71150 ::ee71150(){ note_ctor("ee71150", this);} // tgen
+
+static void Test_ee71150()
+{
+ extern Class_Descriptor cd_ee71150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71150, buf);
+ ee71150 *dp, &lv = *(dp=new (buf) ee71150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee71150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee71150");
+ check_base_class_offset(lv, (cc150*)(dd1150*), ABISELECT(32,16), "ee71150");
+ check_base_class_offset(lv, (dd1150*), ABISELECT(16,8), "ee71150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71150.e");
+ test_class_info(&lv, &cd_ee71150);
+ dp->~ee71150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71150(Test_ee71150, "ee71150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71150C1Ev();
+extern void _ZN7ee71150D1Ev();
+Name_Map name_map_ee71150[] = {
+ NSPAIR(_ZN7ee71150C1Ev),
+ NSPAIR(_ZN7ee71150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd1150;
+extern VTBL_ENTRY _ZTI6dd1150[];
+extern VTBL_ENTRY _ZTV6dd1150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1150[];
+static Base_Class bases_ee71150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1150, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71150[];
+extern void _ZN7ee711503fooEv();
+extern void _ZN7ee711503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee711503barEv,_ZTv0_n16_N7ee711503barEv)();
+extern void ABISELECT(_ZThn48_N7ee711503barEv,_ZThn24_N7ee711503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71150[0]),
+ (VTBL_ENTRY)&_ZN7ee711503fooEv,
+ (VTBL_ENTRY)&_ZN7ee711503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71150[0]),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711503barEv,_ZTv0_n16_N7ee711503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71150[];
+static VTBL_ENTRY _tg__ZTV6dd1150__7ee71150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd1150__7ee71150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1150__7ee71150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee71150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee71150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee71150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71150[] = {
+ {&(_ZTV7ee71150[6]), 6,22},
+ {&(_ZTV7ee71150[13]), 13,22},
+ {&(_ZTV7ee71150[17]), 17,22},
+ {&(_ZTV7ee71150[21]), 21,22},
+ {&(_tg__ZTV6dd1150__7ee71150[5]), 5,5},
+ {&(_tg__ZTV5cc150__6dd1150__7ee71150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd1150__7ee71150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee71150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee71150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee71150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71150[];
+extern VTBL_ENTRY _ZTV7ee71150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71150[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711503barEv,_ZTv0_n16_N7ee711503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711503barEv,_ZThn24_N7ee711503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71150 = { "ee71150", // class name
+ bases_ee71150, 4,
+ &(vtc_ee71150[0]), // expected_vtbl_contents
+ &(vtt_ee71150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71150),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2150 : cc150 {
+ int d;
+ virtual void foo(); // _ZN6dd21503fooEv
+ ~dd2150(); // tgen
+ dd2150(); // tgen
+};
+//SIG(-1 dd2150) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2150 ::foo(){vfunc_called(this, "_ZN6dd21503fooEv");}
+dd2150 ::~dd2150(){ note_dtor("dd2150", this);} // tgen
+dd2150 ::dd2150(){ note_ctor("dd2150", this);} // tgen
+
+static void Test_dd2150()
+{
+ extern Class_Descriptor cd_dd2150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2150, buf);
+ dd2150 *dp, &lv = *(dp=new (buf) dd2150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd2150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(16,12), "dd2150");
+ check_base_class_offset(lv, (cc150*), 0, "dd2150");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2150.d");
+ test_class_info(&lv, &cd_dd2150);
+ dp->~dd2150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2150(Test_dd2150, "dd2150", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2150C1Ev();
+extern void _ZN6dd2150D1Ev();
+Name_Map name_map_dd2150[] = {
+ NSPAIR(_ZN6dd2150C1Ev),
+ NSPAIR(_ZN6dd2150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd2150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern void _ZN6dd21503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd2150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd2150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd2150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2150[] = {
+ {&(_ZTV6dd2150[4]), 4,10},
+ {&(_tg__ZTV5cc150__6dd2150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd2150[4]), 4,5},
+ {&(_ZTV6dd2150[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd2150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+Class_Descriptor cd_dd2150 = { "dd2150", // class name
+ bases_dd2150, 3,
+ &(vtc_dd2150[0]), // expected_vtbl_contents
+ &(vtt_dd2150[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2150),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02150 : dd2150 {
+ int e;
+ ~ee02150(); // tgen
+ ee02150(); // tgen
+};
+//SIG(1 ee02150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02150 ::~ee02150(){ note_dtor("ee02150", this);} // tgen
+ee02150 ::ee02150(){ note_ctor("ee02150", this);} // tgen
+
+static void Test_ee02150()
+{
+ extern Class_Descriptor cd_ee02150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02150, buf);
+ ee02150 *dp, &lv = *(dp=new (buf) ee02150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee02150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(24,16), "ee02150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), 0, "ee02150");
+ check_base_class_offset(lv, (dd2150*), 0, "ee02150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02150.e");
+ test_class_info(&lv, &cd_ee02150);
+ dp->~ee02150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02150(Test_ee02150, "ee02150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02150C1Ev();
+extern void _ZN7ee02150D1Ev();
+Name_Map name_map_ee02150[] = {
+ NSPAIR(_ZN7ee02150C1Ev),
+ NSPAIR(_ZN7ee02150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee02150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02150[];
+extern void _ZN6dd21503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee02150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee02150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee02150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee02150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee02150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee02150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02150[] = {
+ {&(_ZTV7ee02150[4]), 4,10},
+ {&(_tg__ZTV6dd2150__7ee02150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee02150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee02150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee02150[4]), 4,5},
+ {&(_ZTV7ee02150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee02150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02150[];
+extern VTBL_ENTRY _ZTV7ee02150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02150[];
+Class_Descriptor cd_ee02150 = { "ee02150", // class name
+ bases_ee02150, 4,
+ &(vtc_ee02150[0]), // expected_vtbl_contents
+ &(vtt_ee02150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12150 : virtual dd2150 {
+ int e;
+ ~ee12150(); // tgen
+ ee12150(); // tgen
+};
+//SIG(1 ee12150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12150 ::~ee12150(){ note_dtor("ee12150", this);} // tgen
+ee12150 ::ee12150(){ note_ctor("ee12150", this);} // tgen
+
+static void Test_ee12150()
+{
+ extern Class_Descriptor cd_ee12150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12150, buf);
+ ee12150 *dp, &lv = *(dp=new (buf) ee12150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee12150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(32,20), "ee12150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), ABISELECT(16,8), "ee12150");
+ check_base_class_offset(lv, (dd2150*), ABISELECT(16,8), "ee12150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12150.e");
+ test_class_info(&lv, &cd_ee12150);
+ dp->~ee12150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12150(Test_ee12150, "ee12150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12150C1Ev();
+extern void _ZN7ee12150D1Ev();
+Name_Map name_map_ee12150[] = {
+ NSPAIR(_ZN7ee12150C1Ev),
+ NSPAIR(_ZN7ee12150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee12150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee12150[];
+extern void _ZN6dd21503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee12150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12150[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee12150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee12150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee12150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee12150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee12150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12150[] = {
+ {&(_ZTV7ee12150[5]), 5,16},
+ {&(_ZTV7ee12150[10]), 10,16},
+ {&(_ZTV7ee12150[15]), 15,16},
+ {&(_tg__ZTV6dd2150__7ee12150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee12150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee12150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee12150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee12150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12150[];
+extern VTBL_ENTRY _ZTV7ee12150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12150[];
+Class_Descriptor cd_ee12150 = { "ee12150", // class name
+ bases_ee12150, 4,
+ &(vtc_ee12150[0]), // expected_vtbl_contents
+ &(vtt_ee12150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22150 : dd2150 {
+ int e;
+ virtual void foo(); // _ZN7ee221503fooEv
+ ~ee22150(); // tgen
+ ee22150(); // tgen
+};
+//SIG(1 ee22150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22150 ::foo(){vfunc_called(this, "_ZN7ee221503fooEv");}
+ee22150 ::~ee22150(){ note_dtor("ee22150", this);} // tgen
+ee22150 ::ee22150(){ note_ctor("ee22150", this);} // tgen
+
+static void Test_ee22150()
+{
+ extern Class_Descriptor cd_ee22150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22150, buf);
+ ee22150 *dp, &lv = *(dp=new (buf) ee22150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee22150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(24,16), "ee22150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), 0, "ee22150");
+ check_base_class_offset(lv, (dd2150*), 0, "ee22150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22150.e");
+ test_class_info(&lv, &cd_ee22150);
+ dp->~ee22150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22150(Test_ee22150, "ee22150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22150C1Ev();
+extern void _ZN7ee22150D1Ev();
+Name_Map name_map_ee22150[] = {
+ NSPAIR(_ZN7ee22150C1Ev),
+ NSPAIR(_ZN7ee22150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee22150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22150[];
+extern void _ZN7ee221503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee22150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22150[0]),
+ (VTBL_ENTRY)&_ZN7ee221503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee22150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee22150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee22150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee22150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee22150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22150[] = {
+ {&(_ZTV7ee22150[4]), 4,10},
+ {&(_tg__ZTV6dd2150__7ee22150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee22150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee22150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee22150[4]), 4,5},
+ {&(_ZTV7ee22150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee22150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22150[];
+extern VTBL_ENTRY _ZTV7ee22150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22150[];
+Class_Descriptor cd_ee22150 = { "ee22150", // class name
+ bases_ee22150, 4,
+ &(vtc_ee22150[0]), // expected_vtbl_contents
+ &(vtt_ee22150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32150 : virtual dd2150 {
+ int e;
+ virtual void foo(); // _ZN7ee321503fooEv
+ ~ee32150(); // tgen
+ ee32150(); // tgen
+};
+//SIG(1 ee32150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32150 ::foo(){vfunc_called(this, "_ZN7ee321503fooEv");}
+ee32150 ::~ee32150(){ note_dtor("ee32150", this);} // tgen
+ee32150 ::ee32150(){ note_ctor("ee32150", this);} // tgen
+
+static void Test_ee32150()
+{
+ extern Class_Descriptor cd_ee32150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32150, buf);
+ ee32150 *dp, &lv = *(dp=new (buf) ee32150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee32150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(32,20), "ee32150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), ABISELECT(16,8), "ee32150");
+ check_base_class_offset(lv, (dd2150*), ABISELECT(16,8), "ee32150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32150.e");
+ test_class_info(&lv, &cd_ee32150);
+ dp->~ee32150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32150(Test_ee32150, "ee32150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32150C1Ev();
+extern void _ZN7ee32150D1Ev();
+Name_Map name_map_ee32150[] = {
+ NSPAIR(_ZN7ee32150C1Ev),
+ NSPAIR(_ZN7ee32150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee32150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee32150[];
+extern void _ZN7ee321503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee321503fooEv,_ZTv0_n20_N7ee321503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321503fooEv,_ZThn8_N7ee321503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee32150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32150[0]),
+ (VTBL_ENTRY)&_ZN7ee321503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee321503fooEv,_ZTv0_n20_N7ee321503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee32150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee32150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee32150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee32150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee32150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32150[] = {
+ {&(_ZTV7ee32150[5]), 5,17},
+ {&(_ZTV7ee32150[11]), 11,17},
+ {&(_ZTV7ee32150[16]), 16,17},
+ {&(_tg__ZTV6dd2150__7ee32150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee32150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee32150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee32150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee32150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32150[];
+extern VTBL_ENTRY _ZTV7ee32150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32150[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee321503fooEv,_ZTv0_n20_N7ee321503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321503fooEv,_ZThn8_N7ee321503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32150 = { "ee32150", // class name
+ bases_ee32150, 4,
+ &(vtc_ee32150[0]), // expected_vtbl_contents
+ &(vtt_ee32150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32150),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42150 : dd2150 {
+ int e;
+ virtual void bar(); // _ZN7ee421503barEv
+ ~ee42150(); // tgen
+ ee42150(); // tgen
+};
+//SIG(1 ee42150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42150 ::bar(){vfunc_called(this, "_ZN7ee421503barEv");}
+ee42150 ::~ee42150(){ note_dtor("ee42150", this);} // tgen
+ee42150 ::ee42150(){ note_ctor("ee42150", this);} // tgen
+
+static void Test_ee42150()
+{
+ extern Class_Descriptor cd_ee42150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42150, buf);
+ ee42150 *dp, &lv = *(dp=new (buf) ee42150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee42150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(24,16), "ee42150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), 0, "ee42150");
+ check_base_class_offset(lv, (dd2150*), 0, "ee42150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42150.e");
+ test_class_info(&lv, &cd_ee42150);
+ dp->~ee42150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42150(Test_ee42150, "ee42150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42150C1Ev();
+extern void _ZN7ee42150D1Ev();
+Name_Map name_map_ee42150[] = {
+ NSPAIR(_ZN7ee42150C1Ev),
+ NSPAIR(_ZN7ee42150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee42150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42150[];
+extern void _ZN6dd21503fooEv();
+extern void _ZN7ee421503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee421503barEv,_ZTv0_n16_N7ee421503barEv)();
+extern void ABISELECT(_ZThn24_N7ee421503barEv,_ZThn16_N7ee421503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+ (VTBL_ENTRY)&_ZN7ee421503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421503barEv,_ZTv0_n16_N7ee421503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee42150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee42150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee42150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee42150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee42150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42150[] = {
+ {&(_ZTV7ee42150[4]), 4,11},
+ {&(_tg__ZTV6dd2150__7ee42150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee42150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee42150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee42150[4]), 4,5},
+ {&(_ZTV7ee42150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee42150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42150[];
+extern VTBL_ENTRY _ZTV7ee42150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42150[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421503barEv,_ZTv0_n16_N7ee421503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421503barEv,_ZThn16_N7ee421503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42150 = { "ee42150", // class name
+ bases_ee42150, 4,
+ &(vtc_ee42150[0]), // expected_vtbl_contents
+ &(vtt_ee42150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52150 : virtual dd2150 {
+ int e;
+ virtual void bar(); // _ZN7ee521503barEv
+ ~ee52150(); // tgen
+ ee52150(); // tgen
+};
+//SIG(1 ee52150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52150 ::bar(){vfunc_called(this, "_ZN7ee521503barEv");}
+ee52150 ::~ee52150(){ note_dtor("ee52150", this);} // tgen
+ee52150 ::ee52150(){ note_ctor("ee52150", this);} // tgen
+
+static void Test_ee52150()
+{
+ extern Class_Descriptor cd_ee52150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52150, buf);
+ ee52150 *dp, &lv = *(dp=new (buf) ee52150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee52150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(32,20), "ee52150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), ABISELECT(16,8), "ee52150");
+ check_base_class_offset(lv, (dd2150*), ABISELECT(16,8), "ee52150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52150.e");
+ test_class_info(&lv, &cd_ee52150);
+ dp->~ee52150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52150(Test_ee52150, "ee52150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52150C1Ev();
+extern void _ZN7ee52150D1Ev();
+Name_Map name_map_ee52150[] = {
+ NSPAIR(_ZN7ee52150C1Ev),
+ NSPAIR(_ZN7ee52150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee52150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee52150[];
+extern void _ZN7ee521503barEv();
+extern void _ZN6dd21503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee521503barEv,_ZTv0_n16_N7ee521503barEv)();
+extern void ABISELECT(_ZThn32_N7ee521503barEv,_ZThn20_N7ee521503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52150[0]),
+ (VTBL_ENTRY)&_ZN7ee521503barEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521503barEv,_ZTv0_n16_N7ee521503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee52150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee52150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee52150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee52150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee52150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52150[] = {
+ {&(_ZTV7ee52150[5]), 5,17},
+ {&(_ZTV7ee52150[11]), 11,17},
+ {&(_ZTV7ee52150[16]), 16,17},
+ {&(_tg__ZTV6dd2150__7ee52150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee52150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee52150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee52150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee52150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52150[];
+extern VTBL_ENTRY _ZTV7ee52150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52150[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521503barEv,_ZTv0_n16_N7ee521503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521503barEv,_ZThn20_N7ee521503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52150 = { "ee52150", // class name
+ bases_ee52150, 4,
+ &(vtc_ee52150[0]), // expected_vtbl_contents
+ &(vtt_ee52150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52150),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62150 : dd2150 {
+ int e;
+ virtual void foo(); // _ZN7ee621503fooEv
+ virtual void bar(); // _ZN7ee621503barEv
+ ~ee62150(); // tgen
+ ee62150(); // tgen
+};
+//SIG(1 ee62150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62150 ::foo(){vfunc_called(this, "_ZN7ee621503fooEv");}
+void ee62150 ::bar(){vfunc_called(this, "_ZN7ee621503barEv");}
+ee62150 ::~ee62150(){ note_dtor("ee62150", this);} // tgen
+ee62150 ::ee62150(){ note_ctor("ee62150", this);} // tgen
+
+static void Test_ee62150()
+{
+ extern Class_Descriptor cd_ee62150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62150, buf);
+ ee62150 *dp, &lv = *(dp=new (buf) ee62150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee62150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(24,16), "ee62150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), 0, "ee62150");
+ check_base_class_offset(lv, (dd2150*), 0, "ee62150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62150.e");
+ test_class_info(&lv, &cd_ee62150);
+ dp->~ee62150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62150(Test_ee62150, "ee62150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62150C1Ev();
+extern void _ZN7ee62150D1Ev();
+Name_Map name_map_ee62150[] = {
+ NSPAIR(_ZN7ee62150C1Ev),
+ NSPAIR(_ZN7ee62150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee62150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62150[];
+extern void _ZN7ee621503fooEv();
+extern void _ZN7ee621503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee621503barEv,_ZTv0_n16_N7ee621503barEv)();
+extern void ABISELECT(_ZThn24_N7ee621503barEv,_ZThn16_N7ee621503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62150[0]),
+ (VTBL_ENTRY)&_ZN7ee621503fooEv,
+ (VTBL_ENTRY)&_ZN7ee621503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621503barEv,_ZTv0_n16_N7ee621503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee62150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee62150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee62150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee62150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee62150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62150[] = {
+ {&(_ZTV7ee62150[4]), 4,11},
+ {&(_tg__ZTV6dd2150__7ee62150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee62150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee62150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee62150[4]), 4,5},
+ {&(_ZTV7ee62150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee62150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62150[];
+extern VTBL_ENTRY _ZTV7ee62150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62150[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621503barEv,_ZTv0_n16_N7ee621503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621503barEv,_ZThn16_N7ee621503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62150 = { "ee62150", // class name
+ bases_ee62150, 4,
+ &(vtc_ee62150[0]), // expected_vtbl_contents
+ &(vtt_ee62150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72150 : virtual dd2150 {
+ int e;
+ virtual void foo(); // _ZN7ee721503fooEv
+ virtual void bar(); // _ZN7ee721503barEv
+ ~ee72150(); // tgen
+ ee72150(); // tgen
+};
+//SIG(1 ee72150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72150 ::foo(){vfunc_called(this, "_ZN7ee721503fooEv");}
+void ee72150 ::bar(){vfunc_called(this, "_ZN7ee721503barEv");}
+ee72150 ::~ee72150(){ note_dtor("ee72150", this);} // tgen
+ee72150 ::ee72150(){ note_ctor("ee72150", this);} // tgen
+
+static void Test_ee72150()
+{
+ extern Class_Descriptor cd_ee72150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72150, buf);
+ ee72150 *dp, &lv = *(dp=new (buf) ee72150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee72150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd2150*), ABISELECT(32,20), "ee72150");
+ check_base_class_offset(lv, (cc150*)(dd2150*), ABISELECT(16,8), "ee72150");
+ check_base_class_offset(lv, (dd2150*), ABISELECT(16,8), "ee72150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72150.e");
+ test_class_info(&lv, &cd_ee72150);
+ dp->~ee72150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72150(Test_ee72150, "ee72150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72150C1Ev();
+extern void _ZN7ee72150D1Ev();
+Name_Map name_map_ee72150[] = {
+ NSPAIR(_ZN7ee72150C1Ev),
+ NSPAIR(_ZN7ee72150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd2150;
+extern VTBL_ENTRY _ZTI6dd2150[];
+extern VTBL_ENTRY _ZTV6dd2150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2150[];
+static Base_Class bases_ee72150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72150[];
+extern void _ZN7ee721503fooEv();
+extern void _ZN7ee721503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee721503fooEv,_ZTv0_n20_N7ee721503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721503fooEv,_ZThn8_N7ee721503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721503barEv,_ZTv0_n16_N7ee721503barEv)();
+extern void ABISELECT(_ZThn32_N7ee721503barEv,_ZThn20_N7ee721503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72150[0]),
+ (VTBL_ENTRY)&_ZN7ee721503fooEv,
+ (VTBL_ENTRY)&_ZN7ee721503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee721503fooEv,_ZTv0_n20_N7ee721503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721503barEv,_ZTv0_n16_N7ee721503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72150[];
+extern void _ZN6dd21503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2150__7ee72150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN6dd21503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd2150__7ee72150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd2150__7ee72150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2150__7ee72150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee72150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72150[] = {
+ {&(_ZTV7ee72150[5]), 5,18},
+ {&(_ZTV7ee72150[12]), 12,18},
+ {&(_ZTV7ee72150[17]), 17,18},
+ {&(_tg__ZTV6dd2150__7ee72150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd2150__7ee72150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd2150__7ee72150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2150__7ee72150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee72150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72150[];
+extern VTBL_ENTRY _ZTV7ee72150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72150[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721503barEv,_ZTv0_n16_N7ee721503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721503barEv,_ZThn20_N7ee721503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee721503fooEv,_ZTv0_n20_N7ee721503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721503fooEv,_ZThn8_N7ee721503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72150 = { "ee72150", // class name
+ bases_ee72150, 4,
+ &(vtc_ee72150[0]), // expected_vtbl_contents
+ &(vtt_ee72150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72150),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3150 : virtual cc150 {
+ int d;
+ virtual void foo(); // _ZN6dd31503fooEv
+ ~dd3150(); // tgen
+ dd3150(); // tgen
+};
+//SIG(-1 dd3150) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3150 ::foo(){vfunc_called(this, "_ZN6dd31503fooEv");}
+dd3150 ::~dd3150(){ note_dtor("dd3150", this);} // tgen
+dd3150 ::dd3150(){ note_ctor("dd3150", this);} // tgen
+
+static void Test_dd3150()
+{
+ extern Class_Descriptor cd_dd3150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3150, buf);
+ dd3150 *dp, &lv = *(dp=new (buf) dd3150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd3150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,16), "dd3150");
+ check_base_class_offset(lv, (cc150*), ABISELECT(16,8), "dd3150");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3150.d");
+ test_class_info(&lv, &cd_dd3150);
+ dp->~dd3150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3150(Test_dd3150, "dd3150", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3150C1Ev();
+extern void _ZN6dd3150D1Ev();
+Name_Map name_map_dd3150[] = {
+ NSPAIR(_ZN6dd3150C1Ev),
+ NSPAIR(_ZN6dd3150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd3150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern void _ZN6dd31503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd3150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd3150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3150[] = {
+ {&(_ZTV6dd3150[5]), 5,15},
+ {&(_ZTV6dd3150[10]), 10,15},
+ {&(_ZTV6dd3150[14]), 14,15},
+ {&(_tg__ZTV5cc150__6dd3150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd3150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd3150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+Class_Descriptor cd_dd3150 = { "dd3150", // class name
+ bases_dd3150, 3,
+ &(vtc_dd3150[0]), // expected_vtbl_contents
+ &(vtt_dd3150[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3150),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03150 : dd3150 {
+ int e;
+ ~ee03150(); // tgen
+ ee03150(); // tgen
+};
+//SIG(1 ee03150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03150 ::~ee03150(){ note_dtor("ee03150", this);} // tgen
+ee03150 ::ee03150(){ note_ctor("ee03150", this);} // tgen
+
+static void Test_ee03150()
+{
+ extern Class_Descriptor cd_ee03150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03150, buf);
+ ee03150 *dp, &lv = *(dp=new (buf) ee03150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee03150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee03150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(16,12), "ee03150");
+ check_base_class_offset(lv, (dd3150*), 0, "ee03150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03150.e");
+ test_class_info(&lv, &cd_ee03150);
+ dp->~ee03150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03150(Test_ee03150, "ee03150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03150C1Ev();
+extern void _ZN7ee03150D1Ev();
+Name_Map name_map_ee03150[] = {
+ NSPAIR(_ZN7ee03150C1Ev),
+ NSPAIR(_ZN7ee03150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee03150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03150[];
+extern void _ZN6dd31503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee03150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee03150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee03150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee03150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee03150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee03150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee03150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03150[] = {
+ {&(_ZTV7ee03150[5]), 5,15},
+ {&(_tg__ZTV6dd3150__7ee03150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee03150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee03150[4]), 4,5},
+ {&(_ZTV7ee03150[10]), 10,15},
+ {&(_ZTV7ee03150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee03150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee03150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee03150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03150[];
+extern VTBL_ENTRY _ZTV7ee03150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03150[];
+Class_Descriptor cd_ee03150 = { "ee03150", // class name
+ bases_ee03150, 4,
+ &(vtc_ee03150[0]), // expected_vtbl_contents
+ &(vtt_ee03150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13150 : virtual dd3150 {
+ int e;
+ ~ee13150(); // tgen
+ ee13150(); // tgen
+};
+//SIG(1 ee13150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13150 ::~ee13150(){ note_dtor("ee13150", this);} // tgen
+ee13150 ::ee13150(){ note_ctor("ee13150", this);} // tgen
+
+static void Test_ee13150()
+{
+ extern Class_Descriptor cd_ee13150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13150, buf);
+ ee13150 *dp, &lv = *(dp=new (buf) ee13150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee13150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee13150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(32,16), "ee13150");
+ check_base_class_offset(lv, (dd3150*), ABISELECT(16,8), "ee13150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13150.e");
+ test_class_info(&lv, &cd_ee13150);
+ dp->~ee13150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13150(Test_ee13150, "ee13150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13150C1Ev();
+extern void _ZN7ee13150D1Ev();
+Name_Map name_map_ee13150[] = {
+ NSPAIR(_ZN7ee13150C1Ev),
+ NSPAIR(_ZN7ee13150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee13150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee13150[];
+extern void _ZN6dd31503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee13150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13150[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee13150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee13150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee13150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee13150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee13150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee13150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13150[] = {
+ {&(_ZTV7ee13150[6]), 6,22},
+ {&(_ZTV7ee13150[12]), 12,22},
+ {&(_ZTV7ee13150[17]), 17,22},
+ {&(_ZTV7ee13150[21]), 21,22},
+ {&(_tg__ZTV6dd3150__7ee13150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee13150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee13150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee13150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee13150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee13150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13150[];
+extern VTBL_ENTRY _ZTV7ee13150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13150[];
+Class_Descriptor cd_ee13150 = { "ee13150", // class name
+ bases_ee13150, 4,
+ &(vtc_ee13150[0]), // expected_vtbl_contents
+ &(vtt_ee13150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13150),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23150 : dd3150 {
+ int e;
+ virtual void foo(); // _ZN7ee231503fooEv
+ ~ee23150(); // tgen
+ ee23150(); // tgen
+};
+//SIG(1 ee23150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23150 ::foo(){vfunc_called(this, "_ZN7ee231503fooEv");}
+ee23150 ::~ee23150(){ note_dtor("ee23150", this);} // tgen
+ee23150 ::ee23150(){ note_ctor("ee23150", this);} // tgen
+
+static void Test_ee23150()
+{
+ extern Class_Descriptor cd_ee23150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23150, buf);
+ ee23150 *dp, &lv = *(dp=new (buf) ee23150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee23150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee23150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(16,12), "ee23150");
+ check_base_class_offset(lv, (dd3150*), 0, "ee23150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23150.e");
+ test_class_info(&lv, &cd_ee23150);
+ dp->~ee23150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23150(Test_ee23150, "ee23150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23150C1Ev();
+extern void _ZN7ee23150D1Ev();
+Name_Map name_map_ee23150[] = {
+ NSPAIR(_ZN7ee23150C1Ev),
+ NSPAIR(_ZN7ee23150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee23150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23150[];
+extern void _ZN7ee231503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee23150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23150[0]),
+ (VTBL_ENTRY)&_ZN7ee231503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee23150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee23150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee23150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee23150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee23150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee23150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23150[] = {
+ {&(_ZTV7ee23150[5]), 5,15},
+ {&(_tg__ZTV6dd3150__7ee23150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee23150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee23150[4]), 4,5},
+ {&(_ZTV7ee23150[10]), 10,15},
+ {&(_ZTV7ee23150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee23150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee23150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee23150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23150[];
+extern VTBL_ENTRY _ZTV7ee23150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23150[];
+Class_Descriptor cd_ee23150 = { "ee23150", // class name
+ bases_ee23150, 4,
+ &(vtc_ee23150[0]), // expected_vtbl_contents
+ &(vtt_ee23150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33150 : virtual dd3150 {
+ int e;
+ virtual void foo(); // _ZN7ee331503fooEv
+ ~ee33150(); // tgen
+ ee33150(); // tgen
+};
+//SIG(1 ee33150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33150 ::foo(){vfunc_called(this, "_ZN7ee331503fooEv");}
+ee33150 ::~ee33150(){ note_dtor("ee33150", this);} // tgen
+ee33150 ::ee33150(){ note_ctor("ee33150", this);} // tgen
+
+static void Test_ee33150()
+{
+ extern Class_Descriptor cd_ee33150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33150, buf);
+ ee33150 *dp, &lv = *(dp=new (buf) ee33150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee33150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee33150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(32,16), "ee33150");
+ check_base_class_offset(lv, (dd3150*), ABISELECT(16,8), "ee33150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33150.e");
+ test_class_info(&lv, &cd_ee33150);
+ dp->~ee33150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33150(Test_ee33150, "ee33150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33150C1Ev();
+extern void _ZN7ee33150D1Ev();
+Name_Map name_map_ee33150[] = {
+ NSPAIR(_ZN7ee33150C1Ev),
+ NSPAIR(_ZN7ee33150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee33150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee33150[];
+extern void _ZN7ee331503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee331503fooEv,_ZTv0_n24_N7ee331503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331503fooEv,_ZThn8_N7ee331503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee33150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33150[0]),
+ (VTBL_ENTRY)&_ZN7ee331503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee331503fooEv,_ZTv0_n24_N7ee331503fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33150[0]),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee33150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee33150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee33150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee33150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee33150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee33150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33150[] = {
+ {&(_ZTV7ee33150[6]), 6,23},
+ {&(_ZTV7ee33150[13]), 13,23},
+ {&(_ZTV7ee33150[18]), 18,23},
+ {&(_ZTV7ee33150[22]), 22,23},
+ {&(_tg__ZTV6dd3150__7ee33150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee33150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee33150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee33150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee33150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee33150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33150[];
+extern VTBL_ENTRY _ZTV7ee33150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33150[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee331503fooEv,_ZTv0_n24_N7ee331503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331503fooEv,_ZThn8_N7ee331503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33150 = { "ee33150", // class name
+ bases_ee33150, 4,
+ &(vtc_ee33150[0]), // expected_vtbl_contents
+ &(vtt_ee33150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33150),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43150 : dd3150 {
+ int e;
+ virtual void bar(); // _ZN7ee431503barEv
+ ~ee43150(); // tgen
+ ee43150(); // tgen
+};
+//SIG(1 ee43150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43150 ::bar(){vfunc_called(this, "_ZN7ee431503barEv");}
+ee43150 ::~ee43150(){ note_dtor("ee43150", this);} // tgen
+ee43150 ::ee43150(){ note_ctor("ee43150", this);} // tgen
+
+static void Test_ee43150()
+{
+ extern Class_Descriptor cd_ee43150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43150, buf);
+ ee43150 *dp, &lv = *(dp=new (buf) ee43150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee43150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee43150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(16,12), "ee43150");
+ check_base_class_offset(lv, (dd3150*), 0, "ee43150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43150.e");
+ test_class_info(&lv, &cd_ee43150);
+ dp->~ee43150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43150(Test_ee43150, "ee43150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43150C1Ev();
+extern void _ZN7ee43150D1Ev();
+Name_Map name_map_ee43150[] = {
+ NSPAIR(_ZN7ee43150C1Ev),
+ NSPAIR(_ZN7ee43150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee43150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43150[];
+extern void _ZN6dd31503fooEv();
+extern void _ZN7ee431503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee431503barEv,_ZTv0_n16_N7ee431503barEv)();
+extern void ABISELECT(_ZThn32_N7ee431503barEv,_ZThn20_N7ee431503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+ (VTBL_ENTRY)&_ZN7ee431503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431503barEv,_ZTv0_n16_N7ee431503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee43150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee43150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee43150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee43150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee43150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee43150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43150[] = {
+ {&(_ZTV7ee43150[5]), 5,16},
+ {&(_tg__ZTV6dd3150__7ee43150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee43150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee43150[4]), 4,5},
+ {&(_ZTV7ee43150[11]), 11,16},
+ {&(_ZTV7ee43150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee43150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee43150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee43150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43150[];
+extern VTBL_ENTRY _ZTV7ee43150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43150[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431503barEv,_ZTv0_n16_N7ee431503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431503barEv,_ZThn20_N7ee431503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43150 = { "ee43150", // class name
+ bases_ee43150, 4,
+ &(vtc_ee43150[0]), // expected_vtbl_contents
+ &(vtt_ee43150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53150 : virtual dd3150 {
+ int e;
+ virtual void bar(); // _ZN7ee531503barEv
+ ~ee53150(); // tgen
+ ee53150(); // tgen
+};
+//SIG(1 ee53150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53150 ::bar(){vfunc_called(this, "_ZN7ee531503barEv");}
+ee53150 ::~ee53150(){ note_dtor("ee53150", this);} // tgen
+ee53150 ::ee53150(){ note_ctor("ee53150", this);} // tgen
+
+static void Test_ee53150()
+{
+ extern Class_Descriptor cd_ee53150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53150, buf);
+ ee53150 *dp, &lv = *(dp=new (buf) ee53150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee53150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee53150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(32,16), "ee53150");
+ check_base_class_offset(lv, (dd3150*), ABISELECT(16,8), "ee53150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53150.e");
+ test_class_info(&lv, &cd_ee53150);
+ dp->~ee53150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53150(Test_ee53150, "ee53150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53150C1Ev();
+extern void _ZN7ee53150D1Ev();
+Name_Map name_map_ee53150[] = {
+ NSPAIR(_ZN7ee53150C1Ev),
+ NSPAIR(_ZN7ee53150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee53150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee53150[];
+extern void _ZN7ee531503barEv();
+extern void _ZN6dd31503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee531503barEv,_ZTv0_n16_N7ee531503barEv)();
+extern void ABISELECT(_ZThn48_N7ee531503barEv,_ZThn24_N7ee531503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53150[0]),
+ (VTBL_ENTRY)&_ZN7ee531503barEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531503barEv,_ZTv0_n16_N7ee531503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee53150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee53150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee53150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee53150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee53150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee53150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53150[] = {
+ {&(_ZTV7ee53150[6]), 6,23},
+ {&(_ZTV7ee53150[13]), 13,23},
+ {&(_ZTV7ee53150[18]), 18,23},
+ {&(_ZTV7ee53150[22]), 22,23},
+ {&(_tg__ZTV6dd3150__7ee53150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee53150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee53150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee53150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee53150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee53150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53150[];
+extern VTBL_ENTRY _ZTV7ee53150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53150[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531503barEv,_ZTv0_n16_N7ee531503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531503barEv,_ZThn24_N7ee531503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53150 = { "ee53150", // class name
+ bases_ee53150, 4,
+ &(vtc_ee53150[0]), // expected_vtbl_contents
+ &(vtt_ee53150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53150),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63150 : dd3150 {
+ int e;
+ virtual void foo(); // _ZN7ee631503fooEv
+ virtual void bar(); // _ZN7ee631503barEv
+ ~ee63150(); // tgen
+ ee63150(); // tgen
+};
+//SIG(1 ee63150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63150 ::foo(){vfunc_called(this, "_ZN7ee631503fooEv");}
+void ee63150 ::bar(){vfunc_called(this, "_ZN7ee631503barEv");}
+ee63150 ::~ee63150(){ note_dtor("ee63150", this);} // tgen
+ee63150 ::ee63150(){ note_ctor("ee63150", this);} // tgen
+
+static void Test_ee63150()
+{
+ extern Class_Descriptor cd_ee63150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63150, buf);
+ ee63150 *dp, &lv = *(dp=new (buf) ee63150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee63150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee63150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(16,12), "ee63150");
+ check_base_class_offset(lv, (dd3150*), 0, "ee63150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63150.e");
+ test_class_info(&lv, &cd_ee63150);
+ dp->~ee63150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63150(Test_ee63150, "ee63150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63150C1Ev();
+extern void _ZN7ee63150D1Ev();
+Name_Map name_map_ee63150[] = {
+ NSPAIR(_ZN7ee63150C1Ev),
+ NSPAIR(_ZN7ee63150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee63150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63150[];
+extern void _ZN7ee631503fooEv();
+extern void _ZN7ee631503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee631503barEv,_ZTv0_n16_N7ee631503barEv)();
+extern void ABISELECT(_ZThn32_N7ee631503barEv,_ZThn20_N7ee631503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63150[0]),
+ (VTBL_ENTRY)&_ZN7ee631503fooEv,
+ (VTBL_ENTRY)&_ZN7ee631503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631503barEv,_ZTv0_n16_N7ee631503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee63150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee63150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee63150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee63150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee63150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee63150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63150[] = {
+ {&(_ZTV7ee63150[5]), 5,16},
+ {&(_tg__ZTV6dd3150__7ee63150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee63150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee63150[4]), 4,5},
+ {&(_ZTV7ee63150[11]), 11,16},
+ {&(_ZTV7ee63150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee63150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee63150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee63150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63150[];
+extern VTBL_ENTRY _ZTV7ee63150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63150[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631503barEv,_ZTv0_n16_N7ee631503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631503barEv,_ZThn20_N7ee631503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63150 = { "ee63150", // class name
+ bases_ee63150, 4,
+ &(vtc_ee63150[0]), // expected_vtbl_contents
+ &(vtt_ee63150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73150 : virtual dd3150 {
+ int e;
+ virtual void foo(); // _ZN7ee731503fooEv
+ virtual void bar(); // _ZN7ee731503barEv
+ ~ee73150(); // tgen
+ ee73150(); // tgen
+};
+//SIG(1 ee73150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73150 ::foo(){vfunc_called(this, "_ZN7ee731503fooEv");}
+void ee73150 ::bar(){vfunc_called(this, "_ZN7ee731503barEv");}
+ee73150 ::~ee73150(){ note_dtor("ee73150", this);} // tgen
+ee73150 ::ee73150(){ note_ctor("ee73150", this);} // tgen
+
+static void Test_ee73150()
+{
+ extern Class_Descriptor cd_ee73150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73150, buf);
+ ee73150 *dp, &lv = *(dp=new (buf) ee73150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee73150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee73150");
+ check_base_class_offset(lv, (cc150*)(dd3150*), ABISELECT(32,16), "ee73150");
+ check_base_class_offset(lv, (dd3150*), ABISELECT(16,8), "ee73150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73150.e");
+ test_class_info(&lv, &cd_ee73150);
+ dp->~ee73150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73150(Test_ee73150, "ee73150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73150C1Ev();
+extern void _ZN7ee73150D1Ev();
+Name_Map name_map_ee73150[] = {
+ NSPAIR(_ZN7ee73150C1Ev),
+ NSPAIR(_ZN7ee73150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd3150;
+extern VTBL_ENTRY _ZTI6dd3150[];
+extern VTBL_ENTRY _ZTV6dd3150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3150[];
+static Base_Class bases_ee73150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3150, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee73150[];
+extern void _ZN7ee731503fooEv();
+extern void _ZN7ee731503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee731503fooEv,_ZTv0_n24_N7ee731503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731503fooEv,_ZThn8_N7ee731503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731503barEv,_ZTv0_n16_N7ee731503barEv)();
+extern void ABISELECT(_ZThn48_N7ee731503barEv,_ZThn24_N7ee731503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73150[0]),
+ (VTBL_ENTRY)&_ZN7ee731503fooEv,
+ (VTBL_ENTRY)&_ZN7ee731503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee731503fooEv,_ZTv0_n24_N7ee731503fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731503barEv,_ZTv0_n16_N7ee731503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73150[];
+extern void _ZN6dd31503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3150__7ee73150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN6dd31503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd3150__7ee73150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3150__7ee73150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee73150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee73150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee73150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73150[] = {
+ {&(_ZTV7ee73150[6]), 6,24},
+ {&(_ZTV7ee73150[14]), 14,24},
+ {&(_ZTV7ee73150[19]), 19,24},
+ {&(_ZTV7ee73150[23]), 23,24},
+ {&(_tg__ZTV6dd3150__7ee73150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd3150__7ee73150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd3150__7ee73150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee73150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee73150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee73150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73150[];
+extern VTBL_ENTRY _ZTV7ee73150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73150[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731503barEv,_ZTv0_n16_N7ee731503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731503barEv,_ZThn24_N7ee731503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee731503fooEv,_ZTv0_n24_N7ee731503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731503fooEv,_ZThn8_N7ee731503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73150 = { "ee73150", // class name
+ bases_ee73150, 4,
+ &(vtc_ee73150[0]), // expected_vtbl_contents
+ &(vtt_ee73150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73150),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names55,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4150 : cc150 {
+ int d;
+ virtual void bar(); // _ZN6dd41503barEv
+ ~dd4150(); // tgen
+ dd4150(); // tgen
+};
+//SIG(-1 dd4150) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4150 ::bar(){vfunc_called(this, "_ZN6dd41503barEv");}
+dd4150 ::~dd4150(){ note_dtor("dd4150", this);} // tgen
+dd4150 ::dd4150(){ note_ctor("dd4150", this);} // tgen
+
+static void Test_dd4150()
+{
+ extern Class_Descriptor cd_dd4150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4150, buf);
+ dd4150 *dp, &lv = *(dp=new (buf) dd4150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd4150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(16,12), "dd4150");
+ check_base_class_offset(lv, (cc150*), 0, "dd4150");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4150.d");
+ test_class_info(&lv, &cd_dd4150);
+ dp->~dd4150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4150(Test_dd4150, "dd4150", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4150C1Ev();
+extern void _ZN6dd4150D1Ev();
+Name_Map name_map_dd4150[] = {
+ NSPAIR(_ZN6dd4150C1Ev),
+ NSPAIR(_ZN6dd4150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd4150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern void _ZN6dd41503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd4150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd4150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4150[] = {
+ {&(_ZTV6dd4150[4]), 4,10},
+ {&(_tg__ZTV5cc150__6dd4150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd4150[4]), 4,5},
+ {&(_ZTV6dd4150[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd4150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4150 = { "dd4150", // class name
+ bases_dd4150, 3,
+ &(vtc_dd4150[0]), // expected_vtbl_contents
+ &(vtt_dd4150[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4150),5, //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 ee04150 : dd4150 {
+ int e;
+ ~ee04150(); // tgen
+ ee04150(); // tgen
+};
+//SIG(1 ee04150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04150 ::~ee04150(){ note_dtor("ee04150", this);} // tgen
+ee04150 ::ee04150(){ note_ctor("ee04150", this);} // tgen
+
+static void Test_ee04150()
+{
+ extern Class_Descriptor cd_ee04150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04150, buf);
+ ee04150 *dp, &lv = *(dp=new (buf) ee04150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee04150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(24,16), "ee04150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), 0, "ee04150");
+ check_base_class_offset(lv, (dd4150*), 0, "ee04150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04150.e");
+ test_class_info(&lv, &cd_ee04150);
+ dp->~ee04150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04150(Test_ee04150, "ee04150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04150C1Ev();
+extern void _ZN7ee04150D1Ev();
+Name_Map name_map_ee04150[] = {
+ NSPAIR(_ZN7ee04150C1Ev),
+ NSPAIR(_ZN7ee04150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee04150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04150[];
+extern void _ZN6dd41503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee04150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee04150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee04150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee04150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee04150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04150[] = {
+ {&(_ZTV7ee04150[4]), 4,10},
+ {&(_tg__ZTV6dd4150__7ee04150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee04150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee04150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee04150[4]), 4,5},
+ {&(_ZTV7ee04150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee04150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04150[];
+extern VTBL_ENTRY _ZTV7ee04150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04150[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04150 = { "ee04150", // class name
+ bases_ee04150, 4,
+ &(vtc_ee04150[0]), // expected_vtbl_contents
+ &(vtt_ee04150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14150 : virtual dd4150 {
+ int e;
+ ~ee14150(); // tgen
+ ee14150(); // tgen
+};
+//SIG(1 ee14150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14150 ::~ee14150(){ note_dtor("ee14150", this);} // tgen
+ee14150 ::ee14150(){ note_ctor("ee14150", this);} // tgen
+
+static void Test_ee14150()
+{
+ extern Class_Descriptor cd_ee14150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14150, buf);
+ ee14150 *dp, &lv = *(dp=new (buf) ee14150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee14150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(32,20), "ee14150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), ABISELECT(16,8), "ee14150");
+ check_base_class_offset(lv, (dd4150*), ABISELECT(16,8), "ee14150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14150.e");
+ test_class_info(&lv, &cd_ee14150);
+ dp->~ee14150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14150(Test_ee14150, "ee14150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14150C1Ev();
+extern void _ZN7ee14150D1Ev();
+Name_Map name_map_ee14150[] = {
+ NSPAIR(_ZN7ee14150C1Ev),
+ NSPAIR(_ZN7ee14150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee14150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee14150[];
+extern void _ZN6dd41503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14150[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee14150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee14150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee14150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee14150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee14150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14150[] = {
+ {&(_ZTV7ee14150[5]), 5,16},
+ {&(_ZTV7ee14150[10]), 10,16},
+ {&(_ZTV7ee14150[15]), 15,16},
+ {&(_tg__ZTV6dd4150__7ee14150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee14150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee14150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee14150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee14150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14150[];
+extern VTBL_ENTRY _ZTV7ee14150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14150[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14150 = { "ee14150", // class name
+ bases_ee14150, 4,
+ &(vtc_ee14150[0]), // expected_vtbl_contents
+ &(vtt_ee14150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names58,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24150 : dd4150 {
+ int e;
+ virtual void foo(); // _ZN7ee241503fooEv
+ ~ee24150(); // tgen
+ ee24150(); // tgen
+};
+//SIG(1 ee24150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24150 ::foo(){vfunc_called(this, "_ZN7ee241503fooEv");}
+ee24150 ::~ee24150(){ note_dtor("ee24150", this);} // tgen
+ee24150 ::ee24150(){ note_ctor("ee24150", this);} // tgen
+
+static void Test_ee24150()
+{
+ extern Class_Descriptor cd_ee24150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24150, buf);
+ ee24150 *dp, &lv = *(dp=new (buf) ee24150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee24150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(24,16), "ee24150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), 0, "ee24150");
+ check_base_class_offset(lv, (dd4150*), 0, "ee24150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24150.e");
+ test_class_info(&lv, &cd_ee24150);
+ dp->~ee24150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24150(Test_ee24150, "ee24150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24150C1Ev();
+extern void _ZN7ee24150D1Ev();
+Name_Map name_map_ee24150[] = {
+ NSPAIR(_ZN7ee24150C1Ev),
+ NSPAIR(_ZN7ee24150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee24150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24150[];
+extern void _ZN6dd41503barEv();
+extern void _ZN7ee241503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+ (VTBL_ENTRY)&_ZN7ee241503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee24150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee24150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee24150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee24150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee24150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24150[] = {
+ {&(_ZTV7ee24150[4]), 4,11},
+ {&(_tg__ZTV6dd4150__7ee24150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee24150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee24150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee24150[4]), 4,5},
+ {&(_ZTV7ee24150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee24150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24150[];
+extern VTBL_ENTRY _ZTV7ee24150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24150[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24150 = { "ee24150", // class name
+ bases_ee24150, 4,
+ &(vtc_ee24150[0]), // expected_vtbl_contents
+ &(vtt_ee24150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34150 : virtual dd4150 {
+ int e;
+ virtual void foo(); // _ZN7ee341503fooEv
+ ~ee34150(); // tgen
+ ee34150(); // tgen
+};
+//SIG(1 ee34150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34150 ::foo(){vfunc_called(this, "_ZN7ee341503fooEv");}
+ee34150 ::~ee34150(){ note_dtor("ee34150", this);} // tgen
+ee34150 ::ee34150(){ note_ctor("ee34150", this);} // tgen
+
+static void Test_ee34150()
+{
+ extern Class_Descriptor cd_ee34150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34150, buf);
+ ee34150 *dp, &lv = *(dp=new (buf) ee34150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee34150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(32,20), "ee34150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), ABISELECT(16,8), "ee34150");
+ check_base_class_offset(lv, (dd4150*), ABISELECT(16,8), "ee34150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34150.e");
+ test_class_info(&lv, &cd_ee34150);
+ dp->~ee34150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34150(Test_ee34150, "ee34150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34150C1Ev();
+extern void _ZN7ee34150D1Ev();
+Name_Map name_map_ee34150[] = {
+ NSPAIR(_ZN7ee34150C1Ev),
+ NSPAIR(_ZN7ee34150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee34150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee34150[];
+extern void _ZN7ee341503fooEv();
+extern void _ZN6dd41503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34150[0]),
+ (VTBL_ENTRY)&_ZN7ee341503fooEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee34150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee34150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee34150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee34150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee34150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34150[] = {
+ {&(_ZTV7ee34150[5]), 5,17},
+ {&(_ZTV7ee34150[11]), 11,17},
+ {&(_ZTV7ee34150[16]), 16,17},
+ {&(_tg__ZTV6dd4150__7ee34150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee34150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee34150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee34150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee34150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34150[];
+extern VTBL_ENTRY _ZTV7ee34150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34150[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34150 = { "ee34150", // class name
+ bases_ee34150, 4,
+ &(vtc_ee34150[0]), // expected_vtbl_contents
+ &(vtt_ee34150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34150),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44150 : dd4150 {
+ int e;
+ virtual void bar(); // _ZN7ee441503barEv
+ ~ee44150(); // tgen
+ ee44150(); // tgen
+};
+//SIG(1 ee44150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44150 ::bar(){vfunc_called(this, "_ZN7ee441503barEv");}
+ee44150 ::~ee44150(){ note_dtor("ee44150", this);} // tgen
+ee44150 ::ee44150(){ note_ctor("ee44150", this);} // tgen
+
+static void Test_ee44150()
+{
+ extern Class_Descriptor cd_ee44150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44150, buf);
+ ee44150 *dp, &lv = *(dp=new (buf) ee44150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee44150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(24,16), "ee44150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), 0, "ee44150");
+ check_base_class_offset(lv, (dd4150*), 0, "ee44150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44150.e");
+ test_class_info(&lv, &cd_ee44150);
+ dp->~ee44150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44150(Test_ee44150, "ee44150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44150C1Ev();
+extern void _ZN7ee44150D1Ev();
+Name_Map name_map_ee44150[] = {
+ NSPAIR(_ZN7ee44150C1Ev),
+ NSPAIR(_ZN7ee44150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee44150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44150[];
+extern void _ZN7ee441503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441503barEv,_ZTv0_n16_N7ee441503barEv)();
+extern void ABISELECT(_ZThn24_N7ee441503barEv,_ZThn16_N7ee441503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44150[0]),
+ (VTBL_ENTRY)&_ZN7ee441503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441503barEv,_ZTv0_n16_N7ee441503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee44150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee44150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee44150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee44150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee44150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44150[] = {
+ {&(_ZTV7ee44150[4]), 4,10},
+ {&(_tg__ZTV6dd4150__7ee44150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee44150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee44150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee44150[4]), 4,5},
+ {&(_ZTV7ee44150[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee44150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44150[];
+extern VTBL_ENTRY _ZTV7ee44150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44150[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441503barEv,_ZTv0_n16_N7ee441503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441503barEv,_ZThn16_N7ee441503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44150 = { "ee44150", // class name
+ bases_ee44150, 4,
+ &(vtc_ee44150[0]), // expected_vtbl_contents
+ &(vtt_ee44150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44150),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54150 : virtual dd4150 {
+ int e;
+ virtual void bar(); // _ZN7ee541503barEv
+ ~ee54150(); // tgen
+ ee54150(); // tgen
+};
+//SIG(1 ee54150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54150 ::bar(){vfunc_called(this, "_ZN7ee541503barEv");}
+ee54150 ::~ee54150(){ note_dtor("ee54150", this);} // tgen
+ee54150 ::ee54150(){ note_ctor("ee54150", this);} // tgen
+
+static void Test_ee54150()
+{
+ extern Class_Descriptor cd_ee54150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54150, buf);
+ ee54150 *dp, &lv = *(dp=new (buf) ee54150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee54150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(32,20), "ee54150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), ABISELECT(16,8), "ee54150");
+ check_base_class_offset(lv, (dd4150*), ABISELECT(16,8), "ee54150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54150.e");
+ test_class_info(&lv, &cd_ee54150);
+ dp->~ee54150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54150(Test_ee54150, "ee54150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54150C1Ev();
+extern void _ZN7ee54150D1Ev();
+Name_Map name_map_ee54150[] = {
+ NSPAIR(_ZN7ee54150C1Ev),
+ NSPAIR(_ZN7ee54150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee54150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee54150[];
+extern void _ZN7ee541503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee541503barEv,_ZTv0_n20_N7ee541503barEv)();
+extern void ABISELECT(_ZThn16_N7ee541503barEv,_ZThn8_N7ee541503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee541503barEv,_ZTv0_n16_N7ee541503barEv)();
+extern void ABISELECT(_ZThn32_N7ee541503barEv,_ZThn20_N7ee541503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54150[0]),
+ (VTBL_ENTRY)&_ZN7ee541503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee541503barEv,_ZTv0_n20_N7ee541503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541503barEv,_ZTv0_n16_N7ee541503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee54150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee54150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee54150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee54150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee54150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54150[] = {
+ {&(_ZTV7ee54150[5]), 5,17},
+ {&(_ZTV7ee54150[11]), 11,17},
+ {&(_ZTV7ee54150[16]), 16,17},
+ {&(_tg__ZTV6dd4150__7ee54150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee54150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee54150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee54150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee54150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54150[];
+extern VTBL_ENTRY _ZTV7ee54150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54150[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541503barEv,_ZTv0_n16_N7ee541503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541503barEv,_ZThn20_N7ee541503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee541503barEv,_ZTv0_n20_N7ee541503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541503barEv,_ZThn8_N7ee541503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54150 = { "ee54150", // class name
+ bases_ee54150, 4,
+ &(vtc_ee54150[0]), // expected_vtbl_contents
+ &(vtt_ee54150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54150),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64150 : dd4150 {
+ int e;
+ virtual void foo(); // _ZN7ee641503fooEv
+ virtual void bar(); // _ZN7ee641503barEv
+ ~ee64150(); // tgen
+ ee64150(); // tgen
+};
+//SIG(1 ee64150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64150 ::foo(){vfunc_called(this, "_ZN7ee641503fooEv");}
+void ee64150 ::bar(){vfunc_called(this, "_ZN7ee641503barEv");}
+ee64150 ::~ee64150(){ note_dtor("ee64150", this);} // tgen
+ee64150 ::ee64150(){ note_ctor("ee64150", this);} // tgen
+
+static void Test_ee64150()
+{
+ extern Class_Descriptor cd_ee64150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64150, buf);
+ ee64150 *dp, &lv = *(dp=new (buf) ee64150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee64150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(24,16), "ee64150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), 0, "ee64150");
+ check_base_class_offset(lv, (dd4150*), 0, "ee64150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64150.e");
+ test_class_info(&lv, &cd_ee64150);
+ dp->~ee64150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64150(Test_ee64150, "ee64150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64150C1Ev();
+extern void _ZN7ee64150D1Ev();
+Name_Map name_map_ee64150[] = {
+ NSPAIR(_ZN7ee64150C1Ev),
+ NSPAIR(_ZN7ee64150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee64150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64150[];
+extern void _ZN7ee641503barEv();
+extern void _ZN7ee641503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee641503barEv,_ZTv0_n16_N7ee641503barEv)();
+extern void ABISELECT(_ZThn24_N7ee641503barEv,_ZThn16_N7ee641503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64150[0]),
+ (VTBL_ENTRY)&_ZN7ee641503barEv,
+ (VTBL_ENTRY)&_ZN7ee641503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641503barEv,_ZTv0_n16_N7ee641503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee64150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee64150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee64150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee64150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee64150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64150[] = {
+ {&(_ZTV7ee64150[4]), 4,11},
+ {&(_tg__ZTV6dd4150__7ee64150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee64150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee64150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee64150[4]), 4,5},
+ {&(_ZTV7ee64150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee64150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64150[];
+extern VTBL_ENTRY _ZTV7ee64150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64150[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41503barEv,_ZThn16_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641503barEv,_ZTv0_n16_N7ee641503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641503barEv,_ZThn16_N7ee641503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64150 = { "ee64150", // class name
+ bases_ee64150, 4,
+ &(vtc_ee64150[0]), // expected_vtbl_contents
+ &(vtt_ee64150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74150 : virtual dd4150 {
+ int e;
+ virtual void foo(); // _ZN7ee741503fooEv
+ virtual void bar(); // _ZN7ee741503barEv
+ ~ee74150(); // tgen
+ ee74150(); // tgen
+};
+//SIG(1 ee74150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74150 ::foo(){vfunc_called(this, "_ZN7ee741503fooEv");}
+void ee74150 ::bar(){vfunc_called(this, "_ZN7ee741503barEv");}
+ee74150 ::~ee74150(){ note_dtor("ee74150", this);} // tgen
+ee74150 ::ee74150(){ note_ctor("ee74150", this);} // tgen
+
+static void Test_ee74150()
+{
+ extern Class_Descriptor cd_ee74150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74150, buf);
+ ee74150 *dp, &lv = *(dp=new (buf) ee74150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee74150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd4150*), ABISELECT(32,20), "ee74150");
+ check_base_class_offset(lv, (cc150*)(dd4150*), ABISELECT(16,8), "ee74150");
+ check_base_class_offset(lv, (dd4150*), ABISELECT(16,8), "ee74150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74150.e");
+ test_class_info(&lv, &cd_ee74150);
+ dp->~ee74150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74150(Test_ee74150, "ee74150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74150C1Ev();
+extern void _ZN7ee74150D1Ev();
+Name_Map name_map_ee74150[] = {
+ NSPAIR(_ZN7ee74150C1Ev),
+ NSPAIR(_ZN7ee74150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd4150;
+extern VTBL_ENTRY _ZTI6dd4150[];
+extern VTBL_ENTRY _ZTV6dd4150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4150[];
+static Base_Class bases_ee74150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74150[];
+extern void _ZN7ee741503fooEv();
+extern void _ZN7ee741503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee741503barEv,_ZTv0_n20_N7ee741503barEv)();
+extern void ABISELECT(_ZThn16_N7ee741503barEv,_ZThn8_N7ee741503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741503barEv,_ZTv0_n16_N7ee741503barEv)();
+extern void ABISELECT(_ZThn32_N7ee741503barEv,_ZThn20_N7ee741503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74150[0]),
+ (VTBL_ENTRY)&_ZN7ee741503fooEv,
+ (VTBL_ENTRY)&_ZN7ee741503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee741503barEv,_ZTv0_n20_N7ee741503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741503barEv,_ZTv0_n16_N7ee741503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74150[];
+extern void _ZN6dd41503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4150__7ee74150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&_ZN6dd41503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd4150__7ee74150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd4150__7ee74150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv)();
+extern void ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4150__7ee74150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee74150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74150[] = {
+ {&(_ZTV7ee74150[5]), 5,18},
+ {&(_ZTV7ee74150[12]), 12,18},
+ {&(_ZTV7ee74150[17]), 17,18},
+ {&(_tg__ZTV6dd4150__7ee74150[4]), 4,5},
+ {&(_tg__ZTV5cc1506dd4150__7ee74150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd4150__7ee74150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4150__7ee74150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee74150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74150[];
+extern VTBL_ENTRY _ZTV7ee74150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74150[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41503barEv,_ZTv0_n16_N6dd41503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41503barEv,_ZThn12_N6dd41503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741503barEv,_ZTv0_n16_N7ee741503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741503barEv,_ZThn20_N7ee741503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee741503barEv,_ZTv0_n20_N7ee741503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741503barEv,_ZThn8_N7ee741503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74150 = { "ee74150", // class name
+ bases_ee74150, 4,
+ &(vtc_ee74150[0]), // expected_vtbl_contents
+ &(vtt_ee74150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74150),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5150 : virtual cc150 {
+ int d;
+ virtual void bar(); // _ZN6dd51503barEv
+ ~dd5150(); // tgen
+ dd5150(); // tgen
+};
+//SIG(-1 dd5150) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5150 ::bar(){vfunc_called(this, "_ZN6dd51503barEv");}
+dd5150 ::~dd5150(){ note_dtor("dd5150", this);} // tgen
+dd5150 ::dd5150(){ note_ctor("dd5150", this);} // tgen
+
+static void Test_dd5150()
+{
+ extern Class_Descriptor cd_dd5150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5150, buf);
+ dd5150 *dp, &lv = *(dp=new (buf) dd5150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd5150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,16), "dd5150");
+ check_base_class_offset(lv, (cc150*), ABISELECT(16,8), "dd5150");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5150.d");
+ test_class_info(&lv, &cd_dd5150);
+ dp->~dd5150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5150(Test_dd5150, "dd5150", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5150C1Ev();
+extern void _ZN6dd5150D1Ev();
+Name_Map name_map_dd5150[] = {
+ NSPAIR(_ZN6dd5150C1Ev),
+ NSPAIR(_ZN6dd5150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd5150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern void _ZN6dd51503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd5150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5150[] = {
+ {&(_ZTV6dd5150[5]), 5,15},
+ {&(_ZTV6dd5150[10]), 10,15},
+ {&(_ZTV6dd5150[14]), 14,15},
+ {&(_tg__ZTV5cc150__6dd5150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd5150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd5150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5150 = { "dd5150", // class name
+ bases_dd5150, 3,
+ &(vtc_dd5150[0]), // expected_vtbl_contents
+ &(vtt_dd5150[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5150),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05150 : dd5150 {
+ int e;
+ ~ee05150(); // tgen
+ ee05150(); // tgen
+};
+//SIG(1 ee05150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05150 ::~ee05150(){ note_dtor("ee05150", this);} // tgen
+ee05150 ::ee05150(){ note_ctor("ee05150", this);} // tgen
+
+static void Test_ee05150()
+{
+ extern Class_Descriptor cd_ee05150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05150, buf);
+ ee05150 *dp, &lv = *(dp=new (buf) ee05150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee05150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee05150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(16,12), "ee05150");
+ check_base_class_offset(lv, (dd5150*), 0, "ee05150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05150.e");
+ test_class_info(&lv, &cd_ee05150);
+ dp->~ee05150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05150(Test_ee05150, "ee05150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05150C1Ev();
+extern void _ZN7ee05150D1Ev();
+Name_Map name_map_ee05150[] = {
+ NSPAIR(_ZN7ee05150C1Ev),
+ NSPAIR(_ZN7ee05150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee05150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05150[];
+extern void _ZN6dd51503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee05150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee05150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee05150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee05150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee05150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee05150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05150[] = {
+ {&(_ZTV7ee05150[5]), 5,15},
+ {&(_tg__ZTV6dd5150__7ee05150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee05150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee05150[4]), 4,5},
+ {&(_ZTV7ee05150[10]), 10,15},
+ {&(_ZTV7ee05150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee05150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee05150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee05150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05150[];
+extern VTBL_ENTRY _ZTV7ee05150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05150[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05150 = { "ee05150", // class name
+ bases_ee05150, 4,
+ &(vtc_ee05150[0]), // expected_vtbl_contents
+ &(vtt_ee05150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15150 : virtual dd5150 {
+ int e;
+ ~ee15150(); // tgen
+ ee15150(); // tgen
+};
+//SIG(1 ee15150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15150 ::~ee15150(){ note_dtor("ee15150", this);} // tgen
+ee15150 ::ee15150(){ note_ctor("ee15150", this);} // tgen
+
+static void Test_ee15150()
+{
+ extern Class_Descriptor cd_ee15150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15150, buf);
+ ee15150 *dp, &lv = *(dp=new (buf) ee15150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee15150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee15150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(32,16), "ee15150");
+ check_base_class_offset(lv, (dd5150*), ABISELECT(16,8), "ee15150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15150.e");
+ test_class_info(&lv, &cd_ee15150);
+ dp->~ee15150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15150(Test_ee15150, "ee15150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15150C1Ev();
+extern void _ZN7ee15150D1Ev();
+Name_Map name_map_ee15150[] = {
+ NSPAIR(_ZN7ee15150C1Ev),
+ NSPAIR(_ZN7ee15150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee15150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee15150[];
+extern void _ZN6dd51503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15150[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee15150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee15150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee15150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee15150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee15150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee15150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15150[] = {
+ {&(_ZTV7ee15150[6]), 6,22},
+ {&(_ZTV7ee15150[12]), 12,22},
+ {&(_ZTV7ee15150[17]), 17,22},
+ {&(_ZTV7ee15150[21]), 21,22},
+ {&(_tg__ZTV6dd5150__7ee15150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee15150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee15150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee15150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee15150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee15150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15150[];
+extern VTBL_ENTRY _ZTV7ee15150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15150[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15150 = { "ee15150", // class name
+ bases_ee15150, 4,
+ &(vtc_ee15150[0]), // expected_vtbl_contents
+ &(vtt_ee15150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15150),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25150 : dd5150 {
+ int e;
+ virtual void foo(); // _ZN7ee251503fooEv
+ ~ee25150(); // tgen
+ ee25150(); // tgen
+};
+//SIG(1 ee25150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25150 ::foo(){vfunc_called(this, "_ZN7ee251503fooEv");}
+ee25150 ::~ee25150(){ note_dtor("ee25150", this);} // tgen
+ee25150 ::ee25150(){ note_ctor("ee25150", this);} // tgen
+
+static void Test_ee25150()
+{
+ extern Class_Descriptor cd_ee25150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25150, buf);
+ ee25150 *dp, &lv = *(dp=new (buf) ee25150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee25150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee25150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(16,12), "ee25150");
+ check_base_class_offset(lv, (dd5150*), 0, "ee25150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25150.e");
+ test_class_info(&lv, &cd_ee25150);
+ dp->~ee25150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25150(Test_ee25150, "ee25150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25150C1Ev();
+extern void _ZN7ee25150D1Ev();
+Name_Map name_map_ee25150[] = {
+ NSPAIR(_ZN7ee25150C1Ev),
+ NSPAIR(_ZN7ee25150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee25150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25150[];
+extern void _ZN6dd51503barEv();
+extern void _ZN7ee251503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+ (VTBL_ENTRY)&_ZN7ee251503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee25150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee25150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee25150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee25150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee25150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee25150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25150[] = {
+ {&(_ZTV7ee25150[5]), 5,16},
+ {&(_tg__ZTV6dd5150__7ee25150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee25150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee25150[4]), 4,5},
+ {&(_ZTV7ee25150[11]), 11,16},
+ {&(_ZTV7ee25150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee25150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee25150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee25150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25150[];
+extern VTBL_ENTRY _ZTV7ee25150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25150[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25150 = { "ee25150", // class name
+ bases_ee25150, 4,
+ &(vtc_ee25150[0]), // expected_vtbl_contents
+ &(vtt_ee25150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names68,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35150 : virtual dd5150 {
+ int e;
+ virtual void foo(); // _ZN7ee351503fooEv
+ ~ee35150(); // tgen
+ ee35150(); // tgen
+};
+//SIG(1 ee35150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35150 ::foo(){vfunc_called(this, "_ZN7ee351503fooEv");}
+ee35150 ::~ee35150(){ note_dtor("ee35150", this);} // tgen
+ee35150 ::ee35150(){ note_ctor("ee35150", this);} // tgen
+
+static void Test_ee35150()
+{
+ extern Class_Descriptor cd_ee35150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35150, buf);
+ ee35150 *dp, &lv = *(dp=new (buf) ee35150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee35150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee35150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(32,16), "ee35150");
+ check_base_class_offset(lv, (dd5150*), ABISELECT(16,8), "ee35150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35150.e");
+ test_class_info(&lv, &cd_ee35150);
+ dp->~ee35150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35150(Test_ee35150, "ee35150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35150C1Ev();
+extern void _ZN7ee35150D1Ev();
+Name_Map name_map_ee35150[] = {
+ NSPAIR(_ZN7ee35150C1Ev),
+ NSPAIR(_ZN7ee35150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee35150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee35150[];
+extern void _ZN7ee351503fooEv();
+extern void _ZN6dd51503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35150[0]),
+ (VTBL_ENTRY)&_ZN7ee351503fooEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee35150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee35150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee35150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee35150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee35150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee35150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35150[] = {
+ {&(_ZTV7ee35150[6]), 6,23},
+ {&(_ZTV7ee35150[13]), 13,23},
+ {&(_ZTV7ee35150[18]), 18,23},
+ {&(_ZTV7ee35150[22]), 22,23},
+ {&(_tg__ZTV6dd5150__7ee35150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee35150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee35150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee35150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee35150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee35150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35150[];
+extern VTBL_ENTRY _ZTV7ee35150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35150[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35150 = { "ee35150", // class name
+ bases_ee35150, 4,
+ &(vtc_ee35150[0]), // expected_vtbl_contents
+ &(vtt_ee35150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35150),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45150 : dd5150 {
+ int e;
+ virtual void bar(); // _ZN7ee451503barEv
+ ~ee45150(); // tgen
+ ee45150(); // tgen
+};
+//SIG(1 ee45150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45150 ::bar(){vfunc_called(this, "_ZN7ee451503barEv");}
+ee45150 ::~ee45150(){ note_dtor("ee45150", this);} // tgen
+ee45150 ::ee45150(){ note_ctor("ee45150", this);} // tgen
+
+static void Test_ee45150()
+{
+ extern Class_Descriptor cd_ee45150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45150, buf);
+ ee45150 *dp, &lv = *(dp=new (buf) ee45150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee45150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee45150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(16,12), "ee45150");
+ check_base_class_offset(lv, (dd5150*), 0, "ee45150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45150.e");
+ test_class_info(&lv, &cd_ee45150);
+ dp->~ee45150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45150(Test_ee45150, "ee45150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45150C1Ev();
+extern void _ZN7ee45150D1Ev();
+Name_Map name_map_ee45150[] = {
+ NSPAIR(_ZN7ee45150C1Ev),
+ NSPAIR(_ZN7ee45150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee45150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45150[];
+extern void _ZN7ee451503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451503barEv,_ZTv0_n16_N7ee451503barEv)();
+extern void ABISELECT(_ZThn32_N7ee451503barEv,_ZThn20_N7ee451503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45150[0]),
+ (VTBL_ENTRY)&_ZN7ee451503barEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451503barEv,_ZTv0_n16_N7ee451503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee45150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee45150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee45150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee45150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee45150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee45150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45150[] = {
+ {&(_ZTV7ee45150[5]), 5,15},
+ {&(_tg__ZTV6dd5150__7ee45150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee45150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee45150[4]), 4,5},
+ {&(_ZTV7ee45150[10]), 10,15},
+ {&(_ZTV7ee45150[14]), 14,15},
+ {&(_tg__ZTV5cc150__7ee45150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee45150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee45150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45150[];
+extern VTBL_ENTRY _ZTV7ee45150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45150[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451503barEv,_ZTv0_n16_N7ee451503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451503barEv,_ZThn20_N7ee451503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45150 = { "ee45150", // class name
+ bases_ee45150, 4,
+ &(vtc_ee45150[0]), // expected_vtbl_contents
+ &(vtt_ee45150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45150),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names70,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55150 : virtual dd5150 {
+ int e;
+ virtual void bar(); // _ZN7ee551503barEv
+ ~ee55150(); // tgen
+ ee55150(); // tgen
+};
+//SIG(1 ee55150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55150 ::bar(){vfunc_called(this, "_ZN7ee551503barEv");}
+ee55150 ::~ee55150(){ note_dtor("ee55150", this);} // tgen
+ee55150 ::ee55150(){ note_ctor("ee55150", this);} // tgen
+
+static void Test_ee55150()
+{
+ extern Class_Descriptor cd_ee55150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55150, buf);
+ ee55150 *dp, &lv = *(dp=new (buf) ee55150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee55150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee55150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(32,16), "ee55150");
+ check_base_class_offset(lv, (dd5150*), ABISELECT(16,8), "ee55150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55150.e");
+ test_class_info(&lv, &cd_ee55150);
+ dp->~ee55150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55150(Test_ee55150, "ee55150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55150C1Ev();
+extern void _ZN7ee55150D1Ev();
+Name_Map name_map_ee55150[] = {
+ NSPAIR(_ZN7ee55150C1Ev),
+ NSPAIR(_ZN7ee55150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee55150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee55150[];
+extern void _ZN7ee551503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee551503barEv,_ZTv0_n24_N7ee551503barEv)();
+extern void ABISELECT(_ZThn16_N7ee551503barEv,_ZThn8_N7ee551503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee551503barEv,_ZTv0_n16_N7ee551503barEv)();
+extern void ABISELECT(_ZThn48_N7ee551503barEv,_ZThn24_N7ee551503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55150[0]),
+ (VTBL_ENTRY)&_ZN7ee551503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee551503barEv,_ZTv0_n24_N7ee551503barEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551503barEv,_ZTv0_n16_N7ee551503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee55150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee55150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee55150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee55150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee55150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee55150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55150[] = {
+ {&(_ZTV7ee55150[6]), 6,23},
+ {&(_ZTV7ee55150[13]), 13,23},
+ {&(_ZTV7ee55150[18]), 18,23},
+ {&(_ZTV7ee55150[22]), 22,23},
+ {&(_tg__ZTV6dd5150__7ee55150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee55150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee55150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee55150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee55150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee55150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55150[];
+extern VTBL_ENTRY _ZTV7ee55150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55150[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551503barEv,_ZTv0_n16_N7ee551503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551503barEv,_ZThn24_N7ee551503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee551503barEv,_ZTv0_n24_N7ee551503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551503barEv,_ZThn8_N7ee551503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55150 = { "ee55150", // class name
+ bases_ee55150, 4,
+ &(vtc_ee55150[0]), // expected_vtbl_contents
+ &(vtt_ee55150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55150),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65150 : dd5150 {
+ int e;
+ virtual void foo(); // _ZN7ee651503fooEv
+ virtual void bar(); // _ZN7ee651503barEv
+ ~ee65150(); // tgen
+ ee65150(); // tgen
+};
+//SIG(1 ee65150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65150 ::foo(){vfunc_called(this, "_ZN7ee651503fooEv");}
+void ee65150 ::bar(){vfunc_called(this, "_ZN7ee651503barEv");}
+ee65150 ::~ee65150(){ note_dtor("ee65150", this);} // tgen
+ee65150 ::ee65150(){ note_ctor("ee65150", this);} // tgen
+
+static void Test_ee65150()
+{
+ extern Class_Descriptor cd_ee65150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65150, buf);
+ ee65150 *dp, &lv = *(dp=new (buf) ee65150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee65150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee65150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(16,12), "ee65150");
+ check_base_class_offset(lv, (dd5150*), 0, "ee65150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65150.e");
+ test_class_info(&lv, &cd_ee65150);
+ dp->~ee65150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65150(Test_ee65150, "ee65150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65150C1Ev();
+extern void _ZN7ee65150D1Ev();
+Name_Map name_map_ee65150[] = {
+ NSPAIR(_ZN7ee65150C1Ev),
+ NSPAIR(_ZN7ee65150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee65150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65150[];
+extern void _ZN7ee651503barEv();
+extern void _ZN7ee651503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee651503barEv,_ZTv0_n16_N7ee651503barEv)();
+extern void ABISELECT(_ZThn32_N7ee651503barEv,_ZThn20_N7ee651503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65150[0]),
+ (VTBL_ENTRY)&_ZN7ee651503barEv,
+ (VTBL_ENTRY)&_ZN7ee651503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651503barEv,_ZTv0_n16_N7ee651503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee65150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee65150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee65150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee65150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee65150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee65150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65150[] = {
+ {&(_ZTV7ee65150[5]), 5,16},
+ {&(_tg__ZTV6dd5150__7ee65150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee65150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee65150[4]), 4,5},
+ {&(_ZTV7ee65150[11]), 11,16},
+ {&(_ZTV7ee65150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee65150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee65150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee65150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65150[];
+extern VTBL_ENTRY _ZTV7ee65150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65150[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn20_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651503barEv,_ZTv0_n16_N7ee651503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651503barEv,_ZThn20_N7ee651503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65150 = { "ee65150", // class name
+ bases_ee65150, 4,
+ &(vtc_ee65150[0]), // expected_vtbl_contents
+ &(vtt_ee65150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75150 : virtual dd5150 {
+ int e;
+ virtual void foo(); // _ZN7ee751503fooEv
+ virtual void bar(); // _ZN7ee751503barEv
+ ~ee75150(); // tgen
+ ee75150(); // tgen
+};
+//SIG(1 ee75150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75150 ::foo(){vfunc_called(this, "_ZN7ee751503fooEv");}
+void ee75150 ::bar(){vfunc_called(this, "_ZN7ee751503barEv");}
+ee75150 ::~ee75150(){ note_dtor("ee75150", this);} // tgen
+ee75150 ::ee75150(){ note_ctor("ee75150", this);} // tgen
+
+static void Test_ee75150()
+{
+ extern Class_Descriptor cd_ee75150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75150, buf);
+ ee75150 *dp, &lv = *(dp=new (buf) ee75150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee75150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee75150");
+ check_base_class_offset(lv, (cc150*)(dd5150*), ABISELECT(32,16), "ee75150");
+ check_base_class_offset(lv, (dd5150*), ABISELECT(16,8), "ee75150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75150.e");
+ test_class_info(&lv, &cd_ee75150);
+ dp->~ee75150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75150(Test_ee75150, "ee75150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75150C1Ev();
+extern void _ZN7ee75150D1Ev();
+Name_Map name_map_ee75150[] = {
+ NSPAIR(_ZN7ee75150C1Ev),
+ NSPAIR(_ZN7ee75150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd5150;
+extern VTBL_ENTRY _ZTI6dd5150[];
+extern VTBL_ENTRY _ZTV6dd5150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5150[];
+static Base_Class bases_ee75150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5150, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee75150[];
+extern void _ZN7ee751503fooEv();
+extern void _ZN7ee751503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee751503barEv,_ZTv0_n24_N7ee751503barEv)();
+extern void ABISELECT(_ZThn16_N7ee751503barEv,_ZThn8_N7ee751503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751503barEv,_ZTv0_n16_N7ee751503barEv)();
+extern void ABISELECT(_ZThn48_N7ee751503barEv,_ZThn24_N7ee751503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75150[0]),
+ (VTBL_ENTRY)&_ZN7ee751503fooEv,
+ (VTBL_ENTRY)&_ZN7ee751503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee751503barEv,_ZTv0_n24_N7ee751503barEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751503barEv,_ZTv0_n16_N7ee751503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75150[];
+extern void _ZN6dd51503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5150__7ee75150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&_ZN6dd51503barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd5150__7ee75150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv)();
+extern void ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5150__7ee75150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee75150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee75150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee75150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75150[] = {
+ {&(_ZTV7ee75150[6]), 6,24},
+ {&(_ZTV7ee75150[14]), 14,24},
+ {&(_ZTV7ee75150[19]), 19,24},
+ {&(_ZTV7ee75150[23]), 23,24},
+ {&(_tg__ZTV6dd5150__7ee75150[5]), 5,6},
+ {&(_tg__ZTV5cc150__6dd5150__7ee75150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd5150__7ee75150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee75150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee75150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee75150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75150[];
+extern VTBL_ENTRY _ZTV7ee75150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75150[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51503barEv,_ZTv0_n16_N6dd51503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51503barEv,_ZThn16_N6dd51503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751503barEv,_ZTv0_n16_N7ee751503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751503barEv,_ZThn24_N7ee751503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee751503barEv,_ZTv0_n24_N7ee751503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751503barEv,_ZThn8_N7ee751503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75150 = { "ee75150", // class name
+ bases_ee75150, 4,
+ &(vtc_ee75150[0]), // expected_vtbl_contents
+ &(vtt_ee75150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75150),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6150 : cc150 {
+ int d;
+ virtual void bar(); // _ZN6dd61503barEv
+ virtual void foo(); // _ZN6dd61503fooEv
+ ~dd6150(); // tgen
+ dd6150(); // tgen
+};
+//SIG(-1 dd6150) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6150 ::bar(){vfunc_called(this, "_ZN6dd61503barEv");}
+void dd6150 ::foo(){vfunc_called(this, "_ZN6dd61503fooEv");}
+dd6150 ::~dd6150(){ note_dtor("dd6150", this);} // tgen
+dd6150 ::dd6150(){ note_ctor("dd6150", this);} // tgen
+
+static void Test_dd6150()
+{
+ extern Class_Descriptor cd_dd6150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6150, buf);
+ dd6150 *dp, &lv = *(dp=new (buf) dd6150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd6150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(16,12), "dd6150");
+ check_base_class_offset(lv, (cc150*), 0, "dd6150");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6150.d");
+ test_class_info(&lv, &cd_dd6150);
+ dp->~dd6150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6150(Test_dd6150, "dd6150", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6150C1Ev();
+extern void _ZN6dd6150D1Ev();
+Name_Map name_map_dd6150[] = {
+ NSPAIR(_ZN6dd6150C1Ev),
+ NSPAIR(_ZN6dd6150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd6150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd6150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd6150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6150[] = {
+ {&(_ZTV6dd6150[4]), 4,11},
+ {&(_tg__ZTV5cc150__6dd6150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd6150[4]), 4,5},
+ {&(_ZTV6dd6150[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd6150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6150 = { "dd6150", // class name
+ bases_dd6150, 3,
+ &(vtc_dd6150[0]), // expected_vtbl_contents
+ &(vtt_dd6150[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6150),5, //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 ee06150 : dd6150 {
+ int e;
+ ~ee06150(); // tgen
+ ee06150(); // tgen
+};
+//SIG(1 ee06150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06150 ::~ee06150(){ note_dtor("ee06150", this);} // tgen
+ee06150 ::ee06150(){ note_ctor("ee06150", this);} // tgen
+
+static void Test_ee06150()
+{
+ extern Class_Descriptor cd_ee06150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06150, buf);
+ ee06150 *dp, &lv = *(dp=new (buf) ee06150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee06150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(24,16), "ee06150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), 0, "ee06150");
+ check_base_class_offset(lv, (dd6150*), 0, "ee06150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06150.e");
+ test_class_info(&lv, &cd_ee06150);
+ dp->~ee06150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06150(Test_ee06150, "ee06150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06150C1Ev();
+extern void _ZN7ee06150D1Ev();
+Name_Map name_map_ee06150[] = {
+ NSPAIR(_ZN7ee06150C1Ev),
+ NSPAIR(_ZN7ee06150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee06150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee06150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee06150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee06150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee06150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee06150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06150[] = {
+ {&(_ZTV7ee06150[4]), 4,11},
+ {&(_tg__ZTV6dd6150__7ee06150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee06150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee06150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee06150[4]), 4,5},
+ {&(_ZTV7ee06150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee06150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06150[];
+extern VTBL_ENTRY _ZTV7ee06150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06150[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06150 = { "ee06150", // class name
+ bases_ee06150, 4,
+ &(vtc_ee06150[0]), // expected_vtbl_contents
+ &(vtt_ee06150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16150 : virtual dd6150 {
+ int e;
+ ~ee16150(); // tgen
+ ee16150(); // tgen
+};
+//SIG(1 ee16150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16150 ::~ee16150(){ note_dtor("ee16150", this);} // tgen
+ee16150 ::ee16150(){ note_ctor("ee16150", this);} // tgen
+
+static void Test_ee16150()
+{
+ extern Class_Descriptor cd_ee16150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16150, buf);
+ ee16150 *dp, &lv = *(dp=new (buf) ee16150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee16150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(32,20), "ee16150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), ABISELECT(16,8), "ee16150");
+ check_base_class_offset(lv, (dd6150*), ABISELECT(16,8), "ee16150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16150.e");
+ test_class_info(&lv, &cd_ee16150);
+ dp->~ee16150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16150(Test_ee16150, "ee16150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16150C1Ev();
+extern void _ZN7ee16150D1Ev();
+Name_Map name_map_ee16150[] = {
+ NSPAIR(_ZN7ee16150C1Ev),
+ NSPAIR(_ZN7ee16150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee16150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee16150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16150[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee16150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee16150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee16150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee16150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee16150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16150[] = {
+ {&(_ZTV7ee16150[5]), 5,18},
+ {&(_ZTV7ee16150[11]), 11,18},
+ {&(_ZTV7ee16150[17]), 17,18},
+ {&(_tg__ZTV6dd6150__7ee16150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee16150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee16150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee16150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee16150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16150[];
+extern VTBL_ENTRY _ZTV7ee16150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16150[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16150 = { "ee16150", // class name
+ bases_ee16150, 4,
+ &(vtc_ee16150[0]), // expected_vtbl_contents
+ &(vtt_ee16150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16150),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26150 : dd6150 {
+ int e;
+ virtual void foo(); // _ZN7ee261503fooEv
+ ~ee26150(); // tgen
+ ee26150(); // tgen
+};
+//SIG(1 ee26150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26150 ::foo(){vfunc_called(this, "_ZN7ee261503fooEv");}
+ee26150 ::~ee26150(){ note_dtor("ee26150", this);} // tgen
+ee26150 ::ee26150(){ note_ctor("ee26150", this);} // tgen
+
+static void Test_ee26150()
+{
+ extern Class_Descriptor cd_ee26150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26150, buf);
+ ee26150 *dp, &lv = *(dp=new (buf) ee26150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee26150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(24,16), "ee26150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), 0, "ee26150");
+ check_base_class_offset(lv, (dd6150*), 0, "ee26150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26150.e");
+ test_class_info(&lv, &cd_ee26150);
+ dp->~ee26150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26150(Test_ee26150, "ee26150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26150C1Ev();
+extern void _ZN7ee26150D1Ev();
+Name_Map name_map_ee26150[] = {
+ NSPAIR(_ZN7ee26150C1Ev),
+ NSPAIR(_ZN7ee26150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee26150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN7ee261503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN7ee261503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee26150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee26150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee26150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee26150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee26150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26150[] = {
+ {&(_ZTV7ee26150[4]), 4,11},
+ {&(_tg__ZTV6dd6150__7ee26150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee26150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee26150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee26150[4]), 4,5},
+ {&(_ZTV7ee26150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee26150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26150[];
+extern VTBL_ENTRY _ZTV7ee26150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26150[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26150 = { "ee26150", // class name
+ bases_ee26150, 4,
+ &(vtc_ee26150[0]), // expected_vtbl_contents
+ &(vtt_ee26150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36150 : virtual dd6150 {
+ int e;
+ virtual void foo(); // _ZN7ee361503fooEv
+ ~ee36150(); // tgen
+ ee36150(); // tgen
+};
+//SIG(1 ee36150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36150 ::foo(){vfunc_called(this, "_ZN7ee361503fooEv");}
+ee36150 ::~ee36150(){ note_dtor("ee36150", this);} // tgen
+ee36150 ::ee36150(){ note_ctor("ee36150", this);} // tgen
+
+static void Test_ee36150()
+{
+ extern Class_Descriptor cd_ee36150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36150, buf);
+ ee36150 *dp, &lv = *(dp=new (buf) ee36150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee36150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(32,20), "ee36150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), ABISELECT(16,8), "ee36150");
+ check_base_class_offset(lv, (dd6150*), ABISELECT(16,8), "ee36150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36150.e");
+ test_class_info(&lv, &cd_ee36150);
+ dp->~ee36150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36150(Test_ee36150, "ee36150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36150C1Ev();
+extern void _ZN7ee36150D1Ev();
+Name_Map name_map_ee36150[] = {
+ NSPAIR(_ZN7ee36150C1Ev),
+ NSPAIR(_ZN7ee36150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee36150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee36150[];
+extern void _ZN7ee361503fooEv();
+extern void _ZN6dd61503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee361503fooEv,_ZTv0_n24_N7ee361503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361503fooEv,_ZThn8_N7ee361503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36150[0]),
+ (VTBL_ENTRY)&_ZN7ee361503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee361503fooEv,_ZTv0_n24_N7ee361503fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee36150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee36150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee36150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee36150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee36150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36150[] = {
+ {&(_ZTV7ee36150[5]), 5,19},
+ {&(_ZTV7ee36150[12]), 12,19},
+ {&(_ZTV7ee36150[18]), 18,19},
+ {&(_tg__ZTV6dd6150__7ee36150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee36150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee36150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee36150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee36150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36150[];
+extern VTBL_ENTRY _ZTV7ee36150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36150[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee361503fooEv,_ZTv0_n24_N7ee361503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361503fooEv,_ZThn8_N7ee361503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36150 = { "ee36150", // class name
+ bases_ee36150, 4,
+ &(vtc_ee36150[0]), // expected_vtbl_contents
+ &(vtt_ee36150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36150),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46150 : dd6150 {
+ int e;
+ virtual void bar(); // _ZN7ee461503barEv
+ ~ee46150(); // tgen
+ ee46150(); // tgen
+};
+//SIG(1 ee46150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46150 ::bar(){vfunc_called(this, "_ZN7ee461503barEv");}
+ee46150 ::~ee46150(){ note_dtor("ee46150", this);} // tgen
+ee46150 ::ee46150(){ note_ctor("ee46150", this);} // tgen
+
+static void Test_ee46150()
+{
+ extern Class_Descriptor cd_ee46150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46150, buf);
+ ee46150 *dp, &lv = *(dp=new (buf) ee46150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee46150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(24,16), "ee46150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), 0, "ee46150");
+ check_base_class_offset(lv, (dd6150*), 0, "ee46150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46150.e");
+ test_class_info(&lv, &cd_ee46150);
+ dp->~ee46150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46150(Test_ee46150, "ee46150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46150C1Ev();
+extern void _ZN7ee46150D1Ev();
+Name_Map name_map_ee46150[] = {
+ NSPAIR(_ZN7ee46150C1Ev),
+ NSPAIR(_ZN7ee46150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee46150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46150[];
+extern void _ZN7ee461503barEv();
+extern void _ZN6dd61503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee461503barEv,_ZTv0_n16_N7ee461503barEv)();
+extern void ABISELECT(_ZThn24_N7ee461503barEv,_ZThn16_N7ee461503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46150[0]),
+ (VTBL_ENTRY)&_ZN7ee461503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461503barEv,_ZTv0_n16_N7ee461503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee46150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee46150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee46150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee46150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee46150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46150[] = {
+ {&(_ZTV7ee46150[4]), 4,11},
+ {&(_tg__ZTV6dd6150__7ee46150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee46150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee46150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee46150[4]), 4,5},
+ {&(_ZTV7ee46150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee46150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46150[];
+extern VTBL_ENTRY _ZTV7ee46150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46150[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461503barEv,_ZTv0_n16_N7ee461503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461503barEv,_ZThn16_N7ee461503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46150 = { "ee46150", // class name
+ bases_ee46150, 4,
+ &(vtc_ee46150[0]), // expected_vtbl_contents
+ &(vtt_ee46150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56150 : virtual dd6150 {
+ int e;
+ virtual void bar(); // _ZN7ee561503barEv
+ ~ee56150(); // tgen
+ ee56150(); // tgen
+};
+//SIG(1 ee56150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56150 ::bar(){vfunc_called(this, "_ZN7ee561503barEv");}
+ee56150 ::~ee56150(){ note_dtor("ee56150", this);} // tgen
+ee56150 ::ee56150(){ note_ctor("ee56150", this);} // tgen
+
+static void Test_ee56150()
+{
+ extern Class_Descriptor cd_ee56150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56150, buf);
+ ee56150 *dp, &lv = *(dp=new (buf) ee56150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee56150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(32,20), "ee56150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), ABISELECT(16,8), "ee56150");
+ check_base_class_offset(lv, (dd6150*), ABISELECT(16,8), "ee56150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56150.e");
+ test_class_info(&lv, &cd_ee56150);
+ dp->~ee56150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56150(Test_ee56150, "ee56150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56150C1Ev();
+extern void _ZN7ee56150D1Ev();
+Name_Map name_map_ee56150[] = {
+ NSPAIR(_ZN7ee56150C1Ev),
+ NSPAIR(_ZN7ee56150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee56150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee56150[];
+extern void _ZN7ee561503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee561503barEv,_ZTv0_n20_N7ee561503barEv)();
+extern void ABISELECT(_ZThn16_N7ee561503barEv,_ZThn8_N7ee561503barEv)() __attribute__((weak));
+extern void _ZN6dd61503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561503barEv,_ZTv0_n16_N7ee561503barEv)();
+extern void ABISELECT(_ZThn32_N7ee561503barEv,_ZThn20_N7ee561503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56150[0]),
+ (VTBL_ENTRY)&_ZN7ee561503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee561503barEv,_ZTv0_n20_N7ee561503barEv),
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561503barEv,_ZTv0_n16_N7ee561503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee56150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee56150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee56150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee56150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee56150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56150[] = {
+ {&(_ZTV7ee56150[5]), 5,19},
+ {&(_ZTV7ee56150[12]), 12,19},
+ {&(_ZTV7ee56150[18]), 18,19},
+ {&(_tg__ZTV6dd6150__7ee56150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee56150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee56150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee56150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee56150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56150[];
+extern VTBL_ENTRY _ZTV7ee56150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56150[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561503barEv,_ZTv0_n16_N7ee561503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561503barEv,_ZThn20_N7ee561503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee561503barEv,_ZTv0_n20_N7ee561503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561503barEv,_ZThn8_N7ee561503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56150 = { "ee56150", // class name
+ bases_ee56150, 4,
+ &(vtc_ee56150[0]), // expected_vtbl_contents
+ &(vtt_ee56150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56150),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66150 : dd6150 {
+ int e;
+ virtual void foo(); // _ZN7ee661503fooEv
+ virtual void bar(); // _ZN7ee661503barEv
+ ~ee66150(); // tgen
+ ee66150(); // tgen
+};
+//SIG(1 ee66150) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66150 ::foo(){vfunc_called(this, "_ZN7ee661503fooEv");}
+void ee66150 ::bar(){vfunc_called(this, "_ZN7ee661503barEv");}
+ee66150 ::~ee66150(){ note_dtor("ee66150", this);} // tgen
+ee66150 ::ee66150(){ note_ctor("ee66150", this);} // tgen
+
+static void Test_ee66150()
+{
+ extern Class_Descriptor cd_ee66150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66150, buf);
+ ee66150 *dp, &lv = *(dp=new (buf) ee66150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee66150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(24,16), "ee66150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), 0, "ee66150");
+ check_base_class_offset(lv, (dd6150*), 0, "ee66150");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66150.e");
+ test_class_info(&lv, &cd_ee66150);
+ dp->~ee66150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66150(Test_ee66150, "ee66150", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66150C1Ev();
+extern void _ZN7ee66150D1Ev();
+Name_Map name_map_ee66150[] = {
+ NSPAIR(_ZN7ee66150C1Ev),
+ NSPAIR(_ZN7ee66150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee66150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66150[];
+extern void _ZN7ee661503barEv();
+extern void _ZN7ee661503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee661503barEv,_ZTv0_n16_N7ee661503barEv)();
+extern void ABISELECT(_ZThn24_N7ee661503barEv,_ZThn16_N7ee661503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66150[0]),
+ (VTBL_ENTRY)&_ZN7ee661503barEv,
+ (VTBL_ENTRY)&_ZN7ee661503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661503barEv,_ZTv0_n16_N7ee661503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee66150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee66150[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee66150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee66150[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee66150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66150[] = {
+ {&(_ZTV7ee66150[4]), 4,11},
+ {&(_tg__ZTV6dd6150__7ee66150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee66150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee66150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee66150[4]), 4,5},
+ {&(_ZTV7ee66150[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee66150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66150[];
+extern VTBL_ENTRY _ZTV7ee66150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66150[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61503barEv,_ZThn16_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661503barEv,_ZTv0_n16_N7ee661503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661503barEv,_ZThn16_N7ee661503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66150 = { "ee66150", // class name
+ bases_ee66150, 4,
+ &(vtc_ee66150[0]), // expected_vtbl_contents
+ &(vtt_ee66150[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66150),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66150),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76150 : virtual dd6150 {
+ int e;
+ virtual void foo(); // _ZN7ee761503fooEv
+ virtual void bar(); // _ZN7ee761503barEv
+ ~ee76150(); // tgen
+ ee76150(); // tgen
+};
+//SIG(1 ee76150) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76150 ::foo(){vfunc_called(this, "_ZN7ee761503fooEv");}
+void ee76150 ::bar(){vfunc_called(this, "_ZN7ee761503barEv");}
+ee76150 ::~ee76150(){ note_dtor("ee76150", this);} // tgen
+ee76150 ::ee76150(){ note_ctor("ee76150", this);} // tgen
+
+static void Test_ee76150()
+{
+ extern Class_Descriptor cd_ee76150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76150, buf);
+ ee76150 *dp, &lv = *(dp=new (buf) ee76150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee76150");
+ check_base_class_offset(lv, (bb50*)(cc150*)(dd6150*), ABISELECT(32,20), "ee76150");
+ check_base_class_offset(lv, (cc150*)(dd6150*), ABISELECT(16,8), "ee76150");
+ check_base_class_offset(lv, (dd6150*), ABISELECT(16,8), "ee76150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76150.e");
+ test_class_info(&lv, &cd_ee76150);
+ dp->~ee76150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76150(Test_ee76150, "ee76150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76150C1Ev();
+extern void _ZN7ee76150D1Ev();
+Name_Map name_map_ee76150[] = {
+ NSPAIR(_ZN7ee76150C1Ev),
+ NSPAIR(_ZN7ee76150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd6150;
+extern VTBL_ENTRY _ZTI6dd6150[];
+extern VTBL_ENTRY _ZTV6dd6150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6150[];
+static Base_Class bases_ee76150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee76150[];
+extern void _ZN7ee761503fooEv();
+extern void _ZN7ee761503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee761503barEv,_ZTv0_n20_N7ee761503barEv)();
+extern void ABISELECT(_ZThn16_N7ee761503barEv,_ZThn8_N7ee761503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee761503fooEv,_ZTv0_n24_N7ee761503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761503fooEv,_ZThn8_N7ee761503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761503barEv,_ZTv0_n16_N7ee761503barEv)();
+extern void ABISELECT(_ZThn32_N7ee761503barEv,_ZThn20_N7ee761503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76150[0]),
+ (VTBL_ENTRY)&_ZN7ee761503fooEv,
+ (VTBL_ENTRY)&_ZN7ee761503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761503barEv,_ZTv0_n20_N7ee761503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee761503fooEv,_ZTv0_n24_N7ee761503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761503barEv,_ZTv0_n16_N7ee761503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76150[];
+extern void _ZN6dd61503barEv();
+extern void _ZN6dd61503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6150__7ee76150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&_ZN6dd61503barEv,
+ (VTBL_ENTRY)&_ZN6dd61503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1506dd6150__7ee76150[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc1506dd6150__7ee76150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv)();
+extern void ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6150__7ee76150[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee76150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76150[] = {
+ {&(_ZTV7ee76150[5]), 5,20},
+ {&(_ZTV7ee76150[13]), 13,20},
+ {&(_ZTV7ee76150[19]), 19,20},
+ {&(_tg__ZTV6dd6150__7ee76150[4]), 4,6},
+ {&(_tg__ZTV5cc1506dd6150__7ee76150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc1506dd6150__7ee76150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6150__7ee76150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee76150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76150[];
+extern VTBL_ENTRY _ZTV7ee76150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76150[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61503barEv,_ZTv0_n16_N6dd61503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61503barEv,_ZThn12_N6dd61503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761503barEv,_ZTv0_n16_N7ee761503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761503barEv,_ZThn20_N7ee761503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee761503fooEv,_ZTv0_n24_N7ee761503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761503fooEv,_ZThn8_N7ee761503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761503barEv,_ZTv0_n20_N7ee761503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761503barEv,_ZThn8_N7ee761503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76150 = { "ee76150", // class name
+ bases_ee76150, 4,
+ &(vtc_ee76150[0]), // expected_vtbl_contents
+ &(vtt_ee76150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76150),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76150),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7150 : virtual cc150 {
+ int d;
+ virtual void bar(); // _ZN6dd71503barEv
+ virtual void foo(); // _ZN6dd71503fooEv
+ ~dd7150(); // tgen
+ dd7150(); // tgen
+};
+//SIG(-1 dd7150) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7150 ::bar(){vfunc_called(this, "_ZN6dd71503barEv");}
+void dd7150 ::foo(){vfunc_called(this, "_ZN6dd71503fooEv");}
+dd7150 ::~dd7150(){ note_dtor("dd7150", this);} // tgen
+dd7150 ::dd7150(){ note_ctor("dd7150", this);} // tgen
+
+static void Test_dd7150()
+{
+ extern Class_Descriptor cd_dd7150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7150, buf);
+ dd7150 *dp, &lv = *(dp=new (buf) dd7150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd7150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,16), "dd7150");
+ check_base_class_offset(lv, (cc150*), ABISELECT(16,8), "dd7150");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7150.d");
+ test_class_info(&lv, &cd_dd7150);
+ dp->~dd7150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7150(Test_dd7150, "dd7150", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7150C1Ev();
+extern void _ZN6dd7150D1Ev();
+Name_Map name_map_dd7150[] = {
+ NSPAIR(_ZN6dd7150C1Ev),
+ NSPAIR(_ZN6dd7150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+static Base_Class bases_dd7150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7150[];
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__6dd7150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7150[] = {
+ {&(_ZTV6dd7150[5]), 5,16},
+ {&(_ZTV6dd7150[11]), 11,16},
+ {&(_ZTV6dd7150[15]), 15,16},
+ {&(_tg__ZTV5cc150__6dd7150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__6dd7150[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd7150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7150 = { "dd7150", // class name
+ bases_dd7150, 3,
+ &(vtc_dd7150[0]), // expected_vtbl_contents
+ &(vtt_dd7150[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7150),6, //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 ee07150 : dd7150 {
+ int e;
+ ~ee07150(); // tgen
+ ee07150(); // tgen
+};
+//SIG(1 ee07150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07150 ::~ee07150(){ note_dtor("ee07150", this);} // tgen
+ee07150 ::ee07150(){ note_ctor("ee07150", this);} // tgen
+
+static void Test_ee07150()
+{
+ extern Class_Descriptor cd_ee07150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07150, buf);
+ ee07150 *dp, &lv = *(dp=new (buf) ee07150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee07150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee07150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(16,12), "ee07150");
+ check_base_class_offset(lv, (dd7150*), 0, "ee07150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07150.e");
+ test_class_info(&lv, &cd_ee07150);
+ dp->~ee07150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07150(Test_ee07150, "ee07150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07150C1Ev();
+extern void _ZN7ee07150D1Ev();
+Name_Map name_map_ee07150[] = {
+ NSPAIR(_ZN7ee07150C1Ev),
+ NSPAIR(_ZN7ee07150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee07150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee07150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee07150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee07150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee07150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee07150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee07150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07150[] = {
+ {&(_ZTV7ee07150[5]), 5,16},
+ {&(_tg__ZTV6dd7150__7ee07150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee07150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee07150[4]), 4,5},
+ {&(_ZTV7ee07150[11]), 11,16},
+ {&(_ZTV7ee07150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee07150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee07150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee07150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07150[];
+extern VTBL_ENTRY _ZTV7ee07150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07150[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07150 = { "ee07150", // class name
+ bases_ee07150, 4,
+ &(vtc_ee07150[0]), // expected_vtbl_contents
+ &(vtt_ee07150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17150 : virtual dd7150 {
+ int e;
+ ~ee17150(); // tgen
+ ee17150(); // tgen
+};
+//SIG(1 ee17150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17150 ::~ee17150(){ note_dtor("ee17150", this);} // tgen
+ee17150 ::ee17150(){ note_ctor("ee17150", this);} // tgen
+
+static void Test_ee17150()
+{
+ extern Class_Descriptor cd_ee17150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17150, buf);
+ ee17150 *dp, &lv = *(dp=new (buf) ee17150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee17150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee17150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(32,16), "ee17150");
+ check_base_class_offset(lv, (dd7150*), ABISELECT(16,8), "ee17150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17150.e");
+ test_class_info(&lv, &cd_ee17150);
+ dp->~ee17150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17150(Test_ee17150, "ee17150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17150C1Ev();
+extern void _ZN7ee17150D1Ev();
+Name_Map name_map_ee17150[] = {
+ NSPAIR(_ZN7ee17150C1Ev),
+ NSPAIR(_ZN7ee17150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee17150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee17150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17150[0]),
+ 0,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee17150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee17150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee17150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee17150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee17150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee17150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17150[] = {
+ {&(_ZTV7ee17150[6]), 6,24},
+ {&(_ZTV7ee17150[13]), 13,24},
+ {&(_ZTV7ee17150[19]), 19,24},
+ {&(_ZTV7ee17150[23]), 23,24},
+ {&(_tg__ZTV6dd7150__7ee17150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee17150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee17150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee17150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee17150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee17150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17150[];
+extern VTBL_ENTRY _ZTV7ee17150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17150[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17150 = { "ee17150", // class name
+ bases_ee17150, 4,
+ &(vtc_ee17150[0]), // expected_vtbl_contents
+ &(vtt_ee17150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17150),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27150 : dd7150 {
+ int e;
+ virtual void foo(); // _ZN7ee271503fooEv
+ ~ee27150(); // tgen
+ ee27150(); // tgen
+};
+//SIG(1 ee27150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27150 ::foo(){vfunc_called(this, "_ZN7ee271503fooEv");}
+ee27150 ::~ee27150(){ note_dtor("ee27150", this);} // tgen
+ee27150 ::ee27150(){ note_ctor("ee27150", this);} // tgen
+
+static void Test_ee27150()
+{
+ extern Class_Descriptor cd_ee27150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27150, buf);
+ ee27150 *dp, &lv = *(dp=new (buf) ee27150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee27150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee27150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(16,12), "ee27150");
+ check_base_class_offset(lv, (dd7150*), 0, "ee27150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27150.e");
+ test_class_info(&lv, &cd_ee27150);
+ dp->~ee27150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27150(Test_ee27150, "ee27150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27150C1Ev();
+extern void _ZN7ee27150D1Ev();
+Name_Map name_map_ee27150[] = {
+ NSPAIR(_ZN7ee27150C1Ev),
+ NSPAIR(_ZN7ee27150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee27150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN7ee271503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN7ee271503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee27150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee27150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee27150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee27150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee27150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee27150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27150[] = {
+ {&(_ZTV7ee27150[5]), 5,16},
+ {&(_tg__ZTV6dd7150__7ee27150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee27150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee27150[4]), 4,5},
+ {&(_ZTV7ee27150[11]), 11,16},
+ {&(_ZTV7ee27150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee27150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee27150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee27150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27150[];
+extern VTBL_ENTRY _ZTV7ee27150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27150[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27150 = { "ee27150", // class name
+ bases_ee27150, 4,
+ &(vtc_ee27150[0]), // expected_vtbl_contents
+ &(vtt_ee27150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names86,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37150 : virtual dd7150 {
+ int e;
+ virtual void foo(); // _ZN7ee371503fooEv
+ ~ee37150(); // tgen
+ ee37150(); // tgen
+};
+//SIG(1 ee37150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37150 ::foo(){vfunc_called(this, "_ZN7ee371503fooEv");}
+ee37150 ::~ee37150(){ note_dtor("ee37150", this);} // tgen
+ee37150 ::ee37150(){ note_ctor("ee37150", this);} // tgen
+
+static void Test_ee37150()
+{
+ extern Class_Descriptor cd_ee37150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37150, buf);
+ ee37150 *dp, &lv = *(dp=new (buf) ee37150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee37150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee37150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(32,16), "ee37150");
+ check_base_class_offset(lv, (dd7150*), ABISELECT(16,8), "ee37150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37150.e");
+ test_class_info(&lv, &cd_ee37150);
+ dp->~ee37150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37150(Test_ee37150, "ee37150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37150C1Ev();
+extern void _ZN7ee37150D1Ev();
+Name_Map name_map_ee37150[] = {
+ NSPAIR(_ZN7ee37150C1Ev),
+ NSPAIR(_ZN7ee37150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee37150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee37150[];
+extern void _ZN7ee371503fooEv();
+extern void _ZN6dd71503barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee371503fooEv,_ZTv0_n28_N7ee371503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371503fooEv,_ZThn8_N7ee371503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37150[0]),
+ (VTBL_ENTRY)&_ZN7ee371503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee371503fooEv,_ZTv0_n28_N7ee371503fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37150[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee37150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee37150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee37150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee37150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee37150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee37150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37150[] = {
+ {&(_ZTV7ee37150[6]), 6,25},
+ {&(_ZTV7ee37150[14]), 14,25},
+ {&(_ZTV7ee37150[20]), 20,25},
+ {&(_ZTV7ee37150[24]), 24,25},
+ {&(_tg__ZTV6dd7150__7ee37150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee37150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee37150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee37150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee37150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee37150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37150[];
+extern VTBL_ENTRY _ZTV7ee37150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37150[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee371503fooEv,_ZTv0_n28_N7ee371503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371503fooEv,_ZThn8_N7ee371503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37150 = { "ee37150", // class name
+ bases_ee37150, 4,
+ &(vtc_ee37150[0]), // expected_vtbl_contents
+ &(vtt_ee37150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37150),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names87,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47150 : dd7150 {
+ int e;
+ virtual void bar(); // _ZN7ee471503barEv
+ ~ee47150(); // tgen
+ ee47150(); // tgen
+};
+//SIG(1 ee47150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47150 ::bar(){vfunc_called(this, "_ZN7ee471503barEv");}
+ee47150 ::~ee47150(){ note_dtor("ee47150", this);} // tgen
+ee47150 ::ee47150(){ note_ctor("ee47150", this);} // tgen
+
+static void Test_ee47150()
+{
+ extern Class_Descriptor cd_ee47150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47150, buf);
+ ee47150 *dp, &lv = *(dp=new (buf) ee47150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee47150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee47150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(16,12), "ee47150");
+ check_base_class_offset(lv, (dd7150*), 0, "ee47150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47150.e");
+ test_class_info(&lv, &cd_ee47150);
+ dp->~ee47150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47150(Test_ee47150, "ee47150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47150C1Ev();
+extern void _ZN7ee47150D1Ev();
+Name_Map name_map_ee47150[] = {
+ NSPAIR(_ZN7ee47150C1Ev),
+ NSPAIR(_ZN7ee47150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee47150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47150[];
+extern void _ZN7ee471503barEv();
+extern void _ZN6dd71503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee471503barEv,_ZTv0_n16_N7ee471503barEv)();
+extern void ABISELECT(_ZThn32_N7ee471503barEv,_ZThn20_N7ee471503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47150[0]),
+ (VTBL_ENTRY)&_ZN7ee471503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471503barEv,_ZTv0_n16_N7ee471503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee47150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee47150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee47150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee47150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee47150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee47150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47150[] = {
+ {&(_ZTV7ee47150[5]), 5,16},
+ {&(_tg__ZTV6dd7150__7ee47150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee47150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee47150[4]), 4,5},
+ {&(_ZTV7ee47150[11]), 11,16},
+ {&(_ZTV7ee47150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee47150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee47150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee47150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47150[];
+extern VTBL_ENTRY _ZTV7ee47150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47150[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471503barEv,_ZTv0_n16_N7ee471503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471503barEv,_ZThn20_N7ee471503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47150 = { "ee47150", // class name
+ bases_ee47150, 4,
+ &(vtc_ee47150[0]), // expected_vtbl_contents
+ &(vtt_ee47150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57150 : virtual dd7150 {
+ int e;
+ virtual void bar(); // _ZN7ee571503barEv
+ ~ee57150(); // tgen
+ ee57150(); // tgen
+};
+//SIG(1 ee57150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57150 ::bar(){vfunc_called(this, "_ZN7ee571503barEv");}
+ee57150 ::~ee57150(){ note_dtor("ee57150", this);} // tgen
+ee57150 ::ee57150(){ note_ctor("ee57150", this);} // tgen
+
+static void Test_ee57150()
+{
+ extern Class_Descriptor cd_ee57150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57150, buf);
+ ee57150 *dp, &lv = *(dp=new (buf) ee57150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee57150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee57150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(32,16), "ee57150");
+ check_base_class_offset(lv, (dd7150*), ABISELECT(16,8), "ee57150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57150.e");
+ test_class_info(&lv, &cd_ee57150);
+ dp->~ee57150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57150(Test_ee57150, "ee57150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57150C1Ev();
+extern void _ZN7ee57150D1Ev();
+Name_Map name_map_ee57150[] = {
+ NSPAIR(_ZN7ee57150C1Ev),
+ NSPAIR(_ZN7ee57150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee57150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee57150[];
+extern void _ZN7ee571503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee571503barEv,_ZTv0_n24_N7ee571503barEv)();
+extern void ABISELECT(_ZThn16_N7ee571503barEv,_ZThn8_N7ee571503barEv)() __attribute__((weak));
+extern void _ZN6dd71503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee571503barEv,_ZTv0_n16_N7ee571503barEv)();
+extern void ABISELECT(_ZThn48_N7ee571503barEv,_ZThn24_N7ee571503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57150[0]),
+ (VTBL_ENTRY)&_ZN7ee571503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee571503barEv,_ZTv0_n24_N7ee571503barEv),
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571503barEv,_ZTv0_n16_N7ee571503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee57150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee57150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee57150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee57150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee57150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee57150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57150[] = {
+ {&(_ZTV7ee57150[6]), 6,25},
+ {&(_ZTV7ee57150[14]), 14,25},
+ {&(_ZTV7ee57150[20]), 20,25},
+ {&(_ZTV7ee57150[24]), 24,25},
+ {&(_tg__ZTV6dd7150__7ee57150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee57150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee57150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee57150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee57150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee57150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57150[];
+extern VTBL_ENTRY _ZTV7ee57150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57150[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571503barEv,_ZTv0_n16_N7ee571503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571503barEv,_ZThn24_N7ee571503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee571503barEv,_ZTv0_n24_N7ee571503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571503barEv,_ZThn8_N7ee571503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57150 = { "ee57150", // class name
+ bases_ee57150, 4,
+ &(vtc_ee57150[0]), // expected_vtbl_contents
+ &(vtt_ee57150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57150),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67150 : dd7150 {
+ int e;
+ virtual void foo(); // _ZN7ee671503fooEv
+ virtual void bar(); // _ZN7ee671503barEv
+ ~ee67150(); // tgen
+ ee67150(); // tgen
+};
+//SIG(1 ee67150) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67150 ::foo(){vfunc_called(this, "_ZN7ee671503fooEv");}
+void ee67150 ::bar(){vfunc_called(this, "_ZN7ee671503barEv");}
+ee67150 ::~ee67150(){ note_dtor("ee67150", this);} // tgen
+ee67150 ::ee67150(){ note_ctor("ee67150", this);} // tgen
+
+static void Test_ee67150()
+{
+ extern Class_Descriptor cd_ee67150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67150, buf);
+ ee67150 *dp, &lv = *(dp=new (buf) ee67150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee67150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(32,20), "ee67150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(16,12), "ee67150");
+ check_base_class_offset(lv, (dd7150*), 0, "ee67150");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67150.e");
+ test_class_info(&lv, &cd_ee67150);
+ dp->~ee67150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67150(Test_ee67150, "ee67150", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67150C1Ev();
+extern void _ZN7ee67150D1Ev();
+Name_Map name_map_ee67150[] = {
+ NSPAIR(_ZN7ee67150C1Ev),
+ NSPAIR(_ZN7ee67150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee67150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67150[];
+extern void _ZN7ee671503barEv();
+extern void _ZN7ee671503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee671503barEv,_ZTv0_n16_N7ee671503barEv)();
+extern void ABISELECT(_ZThn32_N7ee671503barEv,_ZThn20_N7ee671503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67150[0]),
+ (VTBL_ENTRY)&_ZN7ee671503barEv,
+ (VTBL_ENTRY)&_ZN7ee671503fooEv,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67150[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671503barEv,_ZTv0_n16_N7ee671503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee67150[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee67150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee67150[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee67150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee67150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee67150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67150[] = {
+ {&(_ZTV7ee67150[5]), 5,16},
+ {&(_tg__ZTV6dd7150__7ee67150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee67150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee67150[4]), 4,5},
+ {&(_ZTV7ee67150[11]), 11,16},
+ {&(_ZTV7ee67150[15]), 15,16},
+ {&(_tg__ZTV5cc150__7ee67150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee67150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee67150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67150[];
+extern VTBL_ENTRY _ZTV7ee67150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67150[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn20_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671503barEv,_ZTv0_n16_N7ee671503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671503barEv,_ZThn20_N7ee671503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67150 = { "ee67150", // class name
+ bases_ee67150, 4,
+ &(vtc_ee67150[0]), // expected_vtbl_contents
+ &(vtt_ee67150[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67150),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67150),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67150),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77150 : virtual dd7150 {
+ int e;
+ virtual void foo(); // _ZN7ee771503fooEv
+ virtual void bar(); // _ZN7ee771503barEv
+ ~ee77150(); // tgen
+ ee77150(); // tgen
+};
+//SIG(1 ee77150) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77150 ::foo(){vfunc_called(this, "_ZN7ee771503fooEv");}
+void ee77150 ::bar(){vfunc_called(this, "_ZN7ee771503barEv");}
+ee77150 ::~ee77150(){ note_dtor("ee77150", this);} // tgen
+ee77150 ::ee77150(){ note_ctor("ee77150", this);} // tgen
+
+static void Test_ee77150()
+{
+ extern Class_Descriptor cd_ee77150;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77150, buf);
+ ee77150 *dp, &lv = *(dp=new (buf) ee77150());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77150)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77150)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee77150");
+ check_base_class_offset(lv, (bb50*)(cc150*), ABISELECT(48,24), "ee77150");
+ check_base_class_offset(lv, (cc150*)(dd7150*), ABISELECT(32,16), "ee77150");
+ check_base_class_offset(lv, (dd7150*), ABISELECT(16,8), "ee77150");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77150.e");
+ test_class_info(&lv, &cd_ee77150);
+ dp->~ee77150();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77150(Test_ee77150, "ee77150", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77150C1Ev();
+extern void _ZN7ee77150D1Ev();
+Name_Map name_map_ee77150[] = {
+ NSPAIR(_ZN7ee77150C1Ev),
+ NSPAIR(_ZN7ee77150D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc150;
+extern VTBL_ENTRY _ZTI5cc150[];
+extern VTBL_ENTRY _ZTV5cc150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc150[];
+extern Class_Descriptor cd_dd7150;
+extern VTBL_ENTRY _ZTI6dd7150[];
+extern VTBL_ENTRY _ZTV6dd7150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7150[];
+static Base_Class bases_ee77150[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc150, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7150, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee77150[];
+extern void _ZN7ee771503fooEv();
+extern void _ZN7ee771503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee771503barEv,_ZTv0_n24_N7ee771503barEv)();
+extern void ABISELECT(_ZThn16_N7ee771503barEv,_ZThn8_N7ee771503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee771503fooEv,_ZTv0_n28_N7ee771503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771503fooEv,_ZThn8_N7ee771503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771503barEv,_ZTv0_n16_N7ee771503barEv)();
+extern void ABISELECT(_ZThn48_N7ee771503barEv,_ZThn24_N7ee771503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77150[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77150[0]),
+ (VTBL_ENTRY)&_ZN7ee771503fooEv,
+ (VTBL_ENTRY)&_ZN7ee771503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771503barEv,_ZTv0_n24_N7ee771503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee771503fooEv,_ZTv0_n28_N7ee771503fooEv),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77150[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771503barEv,_ZTv0_n16_N7ee771503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77150[];
+extern void _ZN6dd71503barEv();
+extern void _ZN6dd71503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7150__7ee77150[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&_ZN6dd71503barEv,
+ (VTBL_ENTRY)&_ZN6dd71503fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc150__6dd7150__7ee77150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv)();
+extern void ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7150__7ee77150[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7150[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc150__7ee77150[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc150__7ee77150[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc150[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee77150[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77150[] = {
+ {&(_ZTV7ee77150[6]), 6,26},
+ {&(_ZTV7ee77150[15]), 15,26},
+ {&(_ZTV7ee77150[21]), 21,26},
+ {&(_ZTV7ee77150[25]), 25,26},
+ {&(_tg__ZTV6dd7150__7ee77150[5]), 5,7},
+ {&(_tg__ZTV5cc150__6dd7150__7ee77150[4]), 4,4},
+ {&(_tg__ZTV4bb50__6dd7150__7ee77150[4]), 4,5},
+ {&(_tg__ZTV5cc150__7ee77150[4]), 4,4},
+ {&(_tg__ZTV4bb50__5cc150__7ee77150[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee77150[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77150[];
+extern VTBL_ENTRY _ZTV7ee77150[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77150[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71503barEv,_ZTv0_n16_N6dd71503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71503barEv,_ZThn16_N6dd71503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771503barEv,_ZTv0_n16_N7ee771503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771503barEv,_ZThn24_N7ee771503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee771503fooEv,_ZTv0_n28_N7ee771503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771503fooEv,_ZThn8_N7ee771503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771503barEv,_ZTv0_n24_N7ee771503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771503barEv,_ZThn8_N7ee771503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77150 = { "ee77150", // class name
+ bases_ee77150, 4,
+ &(vtc_ee77150[0]), // expected_vtbl_contents
+ &(vtt_ee77150[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77150),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77150),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77150),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc250 : bb50 {
+ int c;
+ virtual void foo(); // _ZN5cc2503fooEv
+ ~cc250(); // tgen
+ cc250(); // tgen
+};
+//SIG(-1 cc250) C1{ BC2{ VBC3{ Fi} v2 Fi} v1 Fi}
+
+
+void cc250 ::foo(){vfunc_called(this, "_ZN5cc2503fooEv");}
+cc250 ::~cc250(){ note_dtor("cc250", this);} // tgen
+cc250 ::cc250(){ note_ctor("cc250", this);} // tgen
+
+static void Test_cc250()
+{
+ extern Class_Descriptor cd_cc250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc250, buf);
+ cc250 *dp, &lv = *(dp=new (buf) cc250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc250)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(16,12), "cc250");
+ check_base_class_offset(lv, (bb50*), 0, "cc250");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc250.c");
+ test_class_info(&lv, &cd_cc250);
+ dp->~cc250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc250(Test_cc250, "cc250", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc250C1Ev();
+extern void _ZN5cc250D1Ev();
+Name_Map name_map_cc250[] = {
+ NSPAIR(_ZN5cc250C1Ev),
+ NSPAIR(_ZN5cc250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_cc250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc250[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc250[] = {
+ {&(_ZTV5cc250[3]), 3,5},
+ {&(_tg__ZTV4bb50__5cc250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+Class_Descriptor cd_cc250 = { "cc250", // class name
+ bases_cc250, 2,
+ &(vtc_cc250[0]), // expected_vtbl_contents
+ &(vtt_cc250[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc250),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0250 : cc250 {
+ int d;
+ ~dd0250(); // tgen
+ dd0250(); // tgen
+};
+//SIG(-1 dd0250) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0250 ::~dd0250(){ note_dtor("dd0250", this);} // tgen
+dd0250 ::dd0250(){ note_ctor("dd0250", this);} // tgen
+
+static void Test_dd0250()
+{
+ extern Class_Descriptor cd_dd0250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0250, buf);
+ dd0250 *dp, &lv = *(dp=new (buf) dd0250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(20,16), "dd0250");
+ check_base_class_offset(lv, (bb50*)(cc250*), 0, "dd0250");
+ check_base_class_offset(lv, (cc250*), 0, "dd0250");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0250.d");
+ test_class_info(&lv, &cd_dd0250);
+ dp->~dd0250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0250(Test_dd0250, "dd0250", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0250C1Ev();
+extern void _ZN6dd0250D1Ev();
+Name_Map name_map_dd0250[] = {
+ NSPAIR(_ZN6dd0250C1Ev),
+ NSPAIR(_ZN6dd0250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd0250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_dd0250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd0250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd0250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0250[] = {
+ {&(_ZTV6dd0250[3]), 3,5},
+ {&(_tg__ZTV5cc250__6dd0250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd0250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+Class_Descriptor cd_dd0250 = { "dd0250", // class name
+ bases_dd0250, 3,
+ &(vtc_dd0250[0]), // expected_vtbl_contents
+ &(vtt_dd0250[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0250),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00250 : dd0250 {
+ int e;
+ ~ee00250(); // tgen
+ ee00250(); // tgen
+};
+//SIG(1 ee00250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00250 ::~ee00250(){ note_dtor("ee00250", this);} // tgen
+ee00250 ::ee00250(){ note_ctor("ee00250", this);} // tgen
+
+static void Test_ee00250()
+{
+ extern Class_Descriptor cd_ee00250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00250, buf);
+ ee00250 *dp, &lv = *(dp=new (buf) ee00250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(24,20), "ee00250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), 0, "ee00250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), 0, "ee00250");
+ check_base_class_offset(lv, (dd0250*), 0, "ee00250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00250.e");
+ test_class_info(&lv, &cd_ee00250);
+ dp->~ee00250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00250(Test_ee00250, "ee00250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00250C1Ev();
+extern void _ZN7ee00250D1Ev();
+Name_Map name_map_ee00250[] = {
+ NSPAIR(_ZN7ee00250C1Ev),
+ NSPAIR(_ZN7ee00250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee00250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee00250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee00250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee00250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee00250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00250[] = {
+ {&(_ZTV7ee00250[3]), 3,5},
+ {&(_tg__ZTV6dd0250__7ee00250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee00250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee00250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00250[];
+extern VTBL_ENTRY _ZTV7ee00250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00250[];
+Class_Descriptor cd_ee00250 = { "ee00250", // class name
+ bases_ee00250, 4,
+ &(vtc_ee00250[0]), // expected_vtbl_contents
+ &(vtt_ee00250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10250 : virtual dd0250 {
+ int e;
+ ~ee10250(); // tgen
+ ee10250(); // tgen
+};
+//SIG(1 ee10250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10250 ::~ee10250(){ note_dtor("ee10250", this);} // tgen
+ee10250 ::ee10250(){ note_ctor("ee10250", this);} // tgen
+
+static void Test_ee10250()
+{
+ extern Class_Descriptor cd_ee10250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10250, buf);
+ ee10250 *dp, &lv = *(dp=new (buf) ee10250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(36,24), "ee10250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), ABISELECT(16,8), "ee10250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), ABISELECT(16,8), "ee10250");
+ check_base_class_offset(lv, (dd0250*), ABISELECT(16,8), "ee10250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10250.e");
+ test_class_info(&lv, &cd_ee10250);
+ dp->~ee10250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10250(Test_ee10250, "ee10250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10250C1Ev();
+extern void _ZN7ee10250D1Ev();
+Name_Map name_map_ee10250[] = {
+ NSPAIR(_ZN7ee10250C1Ev),
+ NSPAIR(_ZN7ee10250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee10250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee10250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10250[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee10250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee10250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee10250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10250[] = {
+ {&(_ZTV7ee10250[4]), 4,11},
+ {&(_ZTV7ee10250[9]), 9,11},
+ {&(_tg__ZTV6dd0250__7ee10250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee10250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee10250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10250[];
+extern VTBL_ENTRY _ZTV7ee10250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10250[];
+Class_Descriptor cd_ee10250 = { "ee10250", // class name
+ bases_ee10250, 4,
+ &(vtc_ee10250[0]), // expected_vtbl_contents
+ &(vtt_ee10250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20250 : dd0250 {
+ int e;
+ virtual void foo(); // _ZN7ee202503fooEv
+ ~ee20250(); // tgen
+ ee20250(); // tgen
+};
+//SIG(1 ee20250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20250 ::foo(){vfunc_called(this, "_ZN7ee202503fooEv");}
+ee20250 ::~ee20250(){ note_dtor("ee20250", this);} // tgen
+ee20250 ::ee20250(){ note_ctor("ee20250", this);} // tgen
+
+static void Test_ee20250()
+{
+ extern Class_Descriptor cd_ee20250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20250, buf);
+ ee20250 *dp, &lv = *(dp=new (buf) ee20250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(24,20), "ee20250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), 0, "ee20250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), 0, "ee20250");
+ check_base_class_offset(lv, (dd0250*), 0, "ee20250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20250.e");
+ test_class_info(&lv, &cd_ee20250);
+ dp->~ee20250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20250(Test_ee20250, "ee20250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20250C1Ev();
+extern void _ZN7ee20250D1Ev();
+Name_Map name_map_ee20250[] = {
+ NSPAIR(_ZN7ee20250C1Ev),
+ NSPAIR(_ZN7ee20250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee20250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20250[];
+extern void _ZN4bb503barEv();
+extern void _ZN7ee202503fooEv();
+static VTBL_ENTRY vtc_ee20250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN7ee202503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee20250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee20250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee20250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20250[] = {
+ {&(_ZTV7ee20250[3]), 3,5},
+ {&(_tg__ZTV6dd0250__7ee20250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee20250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee20250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20250[];
+extern VTBL_ENTRY _ZTV7ee20250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20250[];
+Class_Descriptor cd_ee20250 = { "ee20250", // class name
+ bases_ee20250, 4,
+ &(vtc_ee20250[0]), // expected_vtbl_contents
+ &(vtt_ee20250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30250 : virtual dd0250 {
+ int e;
+ virtual void foo(); // _ZN7ee302503fooEv
+ ~ee30250(); // tgen
+ ee30250(); // tgen
+};
+//SIG(1 ee30250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30250 ::foo(){vfunc_called(this, "_ZN7ee302503fooEv");}
+ee30250 ::~ee30250(){ note_dtor("ee30250", this);} // tgen
+ee30250 ::ee30250(){ note_ctor("ee30250", this);} // tgen
+
+static void Test_ee30250()
+{
+ extern Class_Descriptor cd_ee30250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30250, buf);
+ ee30250 *dp, &lv = *(dp=new (buf) ee30250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(36,24), "ee30250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), ABISELECT(16,8), "ee30250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), ABISELECT(16,8), "ee30250");
+ check_base_class_offset(lv, (dd0250*), ABISELECT(16,8), "ee30250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30250.e");
+ test_class_info(&lv, &cd_ee30250);
+ dp->~ee30250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30250(Test_ee30250, "ee30250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30250C1Ev();
+extern void _ZN7ee30250D1Ev();
+Name_Map name_map_ee30250[] = {
+ NSPAIR(_ZN7ee30250C1Ev),
+ NSPAIR(_ZN7ee30250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee30250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30250[];
+extern void _ZN7ee302503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee302503fooEv,_ZTv0_n20_N7ee302503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302503fooEv,_ZThn8_N7ee302503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30250[0]),
+ (VTBL_ENTRY)&_ZN7ee302503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee302503fooEv,_ZTv0_n20_N7ee302503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee30250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee30250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee30250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30250[] = {
+ {&(_ZTV7ee30250[4]), 4,12},
+ {&(_ZTV7ee30250[10]), 10,12},
+ {&(_tg__ZTV6dd0250__7ee30250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee30250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee30250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30250[];
+extern VTBL_ENTRY _ZTV7ee30250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30250[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee302503fooEv,_ZTv0_n20_N7ee302503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302503fooEv,_ZThn8_N7ee302503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30250 = { "ee30250", // class name
+ bases_ee30250, 4,
+ &(vtc_ee30250[0]), // expected_vtbl_contents
+ &(vtt_ee30250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40250 : dd0250 {
+ int e;
+ virtual void bar(); // _ZN7ee402503barEv
+ ~ee40250(); // tgen
+ ee40250(); // tgen
+};
+//SIG(1 ee40250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40250 ::bar(){vfunc_called(this, "_ZN7ee402503barEv");}
+ee40250 ::~ee40250(){ note_dtor("ee40250", this);} // tgen
+ee40250 ::ee40250(){ note_ctor("ee40250", this);} // tgen
+
+static void Test_ee40250()
+{
+ extern Class_Descriptor cd_ee40250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40250, buf);
+ ee40250 *dp, &lv = *(dp=new (buf) ee40250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(24,20), "ee40250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), 0, "ee40250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), 0, "ee40250");
+ check_base_class_offset(lv, (dd0250*), 0, "ee40250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40250.e");
+ test_class_info(&lv, &cd_ee40250);
+ dp->~ee40250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40250(Test_ee40250, "ee40250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40250C1Ev();
+extern void _ZN7ee40250D1Ev();
+Name_Map name_map_ee40250[] = {
+ NSPAIR(_ZN7ee40250C1Ev),
+ NSPAIR(_ZN7ee40250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee40250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40250[];
+extern void _ZN7ee402503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee40250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40250[0]),
+ (VTBL_ENTRY)&_ZN7ee402503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee40250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee40250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee40250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40250[] = {
+ {&(_ZTV7ee40250[3]), 3,5},
+ {&(_tg__ZTV6dd0250__7ee40250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee40250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee40250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40250[];
+extern VTBL_ENTRY _ZTV7ee40250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40250[];
+Class_Descriptor cd_ee40250 = { "ee40250", // class name
+ bases_ee40250, 4,
+ &(vtc_ee40250[0]), // expected_vtbl_contents
+ &(vtt_ee40250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50250 : virtual dd0250 {
+ int e;
+ virtual void bar(); // _ZN7ee502503barEv
+ ~ee50250(); // tgen
+ ee50250(); // tgen
+};
+//SIG(1 ee50250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50250 ::bar(){vfunc_called(this, "_ZN7ee502503barEv");}
+ee50250 ::~ee50250(){ note_dtor("ee50250", this);} // tgen
+ee50250 ::ee50250(){ note_ctor("ee50250", this);} // tgen
+
+static void Test_ee50250()
+{
+ extern Class_Descriptor cd_ee50250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50250, buf);
+ ee50250 *dp, &lv = *(dp=new (buf) ee50250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(36,24), "ee50250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), ABISELECT(16,8), "ee50250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), ABISELECT(16,8), "ee50250");
+ check_base_class_offset(lv, (dd0250*), ABISELECT(16,8), "ee50250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50250.e");
+ test_class_info(&lv, &cd_ee50250);
+ dp->~ee50250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50250(Test_ee50250, "ee50250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50250C1Ev();
+extern void _ZN7ee50250D1Ev();
+Name_Map name_map_ee50250[] = {
+ NSPAIR(_ZN7ee50250C1Ev),
+ NSPAIR(_ZN7ee50250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee50250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50250[];
+extern void _ZN7ee502503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502503barEv,_ZTv0_n16_N7ee502503barEv)();
+extern void ABISELECT(_ZThn16_N7ee502503barEv,_ZThn8_N7ee502503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee50250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50250[0]),
+ (VTBL_ENTRY)&_ZN7ee502503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502503barEv,_ZTv0_n16_N7ee502503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee50250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee50250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee50250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50250[] = {
+ {&(_ZTV7ee50250[4]), 4,12},
+ {&(_ZTV7ee50250[10]), 10,12},
+ {&(_tg__ZTV6dd0250__7ee50250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee50250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee50250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50250[];
+extern VTBL_ENTRY _ZTV7ee50250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50250[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502503barEv,_ZTv0_n16_N7ee502503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502503barEv,_ZThn8_N7ee502503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50250 = { "ee50250", // class name
+ bases_ee50250, 4,
+ &(vtc_ee50250[0]), // expected_vtbl_contents
+ &(vtt_ee50250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60250 : dd0250 {
+ int e;
+ virtual void foo(); // _ZN7ee602503fooEv
+ virtual void bar(); // _ZN7ee602503barEv
+ ~ee60250(); // tgen
+ ee60250(); // tgen
+};
+//SIG(1 ee60250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60250 ::foo(){vfunc_called(this, "_ZN7ee602503fooEv");}
+void ee60250 ::bar(){vfunc_called(this, "_ZN7ee602503barEv");}
+ee60250 ::~ee60250(){ note_dtor("ee60250", this);} // tgen
+ee60250 ::ee60250(){ note_ctor("ee60250", this);} // tgen
+
+static void Test_ee60250()
+{
+ extern Class_Descriptor cd_ee60250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60250, buf);
+ ee60250 *dp, &lv = *(dp=new (buf) ee60250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(24,20), "ee60250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), 0, "ee60250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), 0, "ee60250");
+ check_base_class_offset(lv, (dd0250*), 0, "ee60250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60250.e");
+ test_class_info(&lv, &cd_ee60250);
+ dp->~ee60250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60250(Test_ee60250, "ee60250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60250C1Ev();
+extern void _ZN7ee60250D1Ev();
+Name_Map name_map_ee60250[] = {
+ NSPAIR(_ZN7ee60250C1Ev),
+ NSPAIR(_ZN7ee60250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee60250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60250[];
+extern void _ZN7ee602503barEv();
+extern void _ZN7ee602503fooEv();
+static VTBL_ENTRY vtc_ee60250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60250[0]),
+ (VTBL_ENTRY)&_ZN7ee602503barEv,
+ (VTBL_ENTRY)&_ZN7ee602503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee60250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee60250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee60250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee60250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60250[] = {
+ {&(_ZTV7ee60250[3]), 3,5},
+ {&(_tg__ZTV6dd0250__7ee60250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee60250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee60250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60250[];
+extern VTBL_ENTRY _ZTV7ee60250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60250[];
+Class_Descriptor cd_ee60250 = { "ee60250", // class name
+ bases_ee60250, 4,
+ &(vtc_ee60250[0]), // expected_vtbl_contents
+ &(vtt_ee60250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70250 : virtual dd0250 {
+ int e;
+ virtual void foo(); // _ZN7ee702503fooEv
+ virtual void bar(); // _ZN7ee702503barEv
+ ~ee70250(); // tgen
+ ee70250(); // tgen
+};
+//SIG(1 ee70250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70250 ::foo(){vfunc_called(this, "_ZN7ee702503fooEv");}
+void ee70250 ::bar(){vfunc_called(this, "_ZN7ee702503barEv");}
+ee70250 ::~ee70250(){ note_dtor("ee70250", this);} // tgen
+ee70250 ::ee70250(){ note_ctor("ee70250", this);} // tgen
+
+static void Test_ee70250()
+{
+ extern Class_Descriptor cd_ee70250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70250, buf);
+ ee70250 *dp, &lv = *(dp=new (buf) ee70250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd0250*), ABISELECT(36,24), "ee70250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd0250*), ABISELECT(16,8), "ee70250");
+ check_base_class_offset(lv, (cc250*)(dd0250*), ABISELECT(16,8), "ee70250");
+ check_base_class_offset(lv, (dd0250*), ABISELECT(16,8), "ee70250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70250.e");
+ test_class_info(&lv, &cd_ee70250);
+ dp->~ee70250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70250(Test_ee70250, "ee70250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70250C1Ev();
+extern void _ZN7ee70250D1Ev();
+Name_Map name_map_ee70250[] = {
+ NSPAIR(_ZN7ee70250C1Ev),
+ NSPAIR(_ZN7ee70250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd0250;
+extern VTBL_ENTRY _ZTI6dd0250[];
+extern VTBL_ENTRY _ZTV6dd0250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0250[];
+static Base_Class bases_ee70250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70250[];
+extern void _ZN7ee702503fooEv();
+extern void _ZN7ee702503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee702503barEv,_ZTv0_n16_N7ee702503barEv)();
+extern void ABISELECT(_ZThn16_N7ee702503barEv,_ZThn8_N7ee702503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee702503fooEv,_ZTv0_n20_N7ee702503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702503fooEv,_ZThn8_N7ee702503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70250[0]),
+ (VTBL_ENTRY)&_ZN7ee702503fooEv,
+ (VTBL_ENTRY)&_ZN7ee702503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702503barEv,_ZTv0_n16_N7ee702503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee702503fooEv,_ZTv0_n20_N7ee702503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0250__7ee70250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd0250__7ee70250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd0250__7ee70250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70250[] = {
+ {&(_ZTV7ee70250[4]), 4,13},
+ {&(_ZTV7ee70250[11]), 11,13},
+ {&(_tg__ZTV6dd0250__7ee70250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd0250__7ee70250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd0250__7ee70250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70250[];
+extern VTBL_ENTRY _ZTV7ee70250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70250[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee702503fooEv,_ZTv0_n20_N7ee702503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702503fooEv,_ZThn8_N7ee702503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702503barEv,_ZTv0_n16_N7ee702503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702503barEv,_ZThn8_N7ee702503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70250 = { "ee70250", // class name
+ bases_ee70250, 4,
+ &(vtc_ee70250[0]), // expected_vtbl_contents
+ &(vtt_ee70250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1250 : virtual cc250 {
+ int d;
+ ~dd1250(); // tgen
+ dd1250(); // tgen
+};
+//SIG(-1 dd1250) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1250 ::~dd1250(){ note_dtor("dd1250", this);} // tgen
+dd1250 ::dd1250(){ note_ctor("dd1250", this);} // tgen
+
+static void Test_dd1250()
+{
+ extern Class_Descriptor cd_dd1250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1250, buf);
+ dd1250 *dp, &lv = *(dp=new (buf) dd1250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,20), "dd1250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,8), "dd1250");
+ check_base_class_offset(lv, (cc250*), ABISELECT(16,8), "dd1250");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1250.d");
+ test_class_info(&lv, &cd_dd1250);
+ dp->~dd1250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1250(Test_dd1250, "dd1250", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1250C1Ev();
+extern void _ZN6dd1250D1Ev();
+Name_Map name_map_dd1250[] = {
+ NSPAIR(_ZN6dd1250C1Ev),
+ NSPAIR(_ZN6dd1250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd1250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_dd1250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd1250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1250[] = {
+ {&(_ZTV6dd1250[4]), 4,11},
+ {&(_ZTV6dd1250[9]), 9,11},
+ {&(_tg__ZTV5cc250__6dd1250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd1250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+Class_Descriptor cd_dd1250 = { "dd1250", // class name
+ bases_dd1250, 3,
+ &(vtc_dd1250[0]), // expected_vtbl_contents
+ &(vtt_dd1250[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1250),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01250 : dd1250 {
+ int e;
+ ~ee01250(); // tgen
+ ee01250(); // tgen
+};
+//SIG(1 ee01250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01250 ::~ee01250(){ note_dtor("ee01250", this);} // tgen
+ee01250 ::ee01250(){ note_ctor("ee01250", this);} // tgen
+
+static void Test_ee01250()
+{
+ extern Class_Descriptor cd_ee01250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01250, buf);
+ ee01250 *dp, &lv = *(dp=new (buf) ee01250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee01250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee01250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(16,12), "ee01250");
+ check_base_class_offset(lv, (dd1250*), 0, "ee01250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01250.e");
+ test_class_info(&lv, &cd_ee01250);
+ dp->~ee01250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01250(Test_ee01250, "ee01250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01250C1Ev();
+extern void _ZN7ee01250D1Ev();
+Name_Map name_map_ee01250[] = {
+ NSPAIR(_ZN7ee01250C1Ev),
+ NSPAIR(_ZN7ee01250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee01250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee01250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01250[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee01250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee01250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee01250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee01250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01250[] = {
+ {&(_ZTV7ee01250[4]), 4,11},
+ {&(_tg__ZTV6dd1250__7ee01250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee01250[5]), 5,7},
+ {&(_ZTV7ee01250[9]), 9,11},
+ {&(_tg__ZTV5cc250__7ee01250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee01250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01250[];
+extern VTBL_ENTRY _ZTV7ee01250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01250[];
+Class_Descriptor cd_ee01250 = { "ee01250", // class name
+ bases_ee01250, 4,
+ &(vtc_ee01250[0]), // expected_vtbl_contents
+ &(vtt_ee01250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11250 : virtual dd1250 {
+ int e;
+ ~ee11250(); // tgen
+ ee11250(); // tgen
+};
+//SIG(1 ee11250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11250 ::~ee11250(){ note_dtor("ee11250", this);} // tgen
+ee11250 ::ee11250(){ note_ctor("ee11250", this);} // tgen
+
+static void Test_ee11250()
+{
+ extern Class_Descriptor cd_ee11250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11250, buf);
+ ee11250 *dp, &lv = *(dp=new (buf) ee11250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee11250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee11250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(32,16), "ee11250");
+ check_base_class_offset(lv, (dd1250*), ABISELECT(16,8), "ee11250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11250.e");
+ test_class_info(&lv, &cd_ee11250);
+ dp->~ee11250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11250(Test_ee11250, "ee11250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11250C1Ev();
+extern void _ZN7ee11250D1Ev();
+Name_Map name_map_ee11250[] = {
+ NSPAIR(_ZN7ee11250C1Ev),
+ NSPAIR(_ZN7ee11250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee11250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI7ee11250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee11250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11250[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11250[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee11250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee11250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee11250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee11250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11250[] = {
+ {&(_ZTV7ee11250[5]), 5,16},
+ {&(_ZTV7ee11250[9]), 9,16},
+ {&(_ZTV7ee11250[14]), 14,16},
+ {&(_tg__ZTV6dd1250__7ee11250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee11250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee11250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee11250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11250[];
+extern VTBL_ENTRY _ZTV7ee11250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11250[];
+Class_Descriptor cd_ee11250 = { "ee11250", // class name
+ bases_ee11250, 4,
+ &(vtc_ee11250[0]), // expected_vtbl_contents
+ &(vtt_ee11250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11250),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21250 : dd1250 {
+ int e;
+ virtual void foo(); // _ZN7ee212503fooEv
+ ~ee21250(); // tgen
+ ee21250(); // tgen
+};
+//SIG(1 ee21250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21250 ::foo(){vfunc_called(this, "_ZN7ee212503fooEv");}
+ee21250 ::~ee21250(){ note_dtor("ee21250", this);} // tgen
+ee21250 ::ee21250(){ note_ctor("ee21250", this);} // tgen
+
+static void Test_ee21250()
+{
+ extern Class_Descriptor cd_ee21250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21250, buf);
+ ee21250 *dp, &lv = *(dp=new (buf) ee21250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee21250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee21250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(16,12), "ee21250");
+ check_base_class_offset(lv, (dd1250*), 0, "ee21250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21250.e");
+ test_class_info(&lv, &cd_ee21250);
+ dp->~ee21250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21250(Test_ee21250, "ee21250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21250C1Ev();
+extern void _ZN7ee21250D1Ev();
+Name_Map name_map_ee21250[] = {
+ NSPAIR(_ZN7ee21250C1Ev),
+ NSPAIR(_ZN7ee21250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee21250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21250[];
+extern void _ZN7ee212503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee212503fooEv,_ZTv0_n20_N7ee212503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212503fooEv,_ZThn12_N7ee212503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21250[0]),
+ (VTBL_ENTRY)&_ZN7ee212503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee212503fooEv,_ZTv0_n20_N7ee212503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee21250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee21250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee21250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee21250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21250[] = {
+ {&(_ZTV7ee21250[4]), 4,12},
+ {&(_tg__ZTV6dd1250__7ee21250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee21250[5]), 5,7},
+ {&(_ZTV7ee21250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee21250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee21250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21250[];
+extern VTBL_ENTRY _ZTV7ee21250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21250[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee212503fooEv,_ZTv0_n20_N7ee212503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212503fooEv,_ZThn12_N7ee212503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21250 = { "ee21250", // class name
+ bases_ee21250, 4,
+ &(vtc_ee21250[0]), // expected_vtbl_contents
+ &(vtt_ee21250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names95,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31250 : virtual dd1250 {
+ int e;
+ virtual void foo(); // _ZN7ee312503fooEv
+ ~ee31250(); // tgen
+ ee31250(); // tgen
+};
+//SIG(1 ee31250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31250 ::foo(){vfunc_called(this, "_ZN7ee312503fooEv");}
+ee31250 ::~ee31250(){ note_dtor("ee31250", this);} // tgen
+ee31250 ::ee31250(){ note_ctor("ee31250", this);} // tgen
+
+static void Test_ee31250()
+{
+ extern Class_Descriptor cd_ee31250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31250, buf);
+ ee31250 *dp, &lv = *(dp=new (buf) ee31250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee31250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee31250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(32,16), "ee31250");
+ check_base_class_offset(lv, (dd1250*), ABISELECT(16,8), "ee31250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31250.e");
+ test_class_info(&lv, &cd_ee31250);
+ dp->~ee31250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31250(Test_ee31250, "ee31250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31250C1Ev();
+extern void _ZN7ee31250D1Ev();
+Name_Map name_map_ee31250[] = {
+ NSPAIR(_ZN7ee31250C1Ev),
+ NSPAIR(_ZN7ee31250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee31250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31250[];
+extern void _ZN7ee312503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee312503fooEv,_ZTv0_n20_N7ee312503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312503fooEv,_ZThn16_N7ee312503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31250[0]),
+ (VTBL_ENTRY)&_ZN7ee312503fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31250[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee312503fooEv,_ZTv0_n20_N7ee312503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee31250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee31250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee31250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee31250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31250[] = {
+ {&(_ZTV7ee31250[5]), 5,17},
+ {&(_ZTV7ee31250[10]), 10,17},
+ {&(_ZTV7ee31250[15]), 15,17},
+ {&(_tg__ZTV6dd1250__7ee31250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee31250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee31250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee31250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31250[];
+extern VTBL_ENTRY _ZTV7ee31250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31250[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee312503fooEv,_ZTv0_n20_N7ee312503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312503fooEv,_ZThn16_N7ee312503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31250 = { "ee31250", // class name
+ bases_ee31250, 4,
+ &(vtc_ee31250[0]), // expected_vtbl_contents
+ &(vtt_ee31250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31250),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names96,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41250 : dd1250 {
+ int e;
+ virtual void bar(); // _ZN7ee412503barEv
+ ~ee41250(); // tgen
+ ee41250(); // tgen
+};
+//SIG(1 ee41250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41250 ::bar(){vfunc_called(this, "_ZN7ee412503barEv");}
+ee41250 ::~ee41250(){ note_dtor("ee41250", this);} // tgen
+ee41250 ::ee41250(){ note_ctor("ee41250", this);} // tgen
+
+static void Test_ee41250()
+{
+ extern Class_Descriptor cd_ee41250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41250, buf);
+ ee41250 *dp, &lv = *(dp=new (buf) ee41250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee41250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee41250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(16,12), "ee41250");
+ check_base_class_offset(lv, (dd1250*), 0, "ee41250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41250.e");
+ test_class_info(&lv, &cd_ee41250);
+ dp->~ee41250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41250(Test_ee41250, "ee41250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41250C1Ev();
+extern void _ZN7ee41250D1Ev();
+Name_Map name_map_ee41250[] = {
+ NSPAIR(_ZN7ee41250C1Ev),
+ NSPAIR(_ZN7ee41250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee41250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41250[];
+extern void _ZN7ee412503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412503barEv,_ZTv0_n16_N7ee412503barEv)();
+extern void ABISELECT(_ZThn16_N7ee412503barEv,_ZThn12_N7ee412503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee41250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41250[0]),
+ (VTBL_ENTRY)&_ZN7ee412503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412503barEv,_ZTv0_n16_N7ee412503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee41250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee41250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee41250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee41250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41250[] = {
+ {&(_ZTV7ee41250[4]), 4,12},
+ {&(_tg__ZTV6dd1250__7ee41250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee41250[5]), 5,7},
+ {&(_ZTV7ee41250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee41250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee41250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41250[];
+extern VTBL_ENTRY _ZTV7ee41250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41250[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412503barEv,_ZTv0_n16_N7ee412503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412503barEv,_ZThn12_N7ee412503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41250 = { "ee41250", // class name
+ bases_ee41250, 4,
+ &(vtc_ee41250[0]), // expected_vtbl_contents
+ &(vtt_ee41250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names97,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51250 : virtual dd1250 {
+ int e;
+ virtual void bar(); // _ZN7ee512503barEv
+ ~ee51250(); // tgen
+ ee51250(); // tgen
+};
+//SIG(1 ee51250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51250 ::bar(){vfunc_called(this, "_ZN7ee512503barEv");}
+ee51250 ::~ee51250(){ note_dtor("ee51250", this);} // tgen
+ee51250 ::ee51250(){ note_ctor("ee51250", this);} // tgen
+
+static void Test_ee51250()
+{
+ extern Class_Descriptor cd_ee51250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51250, buf);
+ ee51250 *dp, &lv = *(dp=new (buf) ee51250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee51250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee51250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(32,16), "ee51250");
+ check_base_class_offset(lv, (dd1250*), ABISELECT(16,8), "ee51250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51250.e");
+ test_class_info(&lv, &cd_ee51250);
+ dp->~ee51250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51250(Test_ee51250, "ee51250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51250C1Ev();
+extern void _ZN7ee51250D1Ev();
+Name_Map name_map_ee51250[] = {
+ NSPAIR(_ZN7ee51250C1Ev),
+ NSPAIR(_ZN7ee51250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee51250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51250[];
+extern void _ZN7ee512503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512503barEv,_ZTv0_n16_N7ee512503barEv)();
+extern void ABISELECT(_ZThn32_N7ee512503barEv,_ZThn16_N7ee512503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee51250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51250[0]),
+ (VTBL_ENTRY)&_ZN7ee512503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51250[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512503barEv,_ZTv0_n16_N7ee512503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee51250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee51250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee51250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee51250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51250[] = {
+ {&(_ZTV7ee51250[5]), 5,17},
+ {&(_ZTV7ee51250[10]), 10,17},
+ {&(_ZTV7ee51250[15]), 15,17},
+ {&(_tg__ZTV6dd1250__7ee51250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee51250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee51250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee51250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51250[];
+extern VTBL_ENTRY _ZTV7ee51250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51250[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512503barEv,_ZTv0_n16_N7ee512503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512503barEv,_ZThn16_N7ee512503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51250 = { "ee51250", // class name
+ bases_ee51250, 4,
+ &(vtc_ee51250[0]), // expected_vtbl_contents
+ &(vtt_ee51250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51250),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names98,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61250 : dd1250 {
+ int e;
+ virtual void foo(); // _ZN7ee612503fooEv
+ virtual void bar(); // _ZN7ee612503barEv
+ ~ee61250(); // tgen
+ ee61250(); // tgen
+};
+//SIG(1 ee61250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61250 ::foo(){vfunc_called(this, "_ZN7ee612503fooEv");}
+void ee61250 ::bar(){vfunc_called(this, "_ZN7ee612503barEv");}
+ee61250 ::~ee61250(){ note_dtor("ee61250", this);} // tgen
+ee61250 ::ee61250(){ note_ctor("ee61250", this);} // tgen
+
+static void Test_ee61250()
+{
+ extern Class_Descriptor cd_ee61250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61250, buf);
+ ee61250 *dp, &lv = *(dp=new (buf) ee61250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee61250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee61250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(16,12), "ee61250");
+ check_base_class_offset(lv, (dd1250*), 0, "ee61250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61250.e");
+ test_class_info(&lv, &cd_ee61250);
+ dp->~ee61250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61250(Test_ee61250, "ee61250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61250C1Ev();
+extern void _ZN7ee61250D1Ev();
+Name_Map name_map_ee61250[] = {
+ NSPAIR(_ZN7ee61250C1Ev),
+ NSPAIR(_ZN7ee61250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee61250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61250[];
+extern void _ZN7ee612503fooEv();
+extern void _ZN7ee612503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee612503barEv,_ZTv0_n16_N7ee612503barEv)();
+extern void ABISELECT(_ZThn16_N7ee612503barEv,_ZThn12_N7ee612503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee612503fooEv,_ZTv0_n20_N7ee612503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612503fooEv,_ZThn12_N7ee612503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61250[0]),
+ (VTBL_ENTRY)&_ZN7ee612503fooEv,
+ (VTBL_ENTRY)&_ZN7ee612503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612503barEv,_ZTv0_n16_N7ee612503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee612503fooEv,_ZTv0_n20_N7ee612503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee61250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee61250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee61250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee61250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61250[] = {
+ {&(_ZTV7ee61250[4]), 4,13},
+ {&(_tg__ZTV6dd1250__7ee61250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee61250[5]), 5,7},
+ {&(_ZTV7ee61250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee61250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee61250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61250[];
+extern VTBL_ENTRY _ZTV7ee61250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61250[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee612503fooEv,_ZTv0_n20_N7ee612503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612503fooEv,_ZThn12_N7ee612503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612503barEv,_ZTv0_n16_N7ee612503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612503barEv,_ZThn12_N7ee612503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61250 = { "ee61250", // class name
+ bases_ee61250, 4,
+ &(vtc_ee61250[0]), // expected_vtbl_contents
+ &(vtt_ee61250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71250 : virtual dd1250 {
+ int e;
+ virtual void foo(); // _ZN7ee712503fooEv
+ virtual void bar(); // _ZN7ee712503barEv
+ ~ee71250(); // tgen
+ ee71250(); // tgen
+};
+//SIG(1 ee71250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71250 ::foo(){vfunc_called(this, "_ZN7ee712503fooEv");}
+void ee71250 ::bar(){vfunc_called(this, "_ZN7ee712503barEv");}
+ee71250 ::~ee71250(){ note_dtor("ee71250", this);} // tgen
+ee71250 ::ee71250(){ note_ctor("ee71250", this);} // tgen
+
+static void Test_ee71250()
+{
+ extern Class_Descriptor cd_ee71250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71250, buf);
+ ee71250 *dp, &lv = *(dp=new (buf) ee71250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee71250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee71250");
+ check_base_class_offset(lv, (cc250*)(dd1250*), ABISELECT(32,16), "ee71250");
+ check_base_class_offset(lv, (dd1250*), ABISELECT(16,8), "ee71250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71250.e");
+ test_class_info(&lv, &cd_ee71250);
+ dp->~ee71250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71250(Test_ee71250, "ee71250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71250C1Ev();
+extern void _ZN7ee71250D1Ev();
+Name_Map name_map_ee71250[] = {
+ NSPAIR(_ZN7ee71250C1Ev),
+ NSPAIR(_ZN7ee71250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd1250;
+extern VTBL_ENTRY _ZTI6dd1250[];
+extern VTBL_ENTRY _ZTV6dd1250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1250[];
+static Base_Class bases_ee71250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1250, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71250[];
+extern void _ZN7ee712503fooEv();
+extern void _ZN7ee712503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee712503barEv,_ZTv0_n16_N7ee712503barEv)();
+extern void ABISELECT(_ZThn32_N7ee712503barEv,_ZThn16_N7ee712503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee712503fooEv,_ZTv0_n20_N7ee712503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712503fooEv,_ZThn16_N7ee712503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71250[0]),
+ (VTBL_ENTRY)&_ZN7ee712503fooEv,
+ (VTBL_ENTRY)&_ZN7ee712503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71250[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712503barEv,_ZTv0_n16_N7ee712503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee712503fooEv,_ZTv0_n20_N7ee712503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71250[];
+static VTBL_ENTRY _tg__ZTV6dd1250__7ee71250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd1250__7ee71250[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee71250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee71250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71250[] = {
+ {&(_ZTV7ee71250[5]), 5,18},
+ {&(_ZTV7ee71250[11]), 11,18},
+ {&(_ZTV7ee71250[16]), 16,18},
+ {&(_tg__ZTV6dd1250__7ee71250[4]), 4,4},
+ {&(_tg__ZTV5cc250__6dd1250__7ee71250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee71250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee71250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71250[];
+extern VTBL_ENTRY _ZTV7ee71250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71250[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee712503fooEv,_ZTv0_n20_N7ee712503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712503fooEv,_ZThn16_N7ee712503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712503barEv,_ZTv0_n16_N7ee712503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712503barEv,_ZThn16_N7ee712503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71250 = { "ee71250", // class name
+ bases_ee71250, 4,
+ &(vtc_ee71250[0]), // expected_vtbl_contents
+ &(vtt_ee71250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71250),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2250 : cc250 {
+ int d;
+ virtual void foo(); // _ZN6dd22503fooEv
+ ~dd2250(); // tgen
+ dd2250(); // tgen
+};
+//SIG(-1 dd2250) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2250 ::foo(){vfunc_called(this, "_ZN6dd22503fooEv");}
+dd2250 ::~dd2250(){ note_dtor("dd2250", this);} // tgen
+dd2250 ::dd2250(){ note_ctor("dd2250", this);} // tgen
+
+static void Test_dd2250()
+{
+ extern Class_Descriptor cd_dd2250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2250, buf);
+ dd2250 *dp, &lv = *(dp=new (buf) dd2250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(20,16), "dd2250");
+ check_base_class_offset(lv, (bb50*)(cc250*), 0, "dd2250");
+ check_base_class_offset(lv, (cc250*), 0, "dd2250");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2250.d");
+ test_class_info(&lv, &cd_dd2250);
+ dp->~dd2250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2250(Test_dd2250, "dd2250", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2250C1Ev();
+extern void _ZN6dd2250D1Ev();
+Name_Map name_map_dd2250[] = {
+ NSPAIR(_ZN6dd2250C1Ev),
+ NSPAIR(_ZN6dd2250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd2250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY vtc_dd2250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd2250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd2250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2250[] = {
+ {&(_ZTV6dd2250[3]), 3,5},
+ {&(_tg__ZTV5cc250__6dd2250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd2250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+Class_Descriptor cd_dd2250 = { "dd2250", // class name
+ bases_dd2250, 3,
+ &(vtc_dd2250[0]), // expected_vtbl_contents
+ &(vtt_dd2250[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2250),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02250 : dd2250 {
+ int e;
+ ~ee02250(); // tgen
+ ee02250(); // tgen
+};
+//SIG(1 ee02250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02250 ::~ee02250(){ note_dtor("ee02250", this);} // tgen
+ee02250 ::ee02250(){ note_ctor("ee02250", this);} // tgen
+
+static void Test_ee02250()
+{
+ extern Class_Descriptor cd_ee02250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02250, buf);
+ ee02250 *dp, &lv = *(dp=new (buf) ee02250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(24,20), "ee02250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), 0, "ee02250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), 0, "ee02250");
+ check_base_class_offset(lv, (dd2250*), 0, "ee02250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02250.e");
+ test_class_info(&lv, &cd_ee02250);
+ dp->~ee02250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02250(Test_ee02250, "ee02250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02250C1Ev();
+extern void _ZN7ee02250D1Ev();
+Name_Map name_map_ee02250[] = {
+ NSPAIR(_ZN7ee02250C1Ev),
+ NSPAIR(_ZN7ee02250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee02250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY vtc_ee02250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee02250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee02250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee02250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02250[] = {
+ {&(_ZTV7ee02250[3]), 3,5},
+ {&(_tg__ZTV6dd2250__7ee02250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee02250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee02250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02250[];
+extern VTBL_ENTRY _ZTV7ee02250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02250[];
+Class_Descriptor cd_ee02250 = { "ee02250", // class name
+ bases_ee02250, 4,
+ &(vtc_ee02250[0]), // expected_vtbl_contents
+ &(vtt_ee02250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12250 : virtual dd2250 {
+ int e;
+ ~ee12250(); // tgen
+ ee12250(); // tgen
+};
+//SIG(1 ee12250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12250 ::~ee12250(){ note_dtor("ee12250", this);} // tgen
+ee12250 ::ee12250(){ note_ctor("ee12250", this);} // tgen
+
+static void Test_ee12250()
+{
+ extern Class_Descriptor cd_ee12250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12250, buf);
+ ee12250 *dp, &lv = *(dp=new (buf) ee12250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(36,24), "ee12250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), ABISELECT(16,8), "ee12250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), ABISELECT(16,8), "ee12250");
+ check_base_class_offset(lv, (dd2250*), ABISELECT(16,8), "ee12250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12250.e");
+ test_class_info(&lv, &cd_ee12250);
+ dp->~ee12250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12250(Test_ee12250, "ee12250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12250C1Ev();
+extern void _ZN7ee12250D1Ev();
+Name_Map name_map_ee12250[] = {
+ NSPAIR(_ZN7ee12250C1Ev),
+ NSPAIR(_ZN7ee12250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee12250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY vtc_ee12250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12250[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee12250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee12250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee12250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12250[] = {
+ {&(_ZTV7ee12250[4]), 4,11},
+ {&(_ZTV7ee12250[9]), 9,11},
+ {&(_tg__ZTV6dd2250__7ee12250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee12250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee12250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12250[];
+extern VTBL_ENTRY _ZTV7ee12250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12250[];
+Class_Descriptor cd_ee12250 = { "ee12250", // class name
+ bases_ee12250, 4,
+ &(vtc_ee12250[0]), // expected_vtbl_contents
+ &(vtt_ee12250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22250 : dd2250 {
+ int e;
+ virtual void foo(); // _ZN7ee222503fooEv
+ ~ee22250(); // tgen
+ ee22250(); // tgen
+};
+//SIG(1 ee22250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22250 ::foo(){vfunc_called(this, "_ZN7ee222503fooEv");}
+ee22250 ::~ee22250(){ note_dtor("ee22250", this);} // tgen
+ee22250 ::ee22250(){ note_ctor("ee22250", this);} // tgen
+
+static void Test_ee22250()
+{
+ extern Class_Descriptor cd_ee22250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22250, buf);
+ ee22250 *dp, &lv = *(dp=new (buf) ee22250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(24,20), "ee22250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), 0, "ee22250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), 0, "ee22250");
+ check_base_class_offset(lv, (dd2250*), 0, "ee22250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22250.e");
+ test_class_info(&lv, &cd_ee22250);
+ dp->~ee22250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22250(Test_ee22250, "ee22250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22250C1Ev();
+extern void _ZN7ee22250D1Ev();
+Name_Map name_map_ee22250[] = {
+ NSPAIR(_ZN7ee22250C1Ev),
+ NSPAIR(_ZN7ee22250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee22250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22250[];
+extern void _ZN4bb503barEv();
+extern void _ZN7ee222503fooEv();
+static VTBL_ENTRY vtc_ee22250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN7ee222503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee22250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee22250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee22250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22250[] = {
+ {&(_ZTV7ee22250[3]), 3,5},
+ {&(_tg__ZTV6dd2250__7ee22250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee22250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee22250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22250[];
+extern VTBL_ENTRY _ZTV7ee22250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22250[];
+Class_Descriptor cd_ee22250 = { "ee22250", // class name
+ bases_ee22250, 4,
+ &(vtc_ee22250[0]), // expected_vtbl_contents
+ &(vtt_ee22250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32250 : virtual dd2250 {
+ int e;
+ virtual void foo(); // _ZN7ee322503fooEv
+ ~ee32250(); // tgen
+ ee32250(); // tgen
+};
+//SIG(1 ee32250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32250 ::foo(){vfunc_called(this, "_ZN7ee322503fooEv");}
+ee32250 ::~ee32250(){ note_dtor("ee32250", this);} // tgen
+ee32250 ::ee32250(){ note_ctor("ee32250", this);} // tgen
+
+static void Test_ee32250()
+{
+ extern Class_Descriptor cd_ee32250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32250, buf);
+ ee32250 *dp, &lv = *(dp=new (buf) ee32250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(36,24), "ee32250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), ABISELECT(16,8), "ee32250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), ABISELECT(16,8), "ee32250");
+ check_base_class_offset(lv, (dd2250*), ABISELECT(16,8), "ee32250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32250.e");
+ test_class_info(&lv, &cd_ee32250);
+ dp->~ee32250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32250(Test_ee32250, "ee32250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32250C1Ev();
+extern void _ZN7ee32250D1Ev();
+Name_Map name_map_ee32250[] = {
+ NSPAIR(_ZN7ee32250C1Ev),
+ NSPAIR(_ZN7ee32250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee32250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32250[];
+extern void _ZN7ee322503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee322503fooEv,_ZTv0_n20_N7ee322503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322503fooEv,_ZThn8_N7ee322503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32250[0]),
+ (VTBL_ENTRY)&_ZN7ee322503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee322503fooEv,_ZTv0_n20_N7ee322503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee32250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee32250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee32250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32250[] = {
+ {&(_ZTV7ee32250[4]), 4,12},
+ {&(_ZTV7ee32250[10]), 10,12},
+ {&(_tg__ZTV6dd2250__7ee32250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee32250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee32250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32250[];
+extern VTBL_ENTRY _ZTV7ee32250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32250[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee322503fooEv,_ZTv0_n20_N7ee322503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322503fooEv,_ZThn8_N7ee322503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32250 = { "ee32250", // class name
+ bases_ee32250, 4,
+ &(vtc_ee32250[0]), // expected_vtbl_contents
+ &(vtt_ee32250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42250 : dd2250 {
+ int e;
+ virtual void bar(); // _ZN7ee422503barEv
+ ~ee42250(); // tgen
+ ee42250(); // tgen
+};
+//SIG(1 ee42250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42250 ::bar(){vfunc_called(this, "_ZN7ee422503barEv");}
+ee42250 ::~ee42250(){ note_dtor("ee42250", this);} // tgen
+ee42250 ::ee42250(){ note_ctor("ee42250", this);} // tgen
+
+static void Test_ee42250()
+{
+ extern Class_Descriptor cd_ee42250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42250, buf);
+ ee42250 *dp, &lv = *(dp=new (buf) ee42250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(24,20), "ee42250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), 0, "ee42250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), 0, "ee42250");
+ check_base_class_offset(lv, (dd2250*), 0, "ee42250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42250.e");
+ test_class_info(&lv, &cd_ee42250);
+ dp->~ee42250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42250(Test_ee42250, "ee42250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42250C1Ev();
+extern void _ZN7ee42250D1Ev();
+Name_Map name_map_ee42250[] = {
+ NSPAIR(_ZN7ee42250C1Ev),
+ NSPAIR(_ZN7ee42250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee42250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42250[];
+extern void _ZN7ee422503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY vtc_ee42250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42250[0]),
+ (VTBL_ENTRY)&_ZN7ee422503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee42250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee42250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee42250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee42250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42250[] = {
+ {&(_ZTV7ee42250[3]), 3,5},
+ {&(_tg__ZTV6dd2250__7ee42250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee42250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee42250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42250[];
+extern VTBL_ENTRY _ZTV7ee42250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42250[];
+Class_Descriptor cd_ee42250 = { "ee42250", // class name
+ bases_ee42250, 4,
+ &(vtc_ee42250[0]), // expected_vtbl_contents
+ &(vtt_ee42250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52250 : virtual dd2250 {
+ int e;
+ virtual void bar(); // _ZN7ee522503barEv
+ ~ee52250(); // tgen
+ ee52250(); // tgen
+};
+//SIG(1 ee52250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52250 ::bar(){vfunc_called(this, "_ZN7ee522503barEv");}
+ee52250 ::~ee52250(){ note_dtor("ee52250", this);} // tgen
+ee52250 ::ee52250(){ note_ctor("ee52250", this);} // tgen
+
+static void Test_ee52250()
+{
+ extern Class_Descriptor cd_ee52250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52250, buf);
+ ee52250 *dp, &lv = *(dp=new (buf) ee52250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(36,24), "ee52250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), ABISELECT(16,8), "ee52250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), ABISELECT(16,8), "ee52250");
+ check_base_class_offset(lv, (dd2250*), ABISELECT(16,8), "ee52250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52250.e");
+ test_class_info(&lv, &cd_ee52250);
+ dp->~ee52250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52250(Test_ee52250, "ee52250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52250C1Ev();
+extern void _ZN7ee52250D1Ev();
+Name_Map name_map_ee52250[] = {
+ NSPAIR(_ZN7ee52250C1Ev),
+ NSPAIR(_ZN7ee52250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee52250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52250[];
+extern void _ZN7ee522503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522503barEv,_ZTv0_n16_N7ee522503barEv)();
+extern void ABISELECT(_ZThn16_N7ee522503barEv,_ZThn8_N7ee522503barEv)() __attribute__((weak));
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY vtc_ee52250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52250[0]),
+ (VTBL_ENTRY)&_ZN7ee522503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522503barEv,_ZTv0_n16_N7ee522503barEv),
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee52250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee52250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee52250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52250[] = {
+ {&(_ZTV7ee52250[4]), 4,12},
+ {&(_ZTV7ee52250[10]), 10,12},
+ {&(_tg__ZTV6dd2250__7ee52250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee52250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee52250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52250[];
+extern VTBL_ENTRY _ZTV7ee52250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52250[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522503barEv,_ZTv0_n16_N7ee522503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522503barEv,_ZThn8_N7ee522503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52250 = { "ee52250", // class name
+ bases_ee52250, 4,
+ &(vtc_ee52250[0]), // expected_vtbl_contents
+ &(vtt_ee52250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62250 : dd2250 {
+ int e;
+ virtual void foo(); // _ZN7ee622503fooEv
+ virtual void bar(); // _ZN7ee622503barEv
+ ~ee62250(); // tgen
+ ee62250(); // tgen
+};
+//SIG(1 ee62250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62250 ::foo(){vfunc_called(this, "_ZN7ee622503fooEv");}
+void ee62250 ::bar(){vfunc_called(this, "_ZN7ee622503barEv");}
+ee62250 ::~ee62250(){ note_dtor("ee62250", this);} // tgen
+ee62250 ::ee62250(){ note_ctor("ee62250", this);} // tgen
+
+static void Test_ee62250()
+{
+ extern Class_Descriptor cd_ee62250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62250, buf);
+ ee62250 *dp, &lv = *(dp=new (buf) ee62250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(24,20), "ee62250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), 0, "ee62250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), 0, "ee62250");
+ check_base_class_offset(lv, (dd2250*), 0, "ee62250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62250.e");
+ test_class_info(&lv, &cd_ee62250);
+ dp->~ee62250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62250(Test_ee62250, "ee62250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62250C1Ev();
+extern void _ZN7ee62250D1Ev();
+Name_Map name_map_ee62250[] = {
+ NSPAIR(_ZN7ee62250C1Ev),
+ NSPAIR(_ZN7ee62250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee62250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62250[];
+extern void _ZN7ee622503barEv();
+extern void _ZN7ee622503fooEv();
+static VTBL_ENTRY vtc_ee62250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62250[0]),
+ (VTBL_ENTRY)&_ZN7ee622503barEv,
+ (VTBL_ENTRY)&_ZN7ee622503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee62250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee62250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee62250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee62250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62250[] = {
+ {&(_ZTV7ee62250[3]), 3,5},
+ {&(_tg__ZTV6dd2250__7ee62250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee62250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee62250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62250[];
+extern VTBL_ENTRY _ZTV7ee62250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62250[];
+Class_Descriptor cd_ee62250 = { "ee62250", // class name
+ bases_ee62250, 4,
+ &(vtc_ee62250[0]), // expected_vtbl_contents
+ &(vtt_ee62250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72250 : virtual dd2250 {
+ int e;
+ virtual void foo(); // _ZN7ee722503fooEv
+ virtual void bar(); // _ZN7ee722503barEv
+ ~ee72250(); // tgen
+ ee72250(); // tgen
+};
+//SIG(1 ee72250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72250 ::foo(){vfunc_called(this, "_ZN7ee722503fooEv");}
+void ee72250 ::bar(){vfunc_called(this, "_ZN7ee722503barEv");}
+ee72250 ::~ee72250(){ note_dtor("ee72250", this);} // tgen
+ee72250 ::ee72250(){ note_ctor("ee72250", this);} // tgen
+
+static void Test_ee72250()
+{
+ extern Class_Descriptor cd_ee72250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72250, buf);
+ ee72250 *dp, &lv = *(dp=new (buf) ee72250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd2250*), ABISELECT(36,24), "ee72250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd2250*), ABISELECT(16,8), "ee72250");
+ check_base_class_offset(lv, (cc250*)(dd2250*), ABISELECT(16,8), "ee72250");
+ check_base_class_offset(lv, (dd2250*), ABISELECT(16,8), "ee72250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72250.e");
+ test_class_info(&lv, &cd_ee72250);
+ dp->~ee72250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72250(Test_ee72250, "ee72250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72250C1Ev();
+extern void _ZN7ee72250D1Ev();
+Name_Map name_map_ee72250[] = {
+ NSPAIR(_ZN7ee72250C1Ev),
+ NSPAIR(_ZN7ee72250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd2250;
+extern VTBL_ENTRY _ZTI6dd2250[];
+extern VTBL_ENTRY _ZTV6dd2250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2250[];
+static Base_Class bases_ee72250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72250[];
+extern void _ZN7ee722503fooEv();
+extern void _ZN7ee722503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee722503barEv,_ZTv0_n16_N7ee722503barEv)();
+extern void ABISELECT(_ZThn16_N7ee722503barEv,_ZThn8_N7ee722503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee722503fooEv,_ZTv0_n20_N7ee722503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722503fooEv,_ZThn8_N7ee722503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72250[0]),
+ (VTBL_ENTRY)&_ZN7ee722503fooEv,
+ (VTBL_ENTRY)&_ZN7ee722503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722503barEv,_ZTv0_n16_N7ee722503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee722503fooEv,_ZTv0_n20_N7ee722503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72250[];
+extern void _ZN4bb503barEv();
+extern void _ZN6dd22503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2250__7ee72250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN6dd22503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd2250__7ee72250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd2250__7ee72250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72250[] = {
+ {&(_ZTV7ee72250[4]), 4,13},
+ {&(_ZTV7ee72250[11]), 11,13},
+ {&(_tg__ZTV6dd2250__7ee72250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd2250__7ee72250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd2250__7ee72250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72250[];
+extern VTBL_ENTRY _ZTV7ee72250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72250[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee722503fooEv,_ZTv0_n20_N7ee722503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722503fooEv,_ZThn8_N7ee722503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722503barEv,_ZTv0_n16_N7ee722503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722503barEv,_ZThn8_N7ee722503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72250 = { "ee72250", // class name
+ bases_ee72250, 4,
+ &(vtc_ee72250[0]), // expected_vtbl_contents
+ &(vtt_ee72250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3250 : virtual cc250 {
+ int d;
+ virtual void foo(); // _ZN6dd32503fooEv
+ ~dd3250(); // tgen
+ dd3250(); // tgen
+};
+//SIG(-1 dd3250) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3250 ::foo(){vfunc_called(this, "_ZN6dd32503fooEv");}
+dd3250 ::~dd3250(){ note_dtor("dd3250", this);} // tgen
+dd3250 ::dd3250(){ note_ctor("dd3250", this);} // tgen
+
+static void Test_dd3250()
+{
+ extern Class_Descriptor cd_dd3250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3250, buf);
+ dd3250 *dp, &lv = *(dp=new (buf) dd3250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,20), "dd3250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,8), "dd3250");
+ check_base_class_offset(lv, (cc250*), ABISELECT(16,8), "dd3250");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3250.d");
+ test_class_info(&lv, &cd_dd3250);
+ dp->~dd3250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3250(Test_dd3250, "dd3250", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3250C1Ev();
+extern void _ZN6dd3250D1Ev();
+Name_Map name_map_dd3250[] = {
+ NSPAIR(_ZN6dd3250C1Ev),
+ NSPAIR(_ZN6dd3250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd3250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern void _ZN6dd32503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd3250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3250[] = {
+ {&(_ZTV6dd3250[4]), 4,12},
+ {&(_ZTV6dd3250[10]), 10,12},
+ {&(_tg__ZTV5cc250__6dd3250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd3250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3250 = { "dd3250", // class name
+ bases_dd3250, 3,
+ &(vtc_dd3250[0]), // expected_vtbl_contents
+ &(vtt_dd3250[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3250),4, //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 ee03250 : dd3250 {
+ int e;
+ ~ee03250(); // tgen
+ ee03250(); // tgen
+};
+//SIG(1 ee03250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03250 ::~ee03250(){ note_dtor("ee03250", this);} // tgen
+ee03250 ::ee03250(){ note_ctor("ee03250", this);} // tgen
+
+static void Test_ee03250()
+{
+ extern Class_Descriptor cd_ee03250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03250, buf);
+ ee03250 *dp, &lv = *(dp=new (buf) ee03250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee03250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee03250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(16,12), "ee03250");
+ check_base_class_offset(lv, (dd3250*), 0, "ee03250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03250.e");
+ test_class_info(&lv, &cd_ee03250);
+ dp->~ee03250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03250(Test_ee03250, "ee03250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03250C1Ev();
+extern void _ZN7ee03250D1Ev();
+Name_Map name_map_ee03250[] = {
+ NSPAIR(_ZN7ee03250C1Ev),
+ NSPAIR(_ZN7ee03250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee03250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03250[];
+extern void _ZN6dd32503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee03250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee03250[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee03250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee03250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03250[] = {
+ {&(_ZTV7ee03250[4]), 4,12},
+ {&(_tg__ZTV6dd3250__7ee03250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee03250[5]), 5,7},
+ {&(_ZTV7ee03250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee03250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee03250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03250[];
+extern VTBL_ENTRY _ZTV7ee03250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03250[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03250 = { "ee03250", // class name
+ bases_ee03250, 4,
+ &(vtc_ee03250[0]), // expected_vtbl_contents
+ &(vtt_ee03250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13250 : virtual dd3250 {
+ int e;
+ ~ee13250(); // tgen
+ ee13250(); // tgen
+};
+//SIG(1 ee13250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13250 ::~ee13250(){ note_dtor("ee13250", this);} // tgen
+ee13250 ::ee13250(){ note_ctor("ee13250", this);} // tgen
+
+static void Test_ee13250()
+{
+ extern Class_Descriptor cd_ee13250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13250, buf);
+ ee13250 *dp, &lv = *(dp=new (buf) ee13250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee13250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee13250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(32,16), "ee13250");
+ check_base_class_offset(lv, (dd3250*), ABISELECT(16,8), "ee13250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13250.e");
+ test_class_info(&lv, &cd_ee13250);
+ dp->~ee13250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13250(Test_ee13250, "ee13250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13250C1Ev();
+extern void _ZN7ee13250D1Ev();
+Name_Map name_map_ee13250[] = {
+ NSPAIR(_ZN7ee13250C1Ev),
+ NSPAIR(_ZN7ee13250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee13250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee13250[];
+extern void _ZN6dd32503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13250[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee13250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee13250[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee13250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee13250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13250[] = {
+ {&(_ZTV7ee13250[5]), 5,18},
+ {&(_ZTV7ee13250[10]), 10,18},
+ {&(_ZTV7ee13250[16]), 16,18},
+ {&(_tg__ZTV6dd3250__7ee13250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee13250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee13250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee13250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13250[];
+extern VTBL_ENTRY _ZTV7ee13250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13250[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13250 = { "ee13250", // class name
+ bases_ee13250, 4,
+ &(vtc_ee13250[0]), // expected_vtbl_contents
+ &(vtt_ee13250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13250),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23250 : dd3250 {
+ int e;
+ virtual void foo(); // _ZN7ee232503fooEv
+ ~ee23250(); // tgen
+ ee23250(); // tgen
+};
+//SIG(1 ee23250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23250 ::foo(){vfunc_called(this, "_ZN7ee232503fooEv");}
+ee23250 ::~ee23250(){ note_dtor("ee23250", this);} // tgen
+ee23250 ::ee23250(){ note_ctor("ee23250", this);} // tgen
+
+static void Test_ee23250()
+{
+ extern Class_Descriptor cd_ee23250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23250, buf);
+ ee23250 *dp, &lv = *(dp=new (buf) ee23250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee23250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee23250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(16,12), "ee23250");
+ check_base_class_offset(lv, (dd3250*), 0, "ee23250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23250.e");
+ test_class_info(&lv, &cd_ee23250);
+ dp->~ee23250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23250(Test_ee23250, "ee23250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23250C1Ev();
+extern void _ZN7ee23250D1Ev();
+Name_Map name_map_ee23250[] = {
+ NSPAIR(_ZN7ee23250C1Ev),
+ NSPAIR(_ZN7ee23250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee23250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23250[];
+extern void _ZN7ee232503fooEv();
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee232503fooEv,_ZTv0_n20_N7ee232503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232503fooEv,_ZThn12_N7ee232503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23250[0]),
+ (VTBL_ENTRY)&_ZN7ee232503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee232503fooEv,_ZTv0_n20_N7ee232503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee23250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee23250[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee23250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee23250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23250[] = {
+ {&(_ZTV7ee23250[4]), 4,12},
+ {&(_tg__ZTV6dd3250__7ee23250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee23250[5]), 5,7},
+ {&(_ZTV7ee23250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee23250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee23250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23250[];
+extern VTBL_ENTRY _ZTV7ee23250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23250[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee232503fooEv,_ZTv0_n20_N7ee232503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232503fooEv,_ZThn12_N7ee232503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23250 = { "ee23250", // class name
+ bases_ee23250, 4,
+ &(vtc_ee23250[0]), // expected_vtbl_contents
+ &(vtt_ee23250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33250 : virtual dd3250 {
+ int e;
+ virtual void foo(); // _ZN7ee332503fooEv
+ ~ee33250(); // tgen
+ ee33250(); // tgen
+};
+//SIG(1 ee33250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33250 ::foo(){vfunc_called(this, "_ZN7ee332503fooEv");}
+ee33250 ::~ee33250(){ note_dtor("ee33250", this);} // tgen
+ee33250 ::ee33250(){ note_ctor("ee33250", this);} // tgen
+
+static void Test_ee33250()
+{
+ extern Class_Descriptor cd_ee33250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33250, buf);
+ ee33250 *dp, &lv = *(dp=new (buf) ee33250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee33250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee33250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(32,16), "ee33250");
+ check_base_class_offset(lv, (dd3250*), ABISELECT(16,8), "ee33250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33250.e");
+ test_class_info(&lv, &cd_ee33250);
+ dp->~ee33250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33250(Test_ee33250, "ee33250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33250C1Ev();
+extern void _ZN7ee33250D1Ev();
+Name_Map name_map_ee33250[] = {
+ NSPAIR(_ZN7ee33250C1Ev),
+ NSPAIR(_ZN7ee33250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee33250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee33250[];
+extern void _ZN7ee332503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332503fooEv,_ZTv0_n20_N7ee332503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332503fooEv,_ZThn8_N7ee332503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332503fooEv,_ZTv0_n20_N7ee332503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332503fooEv,_ZThn16_N7ee332503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33250[0]),
+ (VTBL_ENTRY)&_ZN7ee332503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332503fooEv,_ZTv0_n20_N7ee332503fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332503fooEv,_ZTv0_n20_N7ee332503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee33250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee33250[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee33250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee33250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33250[] = {
+ {&(_ZTV7ee33250[5]), 5,19},
+ {&(_ZTV7ee33250[11]), 11,19},
+ {&(_ZTV7ee33250[17]), 17,19},
+ {&(_tg__ZTV6dd3250__7ee33250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee33250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee33250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee33250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33250[];
+extern VTBL_ENTRY _ZTV7ee33250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33250[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee332503fooEv,_ZTv0_n20_N7ee332503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332503fooEv,_ZThn16_N7ee332503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332503fooEv,_ZThn8_N7ee332503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33250 = { "ee33250", // class name
+ bases_ee33250, 4,
+ &(vtc_ee33250[0]), // expected_vtbl_contents
+ &(vtt_ee33250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33250),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43250 : dd3250 {
+ int e;
+ virtual void bar(); // _ZN7ee432503barEv
+ ~ee43250(); // tgen
+ ee43250(); // tgen
+};
+//SIG(1 ee43250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43250 ::bar(){vfunc_called(this, "_ZN7ee432503barEv");}
+ee43250 ::~ee43250(){ note_dtor("ee43250", this);} // tgen
+ee43250 ::ee43250(){ note_ctor("ee43250", this);} // tgen
+
+static void Test_ee43250()
+{
+ extern Class_Descriptor cd_ee43250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43250, buf);
+ ee43250 *dp, &lv = *(dp=new (buf) ee43250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee43250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee43250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(16,12), "ee43250");
+ check_base_class_offset(lv, (dd3250*), 0, "ee43250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43250.e");
+ test_class_info(&lv, &cd_ee43250);
+ dp->~ee43250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43250(Test_ee43250, "ee43250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43250C1Ev();
+extern void _ZN7ee43250D1Ev();
+Name_Map name_map_ee43250[] = {
+ NSPAIR(_ZN7ee43250C1Ev),
+ NSPAIR(_ZN7ee43250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee43250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43250[];
+extern void _ZN6dd32503fooEv();
+extern void _ZN7ee432503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee432503barEv,_ZTv0_n16_N7ee432503barEv)();
+extern void ABISELECT(_ZThn16_N7ee432503barEv,_ZThn12_N7ee432503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+ (VTBL_ENTRY)&_ZN7ee432503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432503barEv,_ZTv0_n16_N7ee432503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee43250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee43250[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee43250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee43250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43250[] = {
+ {&(_ZTV7ee43250[4]), 4,13},
+ {&(_tg__ZTV6dd3250__7ee43250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee43250[5]), 5,7},
+ {&(_ZTV7ee43250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee43250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee43250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43250[];
+extern VTBL_ENTRY _ZTV7ee43250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43250[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432503barEv,_ZTv0_n16_N7ee432503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432503barEv,_ZThn12_N7ee432503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43250 = { "ee43250", // class name
+ bases_ee43250, 4,
+ &(vtc_ee43250[0]), // expected_vtbl_contents
+ &(vtt_ee43250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53250 : virtual dd3250 {
+ int e;
+ virtual void bar(); // _ZN7ee532503barEv
+ ~ee53250(); // tgen
+ ee53250(); // tgen
+};
+//SIG(1 ee53250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53250 ::bar(){vfunc_called(this, "_ZN7ee532503barEv");}
+ee53250 ::~ee53250(){ note_dtor("ee53250", this);} // tgen
+ee53250 ::ee53250(){ note_ctor("ee53250", this);} // tgen
+
+static void Test_ee53250()
+{
+ extern Class_Descriptor cd_ee53250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53250, buf);
+ ee53250 *dp, &lv = *(dp=new (buf) ee53250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee53250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee53250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(32,16), "ee53250");
+ check_base_class_offset(lv, (dd3250*), ABISELECT(16,8), "ee53250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53250.e");
+ test_class_info(&lv, &cd_ee53250);
+ dp->~ee53250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53250(Test_ee53250, "ee53250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53250C1Ev();
+extern void _ZN7ee53250D1Ev();
+Name_Map name_map_ee53250[] = {
+ NSPAIR(_ZN7ee53250C1Ev),
+ NSPAIR(_ZN7ee53250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee53250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee53250[];
+extern void _ZN7ee532503barEv();
+extern void _ZN6dd32503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee532503barEv,_ZTv0_n16_N7ee532503barEv)();
+extern void ABISELECT(_ZThn32_N7ee532503barEv,_ZThn16_N7ee532503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53250[0]),
+ (VTBL_ENTRY)&_ZN7ee532503barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532503barEv,_ZTv0_n16_N7ee532503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee53250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee53250[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee53250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee53250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53250[] = {
+ {&(_ZTV7ee53250[5]), 5,19},
+ {&(_ZTV7ee53250[11]), 11,19},
+ {&(_ZTV7ee53250[17]), 17,19},
+ {&(_tg__ZTV6dd3250__7ee53250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee53250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee53250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee53250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53250[];
+extern VTBL_ENTRY _ZTV7ee53250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53250[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532503barEv,_ZTv0_n16_N7ee532503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532503barEv,_ZThn16_N7ee532503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53250 = { "ee53250", // class name
+ bases_ee53250, 4,
+ &(vtc_ee53250[0]), // expected_vtbl_contents
+ &(vtt_ee53250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53250),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63250 : dd3250 {
+ int e;
+ virtual void foo(); // _ZN7ee632503fooEv
+ virtual void bar(); // _ZN7ee632503barEv
+ ~ee63250(); // tgen
+ ee63250(); // tgen
+};
+//SIG(1 ee63250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63250 ::foo(){vfunc_called(this, "_ZN7ee632503fooEv");}
+void ee63250 ::bar(){vfunc_called(this, "_ZN7ee632503barEv");}
+ee63250 ::~ee63250(){ note_dtor("ee63250", this);} // tgen
+ee63250 ::ee63250(){ note_ctor("ee63250", this);} // tgen
+
+static void Test_ee63250()
+{
+ extern Class_Descriptor cd_ee63250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63250, buf);
+ ee63250 *dp, &lv = *(dp=new (buf) ee63250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee63250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee63250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(16,12), "ee63250");
+ check_base_class_offset(lv, (dd3250*), 0, "ee63250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63250.e");
+ test_class_info(&lv, &cd_ee63250);
+ dp->~ee63250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63250(Test_ee63250, "ee63250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63250C1Ev();
+extern void _ZN7ee63250D1Ev();
+Name_Map name_map_ee63250[] = {
+ NSPAIR(_ZN7ee63250C1Ev),
+ NSPAIR(_ZN7ee63250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee63250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63250[];
+extern void _ZN7ee632503fooEv();
+extern void _ZN7ee632503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee632503barEv,_ZTv0_n16_N7ee632503barEv)();
+extern void ABISELECT(_ZThn16_N7ee632503barEv,_ZThn12_N7ee632503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee632503fooEv,_ZTv0_n20_N7ee632503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632503fooEv,_ZThn12_N7ee632503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63250[0]),
+ (VTBL_ENTRY)&_ZN7ee632503fooEv,
+ (VTBL_ENTRY)&_ZN7ee632503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632503barEv,_ZTv0_n16_N7ee632503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee632503fooEv,_ZTv0_n20_N7ee632503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee63250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee63250[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee63250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee63250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63250[] = {
+ {&(_ZTV7ee63250[4]), 4,13},
+ {&(_tg__ZTV6dd3250__7ee63250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee63250[5]), 5,7},
+ {&(_ZTV7ee63250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee63250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee63250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63250[];
+extern VTBL_ENTRY _ZTV7ee63250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63250[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn12_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee632503fooEv,_ZTv0_n20_N7ee632503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632503fooEv,_ZThn12_N7ee632503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632503barEv,_ZTv0_n16_N7ee632503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632503barEv,_ZThn12_N7ee632503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63250 = { "ee63250", // class name
+ bases_ee63250, 4,
+ &(vtc_ee63250[0]), // expected_vtbl_contents
+ &(vtt_ee63250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73250 : virtual dd3250 {
+ int e;
+ virtual void foo(); // _ZN7ee732503fooEv
+ virtual void bar(); // _ZN7ee732503barEv
+ ~ee73250(); // tgen
+ ee73250(); // tgen
+};
+//SIG(1 ee73250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73250 ::foo(){vfunc_called(this, "_ZN7ee732503fooEv");}
+void ee73250 ::bar(){vfunc_called(this, "_ZN7ee732503barEv");}
+ee73250 ::~ee73250(){ note_dtor("ee73250", this);} // tgen
+ee73250 ::ee73250(){ note_ctor("ee73250", this);} // tgen
+
+static void Test_ee73250()
+{
+ extern Class_Descriptor cd_ee73250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73250, buf);
+ ee73250 *dp, &lv = *(dp=new (buf) ee73250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee73250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee73250");
+ check_base_class_offset(lv, (cc250*)(dd3250*), ABISELECT(32,16), "ee73250");
+ check_base_class_offset(lv, (dd3250*), ABISELECT(16,8), "ee73250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73250.e");
+ test_class_info(&lv, &cd_ee73250);
+ dp->~ee73250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73250(Test_ee73250, "ee73250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73250C1Ev();
+extern void _ZN7ee73250D1Ev();
+Name_Map name_map_ee73250[] = {
+ NSPAIR(_ZN7ee73250C1Ev),
+ NSPAIR(_ZN7ee73250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd3250;
+extern VTBL_ENTRY _ZTI6dd3250[];
+extern VTBL_ENTRY _ZTV6dd3250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3250[];
+static Base_Class bases_ee73250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3250, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73250[];
+extern void _ZN7ee732503fooEv();
+extern void _ZN7ee732503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee732503fooEv,_ZTv0_n20_N7ee732503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732503fooEv,_ZThn8_N7ee732503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732503barEv,_ZTv0_n16_N7ee732503barEv)();
+extern void ABISELECT(_ZThn32_N7ee732503barEv,_ZThn16_N7ee732503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee732503fooEv,_ZTv0_n20_N7ee732503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732503fooEv,_ZThn16_N7ee732503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73250[0]),
+ (VTBL_ENTRY)&_ZN7ee732503fooEv,
+ (VTBL_ENTRY)&_ZN7ee732503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732503fooEv,_ZTv0_n20_N7ee732503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732503barEv,_ZTv0_n16_N7ee732503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732503fooEv,_ZTv0_n20_N7ee732503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73250[];
+extern void _ZN6dd32503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3250__7ee73250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN6dd32503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd3250__7ee73250[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee73250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee73250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73250[] = {
+ {&(_ZTV7ee73250[5]), 5,20},
+ {&(_ZTV7ee73250[12]), 12,20},
+ {&(_ZTV7ee73250[18]), 18,20},
+ {&(_tg__ZTV6dd3250__7ee73250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd3250__7ee73250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee73250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee73250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73250[];
+extern VTBL_ENTRY _ZTV7ee73250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73250[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32503fooEv,_ZTv0_n20_N6dd32503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32503fooEv,_ZThn8_N6dd32503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732503barEv,_ZTv0_n16_N7ee732503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732503barEv,_ZThn16_N7ee732503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee732503fooEv,_ZTv0_n20_N7ee732503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732503fooEv,_ZThn16_N7ee732503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732503fooEv,_ZThn8_N7ee732503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73250 = { "ee73250", // class name
+ bases_ee73250, 4,
+ &(vtc_ee73250[0]), // expected_vtbl_contents
+ &(vtt_ee73250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73250),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4250 : cc250 {
+ int d;
+ virtual void bar(); // _ZN6dd42503barEv
+ ~dd4250(); // tgen
+ dd4250(); // tgen
+};
+//SIG(-1 dd4250) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4250 ::bar(){vfunc_called(this, "_ZN6dd42503barEv");}
+dd4250 ::~dd4250(){ note_dtor("dd4250", this);} // tgen
+dd4250 ::dd4250(){ note_ctor("dd4250", this);} // tgen
+
+static void Test_dd4250()
+{
+ extern Class_Descriptor cd_dd4250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4250, buf);
+ dd4250 *dp, &lv = *(dp=new (buf) dd4250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(20,16), "dd4250");
+ check_base_class_offset(lv, (bb50*)(cc250*), 0, "dd4250");
+ check_base_class_offset(lv, (cc250*), 0, "dd4250");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4250.d");
+ test_class_info(&lv, &cd_dd4250);
+ dp->~dd4250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4250(Test_dd4250, "dd4250", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4250C1Ev();
+extern void _ZN6dd4250D1Ev();
+Name_Map name_map_dd4250[] = {
+ NSPAIR(_ZN6dd4250C1Ev),
+ NSPAIR(_ZN6dd4250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd4250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_dd4250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd4250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd4250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4250[] = {
+ {&(_ZTV6dd4250[3]), 3,5},
+ {&(_tg__ZTV5cc250__6dd4250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd4250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+Class_Descriptor cd_dd4250 = { "dd4250", // class name
+ bases_dd4250, 3,
+ &(vtc_dd4250[0]), // expected_vtbl_contents
+ &(vtt_dd4250[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4250),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04250 : dd4250 {
+ int e;
+ ~ee04250(); // tgen
+ ee04250(); // tgen
+};
+//SIG(1 ee04250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04250 ::~ee04250(){ note_dtor("ee04250", this);} // tgen
+ee04250 ::ee04250(){ note_ctor("ee04250", this);} // tgen
+
+static void Test_ee04250()
+{
+ extern Class_Descriptor cd_ee04250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04250, buf);
+ ee04250 *dp, &lv = *(dp=new (buf) ee04250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(24,20), "ee04250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), 0, "ee04250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), 0, "ee04250");
+ check_base_class_offset(lv, (dd4250*), 0, "ee04250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04250.e");
+ test_class_info(&lv, &cd_ee04250);
+ dp->~ee04250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04250(Test_ee04250, "ee04250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04250C1Ev();
+extern void _ZN7ee04250D1Ev();
+Name_Map name_map_ee04250[] = {
+ NSPAIR(_ZN7ee04250C1Ev),
+ NSPAIR(_ZN7ee04250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee04250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee04250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee04250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee04250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee04250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04250[] = {
+ {&(_ZTV7ee04250[3]), 3,5},
+ {&(_tg__ZTV6dd4250__7ee04250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee04250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee04250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04250[];
+extern VTBL_ENTRY _ZTV7ee04250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04250[];
+Class_Descriptor cd_ee04250 = { "ee04250", // class name
+ bases_ee04250, 4,
+ &(vtc_ee04250[0]), // expected_vtbl_contents
+ &(vtt_ee04250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14250 : virtual dd4250 {
+ int e;
+ ~ee14250(); // tgen
+ ee14250(); // tgen
+};
+//SIG(1 ee14250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14250 ::~ee14250(){ note_dtor("ee14250", this);} // tgen
+ee14250 ::ee14250(){ note_ctor("ee14250", this);} // tgen
+
+static void Test_ee14250()
+{
+ extern Class_Descriptor cd_ee14250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14250, buf);
+ ee14250 *dp, &lv = *(dp=new (buf) ee14250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(36,24), "ee14250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), ABISELECT(16,8), "ee14250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), ABISELECT(16,8), "ee14250");
+ check_base_class_offset(lv, (dd4250*), ABISELECT(16,8), "ee14250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14250.e");
+ test_class_info(&lv, &cd_ee14250);
+ dp->~ee14250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14250(Test_ee14250, "ee14250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14250C1Ev();
+extern void _ZN7ee14250D1Ev();
+Name_Map name_map_ee14250[] = {
+ NSPAIR(_ZN7ee14250C1Ev),
+ NSPAIR(_ZN7ee14250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee14250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee14250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14250[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee14250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee14250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee14250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14250[] = {
+ {&(_ZTV7ee14250[4]), 4,11},
+ {&(_ZTV7ee14250[9]), 9,11},
+ {&(_tg__ZTV6dd4250__7ee14250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee14250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee14250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14250[];
+extern VTBL_ENTRY _ZTV7ee14250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14250[];
+Class_Descriptor cd_ee14250 = { "ee14250", // class name
+ bases_ee14250, 4,
+ &(vtc_ee14250[0]), // expected_vtbl_contents
+ &(vtt_ee14250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24250 : dd4250 {
+ int e;
+ virtual void foo(); // _ZN7ee242503fooEv
+ ~ee24250(); // tgen
+ ee24250(); // tgen
+};
+//SIG(1 ee24250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24250 ::foo(){vfunc_called(this, "_ZN7ee242503fooEv");}
+ee24250 ::~ee24250(){ note_dtor("ee24250", this);} // tgen
+ee24250 ::ee24250(){ note_ctor("ee24250", this);} // tgen
+
+static void Test_ee24250()
+{
+ extern Class_Descriptor cd_ee24250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24250, buf);
+ ee24250 *dp, &lv = *(dp=new (buf) ee24250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(24,20), "ee24250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), 0, "ee24250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), 0, "ee24250");
+ check_base_class_offset(lv, (dd4250*), 0, "ee24250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24250.e");
+ test_class_info(&lv, &cd_ee24250);
+ dp->~ee24250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24250(Test_ee24250, "ee24250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24250C1Ev();
+extern void _ZN7ee24250D1Ev();
+Name_Map name_map_ee24250[] = {
+ NSPAIR(_ZN7ee24250C1Ev),
+ NSPAIR(_ZN7ee24250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee24250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN7ee242503fooEv();
+static VTBL_ENTRY vtc_ee24250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN7ee242503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee24250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee24250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee24250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24250[] = {
+ {&(_ZTV7ee24250[3]), 3,5},
+ {&(_tg__ZTV6dd4250__7ee24250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee24250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee24250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24250[];
+extern VTBL_ENTRY _ZTV7ee24250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24250[];
+Class_Descriptor cd_ee24250 = { "ee24250", // class name
+ bases_ee24250, 4,
+ &(vtc_ee24250[0]), // expected_vtbl_contents
+ &(vtt_ee24250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34250 : virtual dd4250 {
+ int e;
+ virtual void foo(); // _ZN7ee342503fooEv
+ ~ee34250(); // tgen
+ ee34250(); // tgen
+};
+//SIG(1 ee34250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34250 ::foo(){vfunc_called(this, "_ZN7ee342503fooEv");}
+ee34250 ::~ee34250(){ note_dtor("ee34250", this);} // tgen
+ee34250 ::ee34250(){ note_ctor("ee34250", this);} // tgen
+
+static void Test_ee34250()
+{
+ extern Class_Descriptor cd_ee34250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34250, buf);
+ ee34250 *dp, &lv = *(dp=new (buf) ee34250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(36,24), "ee34250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), ABISELECT(16,8), "ee34250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), ABISELECT(16,8), "ee34250");
+ check_base_class_offset(lv, (dd4250*), ABISELECT(16,8), "ee34250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34250.e");
+ test_class_info(&lv, &cd_ee34250);
+ dp->~ee34250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34250(Test_ee34250, "ee34250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34250C1Ev();
+extern void _ZN7ee34250D1Ev();
+Name_Map name_map_ee34250[] = {
+ NSPAIR(_ZN7ee34250C1Ev),
+ NSPAIR(_ZN7ee34250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee34250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34250[];
+extern void _ZN7ee342503fooEv();
+extern void _ZN6dd42503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee342503fooEv,_ZTv0_n20_N7ee342503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342503fooEv,_ZThn8_N7ee342503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34250[0]),
+ (VTBL_ENTRY)&_ZN7ee342503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee342503fooEv,_ZTv0_n20_N7ee342503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee34250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee34250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee34250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34250[] = {
+ {&(_ZTV7ee34250[4]), 4,12},
+ {&(_ZTV7ee34250[10]), 10,12},
+ {&(_tg__ZTV6dd4250__7ee34250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee34250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee34250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34250[];
+extern VTBL_ENTRY _ZTV7ee34250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34250[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee342503fooEv,_ZTv0_n20_N7ee342503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342503fooEv,_ZThn8_N7ee342503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34250 = { "ee34250", // class name
+ bases_ee34250, 4,
+ &(vtc_ee34250[0]), // expected_vtbl_contents
+ &(vtt_ee34250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44250 : dd4250 {
+ int e;
+ virtual void bar(); // _ZN7ee442503barEv
+ ~ee44250(); // tgen
+ ee44250(); // tgen
+};
+//SIG(1 ee44250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44250 ::bar(){vfunc_called(this, "_ZN7ee442503barEv");}
+ee44250 ::~ee44250(){ note_dtor("ee44250", this);} // tgen
+ee44250 ::ee44250(){ note_ctor("ee44250", this);} // tgen
+
+static void Test_ee44250()
+{
+ extern Class_Descriptor cd_ee44250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44250, buf);
+ ee44250 *dp, &lv = *(dp=new (buf) ee44250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(24,20), "ee44250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), 0, "ee44250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), 0, "ee44250");
+ check_base_class_offset(lv, (dd4250*), 0, "ee44250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44250.e");
+ test_class_info(&lv, &cd_ee44250);
+ dp->~ee44250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44250(Test_ee44250, "ee44250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44250C1Ev();
+extern void _ZN7ee44250D1Ev();
+Name_Map name_map_ee44250[] = {
+ NSPAIR(_ZN7ee44250C1Ev),
+ NSPAIR(_ZN7ee44250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee44250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44250[];
+extern void _ZN7ee442503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee44250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44250[0]),
+ (VTBL_ENTRY)&_ZN7ee442503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee44250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee44250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee44250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44250[] = {
+ {&(_ZTV7ee44250[3]), 3,5},
+ {&(_tg__ZTV6dd4250__7ee44250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee44250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee44250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44250[];
+extern VTBL_ENTRY _ZTV7ee44250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44250[];
+Class_Descriptor cd_ee44250 = { "ee44250", // class name
+ bases_ee44250, 4,
+ &(vtc_ee44250[0]), // expected_vtbl_contents
+ &(vtt_ee44250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54250 : virtual dd4250 {
+ int e;
+ virtual void bar(); // _ZN7ee542503barEv
+ ~ee54250(); // tgen
+ ee54250(); // tgen
+};
+//SIG(1 ee54250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54250 ::bar(){vfunc_called(this, "_ZN7ee542503barEv");}
+ee54250 ::~ee54250(){ note_dtor("ee54250", this);} // tgen
+ee54250 ::ee54250(){ note_ctor("ee54250", this);} // tgen
+
+static void Test_ee54250()
+{
+ extern Class_Descriptor cd_ee54250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54250, buf);
+ ee54250 *dp, &lv = *(dp=new (buf) ee54250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(36,24), "ee54250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), ABISELECT(16,8), "ee54250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), ABISELECT(16,8), "ee54250");
+ check_base_class_offset(lv, (dd4250*), ABISELECT(16,8), "ee54250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54250.e");
+ test_class_info(&lv, &cd_ee54250);
+ dp->~ee54250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54250(Test_ee54250, "ee54250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54250C1Ev();
+extern void _ZN7ee54250D1Ev();
+Name_Map name_map_ee54250[] = {
+ NSPAIR(_ZN7ee54250C1Ev),
+ NSPAIR(_ZN7ee54250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee54250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54250[];
+extern void _ZN7ee542503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542503barEv,_ZTv0_n16_N7ee542503barEv)();
+extern void ABISELECT(_ZThn16_N7ee542503barEv,_ZThn8_N7ee542503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee54250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54250[0]),
+ (VTBL_ENTRY)&_ZN7ee542503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542503barEv,_ZTv0_n16_N7ee542503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee54250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee54250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee54250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54250[] = {
+ {&(_ZTV7ee54250[4]), 4,12},
+ {&(_ZTV7ee54250[10]), 10,12},
+ {&(_tg__ZTV6dd4250__7ee54250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee54250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee54250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54250[];
+extern VTBL_ENTRY _ZTV7ee54250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54250[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542503barEv,_ZTv0_n16_N7ee542503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542503barEv,_ZThn8_N7ee542503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54250 = { "ee54250", // class name
+ bases_ee54250, 4,
+ &(vtc_ee54250[0]), // expected_vtbl_contents
+ &(vtt_ee54250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64250 : dd4250 {
+ int e;
+ virtual void foo(); // _ZN7ee642503fooEv
+ virtual void bar(); // _ZN7ee642503barEv
+ ~ee64250(); // tgen
+ ee64250(); // tgen
+};
+//SIG(1 ee64250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64250 ::foo(){vfunc_called(this, "_ZN7ee642503fooEv");}
+void ee64250 ::bar(){vfunc_called(this, "_ZN7ee642503barEv");}
+ee64250 ::~ee64250(){ note_dtor("ee64250", this);} // tgen
+ee64250 ::ee64250(){ note_ctor("ee64250", this);} // tgen
+
+static void Test_ee64250()
+{
+ extern Class_Descriptor cd_ee64250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64250, buf);
+ ee64250 *dp, &lv = *(dp=new (buf) ee64250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(24,20), "ee64250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), 0, "ee64250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), 0, "ee64250");
+ check_base_class_offset(lv, (dd4250*), 0, "ee64250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64250.e");
+ test_class_info(&lv, &cd_ee64250);
+ dp->~ee64250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64250(Test_ee64250, "ee64250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64250C1Ev();
+extern void _ZN7ee64250D1Ev();
+Name_Map name_map_ee64250[] = {
+ NSPAIR(_ZN7ee64250C1Ev),
+ NSPAIR(_ZN7ee64250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee64250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64250[];
+extern void _ZN7ee642503barEv();
+extern void _ZN7ee642503fooEv();
+static VTBL_ENTRY vtc_ee64250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64250[0]),
+ (VTBL_ENTRY)&_ZN7ee642503barEv,
+ (VTBL_ENTRY)&_ZN7ee642503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee64250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee64250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee64250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64250[] = {
+ {&(_ZTV7ee64250[3]), 3,5},
+ {&(_tg__ZTV6dd4250__7ee64250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee64250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee64250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64250[];
+extern VTBL_ENTRY _ZTV7ee64250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64250[];
+Class_Descriptor cd_ee64250 = { "ee64250", // class name
+ bases_ee64250, 4,
+ &(vtc_ee64250[0]), // expected_vtbl_contents
+ &(vtt_ee64250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74250 : virtual dd4250 {
+ int e;
+ virtual void foo(); // _ZN7ee742503fooEv
+ virtual void bar(); // _ZN7ee742503barEv
+ ~ee74250(); // tgen
+ ee74250(); // tgen
+};
+//SIG(1 ee74250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74250 ::foo(){vfunc_called(this, "_ZN7ee742503fooEv");}
+void ee74250 ::bar(){vfunc_called(this, "_ZN7ee742503barEv");}
+ee74250 ::~ee74250(){ note_dtor("ee74250", this);} // tgen
+ee74250 ::ee74250(){ note_ctor("ee74250", this);} // tgen
+
+static void Test_ee74250()
+{
+ extern Class_Descriptor cd_ee74250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74250, buf);
+ ee74250 *dp, &lv = *(dp=new (buf) ee74250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd4250*), ABISELECT(36,24), "ee74250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd4250*), ABISELECT(16,8), "ee74250");
+ check_base_class_offset(lv, (cc250*)(dd4250*), ABISELECT(16,8), "ee74250");
+ check_base_class_offset(lv, (dd4250*), ABISELECT(16,8), "ee74250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74250.e");
+ test_class_info(&lv, &cd_ee74250);
+ dp->~ee74250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74250(Test_ee74250, "ee74250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74250C1Ev();
+extern void _ZN7ee74250D1Ev();
+Name_Map name_map_ee74250[] = {
+ NSPAIR(_ZN7ee74250C1Ev),
+ NSPAIR(_ZN7ee74250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd4250;
+extern VTBL_ENTRY _ZTI6dd4250[];
+extern VTBL_ENTRY _ZTV6dd4250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4250[];
+static Base_Class bases_ee74250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74250[];
+extern void _ZN7ee742503fooEv();
+extern void _ZN7ee742503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee742503barEv,_ZTv0_n16_N7ee742503barEv)();
+extern void ABISELECT(_ZThn16_N7ee742503barEv,_ZThn8_N7ee742503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee742503fooEv,_ZTv0_n20_N7ee742503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742503fooEv,_ZThn8_N7ee742503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74250[0]),
+ (VTBL_ENTRY)&_ZN7ee742503fooEv,
+ (VTBL_ENTRY)&_ZN7ee742503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742503barEv,_ZTv0_n16_N7ee742503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee742503fooEv,_ZTv0_n20_N7ee742503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74250[];
+extern void _ZN6dd42503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4250__7ee74250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4250[0]),
+ (VTBL_ENTRY)&_ZN6dd42503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd4250__7ee74250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd4250__7ee74250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74250[] = {
+ {&(_ZTV7ee74250[4]), 4,13},
+ {&(_ZTV7ee74250[11]), 11,13},
+ {&(_tg__ZTV6dd4250__7ee74250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd4250__7ee74250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd4250__7ee74250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74250[];
+extern VTBL_ENTRY _ZTV7ee74250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74250[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee742503fooEv,_ZTv0_n20_N7ee742503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742503fooEv,_ZThn8_N7ee742503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742503barEv,_ZTv0_n16_N7ee742503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742503barEv,_ZThn8_N7ee742503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74250 = { "ee74250", // class name
+ bases_ee74250, 4,
+ &(vtc_ee74250[0]), // expected_vtbl_contents
+ &(vtt_ee74250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5250 : virtual cc250 {
+ int d;
+ virtual void bar(); // _ZN6dd52503barEv
+ ~dd5250(); // tgen
+ dd5250(); // tgen
+};
+//SIG(-1 dd5250) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5250 ::bar(){vfunc_called(this, "_ZN6dd52503barEv");}
+dd5250 ::~dd5250(){ note_dtor("dd5250", this);} // tgen
+dd5250 ::dd5250(){ note_ctor("dd5250", this);} // tgen
+
+static void Test_dd5250()
+{
+ extern Class_Descriptor cd_dd5250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5250, buf);
+ dd5250 *dp, &lv = *(dp=new (buf) dd5250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,20), "dd5250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,8), "dd5250");
+ check_base_class_offset(lv, (cc250*), ABISELECT(16,8), "dd5250");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5250.d");
+ test_class_info(&lv, &cd_dd5250);
+ dp->~dd5250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5250(Test_dd5250, "dd5250", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5250C1Ev();
+extern void _ZN6dd5250D1Ev();
+Name_Map name_map_dd5250[] = {
+ NSPAIR(_ZN6dd5250C1Ev),
+ NSPAIR(_ZN6dd5250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd5250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern void _ZN6dd52503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_dd5250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd5250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5250[] = {
+ {&(_ZTV6dd5250[4]), 4,12},
+ {&(_ZTV6dd5250[10]), 10,12},
+ {&(_tg__ZTV5cc250__6dd5250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd5250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5250 = { "dd5250", // class name
+ bases_dd5250, 3,
+ &(vtc_dd5250[0]), // expected_vtbl_contents
+ &(vtt_dd5250[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5250),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05250 : dd5250 {
+ int e;
+ ~ee05250(); // tgen
+ ee05250(); // tgen
+};
+//SIG(1 ee05250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05250 ::~ee05250(){ note_dtor("ee05250", this);} // tgen
+ee05250 ::ee05250(){ note_ctor("ee05250", this);} // tgen
+
+static void Test_ee05250()
+{
+ extern Class_Descriptor cd_ee05250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05250, buf);
+ ee05250 *dp, &lv = *(dp=new (buf) ee05250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee05250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee05250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(16,12), "ee05250");
+ check_base_class_offset(lv, (dd5250*), 0, "ee05250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05250.e");
+ test_class_info(&lv, &cd_ee05250);
+ dp->~ee05250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05250(Test_ee05250, "ee05250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05250C1Ev();
+extern void _ZN7ee05250D1Ev();
+Name_Map name_map_ee05250[] = {
+ NSPAIR(_ZN7ee05250C1Ev),
+ NSPAIR(_ZN7ee05250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee05250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05250[];
+extern void _ZN6dd52503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee05250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee05250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee05250[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee05250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee05250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05250[] = {
+ {&(_ZTV7ee05250[4]), 4,12},
+ {&(_tg__ZTV6dd5250__7ee05250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee05250[5]), 5,7},
+ {&(_ZTV7ee05250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee05250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee05250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05250[];
+extern VTBL_ENTRY _ZTV7ee05250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05250[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05250 = { "ee05250", // class name
+ bases_ee05250, 4,
+ &(vtc_ee05250[0]), // expected_vtbl_contents
+ &(vtt_ee05250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15250 : virtual dd5250 {
+ int e;
+ ~ee15250(); // tgen
+ ee15250(); // tgen
+};
+//SIG(1 ee15250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15250 ::~ee15250(){ note_dtor("ee15250", this);} // tgen
+ee15250 ::ee15250(){ note_ctor("ee15250", this);} // tgen
+
+static void Test_ee15250()
+{
+ extern Class_Descriptor cd_ee15250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15250, buf);
+ ee15250 *dp, &lv = *(dp=new (buf) ee15250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee15250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee15250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(32,16), "ee15250");
+ check_base_class_offset(lv, (dd5250*), ABISELECT(16,8), "ee15250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15250.e");
+ test_class_info(&lv, &cd_ee15250);
+ dp->~ee15250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15250(Test_ee15250, "ee15250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15250C1Ev();
+extern void _ZN7ee15250D1Ev();
+Name_Map name_map_ee15250[] = {
+ NSPAIR(_ZN7ee15250C1Ev),
+ NSPAIR(_ZN7ee15250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee15250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee15250[];
+extern void _ZN6dd52503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee15250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15250[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee15250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee15250[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee15250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee15250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15250[] = {
+ {&(_ZTV7ee15250[5]), 5,18},
+ {&(_ZTV7ee15250[10]), 10,18},
+ {&(_ZTV7ee15250[16]), 16,18},
+ {&(_tg__ZTV6dd5250__7ee15250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee15250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee15250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee15250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15250[];
+extern VTBL_ENTRY _ZTV7ee15250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15250[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15250 = { "ee15250", // class name
+ bases_ee15250, 4,
+ &(vtc_ee15250[0]), // expected_vtbl_contents
+ &(vtt_ee15250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15250),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25250 : dd5250 {
+ int e;
+ virtual void foo(); // _ZN7ee252503fooEv
+ ~ee25250(); // tgen
+ ee25250(); // tgen
+};
+//SIG(1 ee25250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25250 ::foo(){vfunc_called(this, "_ZN7ee252503fooEv");}
+ee25250 ::~ee25250(){ note_dtor("ee25250", this);} // tgen
+ee25250 ::ee25250(){ note_ctor("ee25250", this);} // tgen
+
+static void Test_ee25250()
+{
+ extern Class_Descriptor cd_ee25250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25250, buf);
+ ee25250 *dp, &lv = *(dp=new (buf) ee25250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee25250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee25250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(16,12), "ee25250");
+ check_base_class_offset(lv, (dd5250*), 0, "ee25250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25250.e");
+ test_class_info(&lv, &cd_ee25250);
+ dp->~ee25250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25250(Test_ee25250, "ee25250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25250C1Ev();
+extern void _ZN7ee25250D1Ev();
+Name_Map name_map_ee25250[] = {
+ NSPAIR(_ZN7ee25250C1Ev),
+ NSPAIR(_ZN7ee25250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee25250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25250[];
+extern void _ZN6dd52503barEv();
+extern void _ZN7ee252503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee252503fooEv,_ZTv0_n20_N7ee252503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252503fooEv,_ZThn12_N7ee252503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+ (VTBL_ENTRY)&_ZN7ee252503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee252503fooEv,_ZTv0_n20_N7ee252503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee25250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee25250[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee25250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee25250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25250[] = {
+ {&(_ZTV7ee25250[4]), 4,13},
+ {&(_tg__ZTV6dd5250__7ee25250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee25250[5]), 5,7},
+ {&(_ZTV7ee25250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee25250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee25250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25250[];
+extern VTBL_ENTRY _ZTV7ee25250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25250[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee252503fooEv,_ZTv0_n20_N7ee252503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252503fooEv,_ZThn12_N7ee252503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25250 = { "ee25250", // class name
+ bases_ee25250, 4,
+ &(vtc_ee25250[0]), // expected_vtbl_contents
+ &(vtt_ee25250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35250 : virtual dd5250 {
+ int e;
+ virtual void foo(); // _ZN7ee352503fooEv
+ ~ee35250(); // tgen
+ ee35250(); // tgen
+};
+//SIG(1 ee35250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35250 ::foo(){vfunc_called(this, "_ZN7ee352503fooEv");}
+ee35250 ::~ee35250(){ note_dtor("ee35250", this);} // tgen
+ee35250 ::ee35250(){ note_ctor("ee35250", this);} // tgen
+
+static void Test_ee35250()
+{
+ extern Class_Descriptor cd_ee35250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35250, buf);
+ ee35250 *dp, &lv = *(dp=new (buf) ee35250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee35250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee35250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(32,16), "ee35250");
+ check_base_class_offset(lv, (dd5250*), ABISELECT(16,8), "ee35250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35250.e");
+ test_class_info(&lv, &cd_ee35250);
+ dp->~ee35250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35250(Test_ee35250, "ee35250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35250C1Ev();
+extern void _ZN7ee35250D1Ev();
+Name_Map name_map_ee35250[] = {
+ NSPAIR(_ZN7ee35250C1Ev),
+ NSPAIR(_ZN7ee35250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee35250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee35250[];
+extern void _ZN7ee352503fooEv();
+extern void _ZN6dd52503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee352503fooEv,_ZTv0_n20_N7ee352503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352503fooEv,_ZThn16_N7ee352503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35250[0]),
+ (VTBL_ENTRY)&_ZN7ee352503fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee352503fooEv,_ZTv0_n20_N7ee352503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee35250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee35250[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee35250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee35250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35250[] = {
+ {&(_ZTV7ee35250[5]), 5,19},
+ {&(_ZTV7ee35250[11]), 11,19},
+ {&(_ZTV7ee35250[17]), 17,19},
+ {&(_tg__ZTV6dd5250__7ee35250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee35250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee35250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee35250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35250[];
+extern VTBL_ENTRY _ZTV7ee35250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35250[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee352503fooEv,_ZTv0_n20_N7ee352503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352503fooEv,_ZThn16_N7ee352503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35250 = { "ee35250", // class name
+ bases_ee35250, 4,
+ &(vtc_ee35250[0]), // expected_vtbl_contents
+ &(vtt_ee35250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35250),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45250 : dd5250 {
+ int e;
+ virtual void bar(); // _ZN7ee452503barEv
+ ~ee45250(); // tgen
+ ee45250(); // tgen
+};
+//SIG(1 ee45250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45250 ::bar(){vfunc_called(this, "_ZN7ee452503barEv");}
+ee45250 ::~ee45250(){ note_dtor("ee45250", this);} // tgen
+ee45250 ::ee45250(){ note_ctor("ee45250", this);} // tgen
+
+static void Test_ee45250()
+{
+ extern Class_Descriptor cd_ee45250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45250, buf);
+ ee45250 *dp, &lv = *(dp=new (buf) ee45250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee45250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee45250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(16,12), "ee45250");
+ check_base_class_offset(lv, (dd5250*), 0, "ee45250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45250.e");
+ test_class_info(&lv, &cd_ee45250);
+ dp->~ee45250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45250(Test_ee45250, "ee45250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45250C1Ev();
+extern void _ZN7ee45250D1Ev();
+Name_Map name_map_ee45250[] = {
+ NSPAIR(_ZN7ee45250C1Ev),
+ NSPAIR(_ZN7ee45250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee45250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45250[];
+extern void _ZN7ee452503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452503barEv,_ZTv0_n16_N7ee452503barEv)();
+extern void ABISELECT(_ZThn16_N7ee452503barEv,_ZThn12_N7ee452503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee45250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45250[0]),
+ (VTBL_ENTRY)&_ZN7ee452503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452503barEv,_ZTv0_n16_N7ee452503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee45250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee45250[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee45250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee45250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45250[] = {
+ {&(_ZTV7ee45250[4]), 4,12},
+ {&(_tg__ZTV6dd5250__7ee45250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee45250[5]), 5,7},
+ {&(_ZTV7ee45250[10]), 10,12},
+ {&(_tg__ZTV5cc250__7ee45250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee45250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45250[];
+extern VTBL_ENTRY _ZTV7ee45250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45250[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452503barEv,_ZTv0_n16_N7ee452503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452503barEv,_ZThn12_N7ee452503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45250 = { "ee45250", // class name
+ bases_ee45250, 4,
+ &(vtc_ee45250[0]), // expected_vtbl_contents
+ &(vtt_ee45250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55250 : virtual dd5250 {
+ int e;
+ virtual void bar(); // _ZN7ee552503barEv
+ ~ee55250(); // tgen
+ ee55250(); // tgen
+};
+//SIG(1 ee55250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55250 ::bar(){vfunc_called(this, "_ZN7ee552503barEv");}
+ee55250 ::~ee55250(){ note_dtor("ee55250", this);} // tgen
+ee55250 ::ee55250(){ note_ctor("ee55250", this);} // tgen
+
+static void Test_ee55250()
+{
+ extern Class_Descriptor cd_ee55250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55250, buf);
+ ee55250 *dp, &lv = *(dp=new (buf) ee55250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee55250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee55250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(32,16), "ee55250");
+ check_base_class_offset(lv, (dd5250*), ABISELECT(16,8), "ee55250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55250.e");
+ test_class_info(&lv, &cd_ee55250);
+ dp->~ee55250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55250(Test_ee55250, "ee55250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55250C1Ev();
+extern void _ZN7ee55250D1Ev();
+Name_Map name_map_ee55250[] = {
+ NSPAIR(_ZN7ee55250C1Ev),
+ NSPAIR(_ZN7ee55250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee55250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee55250[];
+extern void _ZN7ee552503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee552503barEv,_ZTv0_n20_N7ee552503barEv)();
+extern void ABISELECT(_ZThn16_N7ee552503barEv,_ZThn8_N7ee552503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee552503barEv,_ZTv0_n16_N7ee552503barEv)();
+extern void ABISELECT(_ZThn32_N7ee552503barEv,_ZThn16_N7ee552503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY vtc_ee55250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55250[0]),
+ (VTBL_ENTRY)&_ZN7ee552503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee552503barEv,_ZTv0_n20_N7ee552503barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552503barEv,_ZTv0_n16_N7ee552503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee55250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee55250[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee55250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee55250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55250[] = {
+ {&(_ZTV7ee55250[5]), 5,19},
+ {&(_ZTV7ee55250[11]), 11,19},
+ {&(_ZTV7ee55250[17]), 17,19},
+ {&(_tg__ZTV6dd5250__7ee55250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee55250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee55250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee55250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55250[];
+extern VTBL_ENTRY _ZTV7ee55250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55250[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552503barEv,_ZTv0_n16_N7ee552503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552503barEv,_ZThn16_N7ee552503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee552503barEv,_ZTv0_n20_N7ee552503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552503barEv,_ZThn8_N7ee552503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55250 = { "ee55250", // class name
+ bases_ee55250, 4,
+ &(vtc_ee55250[0]), // expected_vtbl_contents
+ &(vtt_ee55250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55250),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65250 : dd5250 {
+ int e;
+ virtual void foo(); // _ZN7ee652503fooEv
+ virtual void bar(); // _ZN7ee652503barEv
+ ~ee65250(); // tgen
+ ee65250(); // tgen
+};
+//SIG(1 ee65250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65250 ::foo(){vfunc_called(this, "_ZN7ee652503fooEv");}
+void ee65250 ::bar(){vfunc_called(this, "_ZN7ee652503barEv");}
+ee65250 ::~ee65250(){ note_dtor("ee65250", this);} // tgen
+ee65250 ::ee65250(){ note_ctor("ee65250", this);} // tgen
+
+static void Test_ee65250()
+{
+ extern Class_Descriptor cd_ee65250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65250, buf);
+ ee65250 *dp, &lv = *(dp=new (buf) ee65250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee65250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee65250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(16,12), "ee65250");
+ check_base_class_offset(lv, (dd5250*), 0, "ee65250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65250.e");
+ test_class_info(&lv, &cd_ee65250);
+ dp->~ee65250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65250(Test_ee65250, "ee65250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65250C1Ev();
+extern void _ZN7ee65250D1Ev();
+Name_Map name_map_ee65250[] = {
+ NSPAIR(_ZN7ee65250C1Ev),
+ NSPAIR(_ZN7ee65250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee65250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65250[];
+extern void _ZN7ee652503barEv();
+extern void _ZN7ee652503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee652503barEv,_ZTv0_n16_N7ee652503barEv)();
+extern void ABISELECT(_ZThn16_N7ee652503barEv,_ZThn12_N7ee652503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee652503fooEv,_ZTv0_n20_N7ee652503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652503fooEv,_ZThn12_N7ee652503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65250[0]),
+ (VTBL_ENTRY)&_ZN7ee652503barEv,
+ (VTBL_ENTRY)&_ZN7ee652503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652503barEv,_ZTv0_n16_N7ee652503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee652503fooEv,_ZTv0_n20_N7ee652503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee65250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee65250[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee65250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee65250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65250[] = {
+ {&(_ZTV7ee65250[4]), 4,13},
+ {&(_tg__ZTV6dd5250__7ee65250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee65250[5]), 5,7},
+ {&(_ZTV7ee65250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee65250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee65250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65250[];
+extern VTBL_ENTRY _ZTV7ee65250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65250[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn12_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee652503fooEv,_ZTv0_n20_N7ee652503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652503fooEv,_ZThn12_N7ee652503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652503barEv,_ZTv0_n16_N7ee652503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652503barEv,_ZThn12_N7ee652503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65250 = { "ee65250", // class name
+ bases_ee65250, 4,
+ &(vtc_ee65250[0]), // expected_vtbl_contents
+ &(vtt_ee65250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75250 : virtual dd5250 {
+ int e;
+ virtual void foo(); // _ZN7ee752503fooEv
+ virtual void bar(); // _ZN7ee752503barEv
+ ~ee75250(); // tgen
+ ee75250(); // tgen
+};
+//SIG(1 ee75250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75250 ::foo(){vfunc_called(this, "_ZN7ee752503fooEv");}
+void ee75250 ::bar(){vfunc_called(this, "_ZN7ee752503barEv");}
+ee75250 ::~ee75250(){ note_dtor("ee75250", this);} // tgen
+ee75250 ::ee75250(){ note_ctor("ee75250", this);} // tgen
+
+static void Test_ee75250()
+{
+ extern Class_Descriptor cd_ee75250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75250, buf);
+ ee75250 *dp, &lv = *(dp=new (buf) ee75250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee75250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee75250");
+ check_base_class_offset(lv, (cc250*)(dd5250*), ABISELECT(32,16), "ee75250");
+ check_base_class_offset(lv, (dd5250*), ABISELECT(16,8), "ee75250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75250.e");
+ test_class_info(&lv, &cd_ee75250);
+ dp->~ee75250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75250(Test_ee75250, "ee75250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75250C1Ev();
+extern void _ZN7ee75250D1Ev();
+Name_Map name_map_ee75250[] = {
+ NSPAIR(_ZN7ee75250C1Ev),
+ NSPAIR(_ZN7ee75250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd5250;
+extern VTBL_ENTRY _ZTI6dd5250[];
+extern VTBL_ENTRY _ZTV6dd5250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5250[];
+static Base_Class bases_ee75250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5250, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75250[];
+extern void _ZN7ee752503fooEv();
+extern void _ZN7ee752503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee752503barEv,_ZTv0_n20_N7ee752503barEv)();
+extern void ABISELECT(_ZThn16_N7ee752503barEv,_ZThn8_N7ee752503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752503barEv,_ZTv0_n16_N7ee752503barEv)();
+extern void ABISELECT(_ZThn32_N7ee752503barEv,_ZThn16_N7ee752503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee752503fooEv,_ZTv0_n20_N7ee752503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752503fooEv,_ZThn16_N7ee752503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75250[0]),
+ (VTBL_ENTRY)&_ZN7ee752503fooEv,
+ (VTBL_ENTRY)&_ZN7ee752503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752503barEv,_ZTv0_n20_N7ee752503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752503barEv,_ZTv0_n16_N7ee752503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752503fooEv,_ZTv0_n20_N7ee752503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75250[];
+extern void _ZN6dd52503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5250__7ee75250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&_ZN6dd52503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv)();
+extern void ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv)() __attribute__((weak));
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd5250__7ee75250[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv),
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee75250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee75250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75250[] = {
+ {&(_ZTV7ee75250[5]), 5,20},
+ {&(_ZTV7ee75250[12]), 12,20},
+ {&(_ZTV7ee75250[18]), 18,20},
+ {&(_tg__ZTV6dd5250__7ee75250[4]), 4,5},
+ {&(_tg__ZTV5cc250__6dd5250__7ee75250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee75250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee75250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75250[];
+extern VTBL_ENTRY _ZTV7ee75250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75250[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52503barEv,_ZTv0_n16_N6dd52503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52503barEv,_ZThn8_N6dd52503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752503fooEv,_ZTv0_n20_N7ee752503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752503fooEv,_ZThn16_N7ee752503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752503barEv,_ZTv0_n16_N7ee752503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752503barEv,_ZThn16_N7ee752503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752503barEv,_ZTv0_n20_N7ee752503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752503barEv,_ZThn8_N7ee752503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75250 = { "ee75250", // class name
+ bases_ee75250, 4,
+ &(vtc_ee75250[0]), // expected_vtbl_contents
+ &(vtt_ee75250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75250),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6250 : cc250 {
+ int d;
+ virtual void bar(); // _ZN6dd62503barEv
+ virtual void foo(); // _ZN6dd62503fooEv
+ ~dd6250(); // tgen
+ dd6250(); // tgen
+};
+//SIG(-1 dd6250) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6250 ::bar(){vfunc_called(this, "_ZN6dd62503barEv");}
+void dd6250 ::foo(){vfunc_called(this, "_ZN6dd62503fooEv");}
+dd6250 ::~dd6250(){ note_dtor("dd6250", this);} // tgen
+dd6250 ::dd6250(){ note_ctor("dd6250", this);} // tgen
+
+static void Test_dd6250()
+{
+ extern Class_Descriptor cd_dd6250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6250, buf);
+ dd6250 *dp, &lv = *(dp=new (buf) dd6250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(20,16), "dd6250");
+ check_base_class_offset(lv, (bb50*)(cc250*), 0, "dd6250");
+ check_base_class_offset(lv, (cc250*), 0, "dd6250");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6250.d");
+ test_class_info(&lv, &cd_dd6250);
+ dp->~dd6250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6250(Test_dd6250, "dd6250", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6250C1Ev();
+extern void _ZN6dd6250D1Ev();
+Name_Map name_map_dd6250[] = {
+ NSPAIR(_ZN6dd6250C1Ev),
+ NSPAIR(_ZN6dd6250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd6250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY vtc_dd6250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd6250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd6250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6250[] = {
+ {&(_ZTV6dd6250[3]), 3,5},
+ {&(_tg__ZTV5cc250__6dd6250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd6250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+Class_Descriptor cd_dd6250 = { "dd6250", // class name
+ bases_dd6250, 3,
+ &(vtc_dd6250[0]), // expected_vtbl_contents
+ &(vtt_dd6250[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6250),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06250 : dd6250 {
+ int e;
+ ~ee06250(); // tgen
+ ee06250(); // tgen
+};
+//SIG(1 ee06250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06250 ::~ee06250(){ note_dtor("ee06250", this);} // tgen
+ee06250 ::ee06250(){ note_ctor("ee06250", this);} // tgen
+
+static void Test_ee06250()
+{
+ extern Class_Descriptor cd_ee06250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06250, buf);
+ ee06250 *dp, &lv = *(dp=new (buf) ee06250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(24,20), "ee06250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), 0, "ee06250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), 0, "ee06250");
+ check_base_class_offset(lv, (dd6250*), 0, "ee06250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06250.e");
+ test_class_info(&lv, &cd_ee06250);
+ dp->~ee06250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06250(Test_ee06250, "ee06250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06250C1Ev();
+extern void _ZN7ee06250D1Ev();
+Name_Map name_map_ee06250[] = {
+ NSPAIR(_ZN7ee06250C1Ev),
+ NSPAIR(_ZN7ee06250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee06250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY vtc_ee06250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee06250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee06250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee06250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06250[] = {
+ {&(_ZTV7ee06250[3]), 3,5},
+ {&(_tg__ZTV6dd6250__7ee06250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee06250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee06250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06250[];
+extern VTBL_ENTRY _ZTV7ee06250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06250[];
+Class_Descriptor cd_ee06250 = { "ee06250", // class name
+ bases_ee06250, 4,
+ &(vtc_ee06250[0]), // expected_vtbl_contents
+ &(vtt_ee06250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16250 : virtual dd6250 {
+ int e;
+ ~ee16250(); // tgen
+ ee16250(); // tgen
+};
+//SIG(1 ee16250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16250 ::~ee16250(){ note_dtor("ee16250", this);} // tgen
+ee16250 ::ee16250(){ note_ctor("ee16250", this);} // tgen
+
+static void Test_ee16250()
+{
+ extern Class_Descriptor cd_ee16250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16250, buf);
+ ee16250 *dp, &lv = *(dp=new (buf) ee16250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(36,24), "ee16250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), ABISELECT(16,8), "ee16250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), ABISELECT(16,8), "ee16250");
+ check_base_class_offset(lv, (dd6250*), ABISELECT(16,8), "ee16250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16250.e");
+ test_class_info(&lv, &cd_ee16250);
+ dp->~ee16250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16250(Test_ee16250, "ee16250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16250C1Ev();
+extern void _ZN7ee16250D1Ev();
+Name_Map name_map_ee16250[] = {
+ NSPAIR(_ZN7ee16250C1Ev),
+ NSPAIR(_ZN7ee16250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee16250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY vtc_ee16250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16250[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee16250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee16250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee16250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16250[] = {
+ {&(_ZTV7ee16250[4]), 4,11},
+ {&(_ZTV7ee16250[9]), 9,11},
+ {&(_tg__ZTV6dd6250__7ee16250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee16250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee16250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16250[];
+extern VTBL_ENTRY _ZTV7ee16250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16250[];
+Class_Descriptor cd_ee16250 = { "ee16250", // class name
+ bases_ee16250, 4,
+ &(vtc_ee16250[0]), // expected_vtbl_contents
+ &(vtt_ee16250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16250),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26250 : dd6250 {
+ int e;
+ virtual void foo(); // _ZN7ee262503fooEv
+ ~ee26250(); // tgen
+ ee26250(); // tgen
+};
+//SIG(1 ee26250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26250 ::foo(){vfunc_called(this, "_ZN7ee262503fooEv");}
+ee26250 ::~ee26250(){ note_dtor("ee26250", this);} // tgen
+ee26250 ::ee26250(){ note_ctor("ee26250", this);} // tgen
+
+static void Test_ee26250()
+{
+ extern Class_Descriptor cd_ee26250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26250, buf);
+ ee26250 *dp, &lv = *(dp=new (buf) ee26250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(24,20), "ee26250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), 0, "ee26250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), 0, "ee26250");
+ check_base_class_offset(lv, (dd6250*), 0, "ee26250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26250.e");
+ test_class_info(&lv, &cd_ee26250);
+ dp->~ee26250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26250(Test_ee26250, "ee26250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26250C1Ev();
+extern void _ZN7ee26250D1Ev();
+Name_Map name_map_ee26250[] = {
+ NSPAIR(_ZN7ee26250C1Ev),
+ NSPAIR(_ZN7ee26250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee26250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN7ee262503fooEv();
+static VTBL_ENTRY vtc_ee26250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN7ee262503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee26250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee26250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee26250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26250[] = {
+ {&(_ZTV7ee26250[3]), 3,5},
+ {&(_tg__ZTV6dd6250__7ee26250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee26250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee26250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26250[];
+extern VTBL_ENTRY _ZTV7ee26250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26250[];
+Class_Descriptor cd_ee26250 = { "ee26250", // class name
+ bases_ee26250, 4,
+ &(vtc_ee26250[0]), // expected_vtbl_contents
+ &(vtt_ee26250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36250 : virtual dd6250 {
+ int e;
+ virtual void foo(); // _ZN7ee362503fooEv
+ ~ee36250(); // tgen
+ ee36250(); // tgen
+};
+//SIG(1 ee36250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36250 ::foo(){vfunc_called(this, "_ZN7ee362503fooEv");}
+ee36250 ::~ee36250(){ note_dtor("ee36250", this);} // tgen
+ee36250 ::ee36250(){ note_ctor("ee36250", this);} // tgen
+
+static void Test_ee36250()
+{
+ extern Class_Descriptor cd_ee36250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36250, buf);
+ ee36250 *dp, &lv = *(dp=new (buf) ee36250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(36,24), "ee36250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), ABISELECT(16,8), "ee36250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), ABISELECT(16,8), "ee36250");
+ check_base_class_offset(lv, (dd6250*), ABISELECT(16,8), "ee36250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36250.e");
+ test_class_info(&lv, &cd_ee36250);
+ dp->~ee36250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36250(Test_ee36250, "ee36250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36250C1Ev();
+extern void _ZN7ee36250D1Ev();
+Name_Map name_map_ee36250[] = {
+ NSPAIR(_ZN7ee36250C1Ev),
+ NSPAIR(_ZN7ee36250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee36250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36250[];
+extern void _ZN7ee362503fooEv();
+extern void _ZN6dd62503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee362503fooEv,_ZTv0_n20_N7ee362503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362503fooEv,_ZThn8_N7ee362503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36250[0]),
+ (VTBL_ENTRY)&_ZN7ee362503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee362503fooEv,_ZTv0_n20_N7ee362503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee36250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee36250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee36250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36250[] = {
+ {&(_ZTV7ee36250[4]), 4,12},
+ {&(_ZTV7ee36250[10]), 10,12},
+ {&(_tg__ZTV6dd6250__7ee36250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee36250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee36250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36250[];
+extern VTBL_ENTRY _ZTV7ee36250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36250[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee362503fooEv,_ZTv0_n20_N7ee362503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362503fooEv,_ZThn8_N7ee362503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36250 = { "ee36250", // class name
+ bases_ee36250, 4,
+ &(vtc_ee36250[0]), // expected_vtbl_contents
+ &(vtt_ee36250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46250 : dd6250 {
+ int e;
+ virtual void bar(); // _ZN7ee462503barEv
+ ~ee46250(); // tgen
+ ee46250(); // tgen
+};
+//SIG(1 ee46250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46250 ::bar(){vfunc_called(this, "_ZN7ee462503barEv");}
+ee46250 ::~ee46250(){ note_dtor("ee46250", this);} // tgen
+ee46250 ::ee46250(){ note_ctor("ee46250", this);} // tgen
+
+static void Test_ee46250()
+{
+ extern Class_Descriptor cd_ee46250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46250, buf);
+ ee46250 *dp, &lv = *(dp=new (buf) ee46250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(24,20), "ee46250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), 0, "ee46250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), 0, "ee46250");
+ check_base_class_offset(lv, (dd6250*), 0, "ee46250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46250.e");
+ test_class_info(&lv, &cd_ee46250);
+ dp->~ee46250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46250(Test_ee46250, "ee46250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46250C1Ev();
+extern void _ZN7ee46250D1Ev();
+Name_Map name_map_ee46250[] = {
+ NSPAIR(_ZN7ee46250C1Ev),
+ NSPAIR(_ZN7ee46250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee46250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46250[];
+extern void _ZN7ee462503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY vtc_ee46250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46250[0]),
+ (VTBL_ENTRY)&_ZN7ee462503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee46250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee46250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee46250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46250[] = {
+ {&(_ZTV7ee46250[3]), 3,5},
+ {&(_tg__ZTV6dd6250__7ee46250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee46250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee46250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46250[];
+extern VTBL_ENTRY _ZTV7ee46250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46250[];
+Class_Descriptor cd_ee46250 = { "ee46250", // class name
+ bases_ee46250, 4,
+ &(vtc_ee46250[0]), // expected_vtbl_contents
+ &(vtt_ee46250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56250 : virtual dd6250 {
+ int e;
+ virtual void bar(); // _ZN7ee562503barEv
+ ~ee56250(); // tgen
+ ee56250(); // tgen
+};
+//SIG(1 ee56250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56250 ::bar(){vfunc_called(this, "_ZN7ee562503barEv");}
+ee56250 ::~ee56250(){ note_dtor("ee56250", this);} // tgen
+ee56250 ::ee56250(){ note_ctor("ee56250", this);} // tgen
+
+static void Test_ee56250()
+{
+ extern Class_Descriptor cd_ee56250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56250, buf);
+ ee56250 *dp, &lv = *(dp=new (buf) ee56250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(36,24), "ee56250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), ABISELECT(16,8), "ee56250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), ABISELECT(16,8), "ee56250");
+ check_base_class_offset(lv, (dd6250*), ABISELECT(16,8), "ee56250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56250.e");
+ test_class_info(&lv, &cd_ee56250);
+ dp->~ee56250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56250(Test_ee56250, "ee56250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56250C1Ev();
+extern void _ZN7ee56250D1Ev();
+Name_Map name_map_ee56250[] = {
+ NSPAIR(_ZN7ee56250C1Ev),
+ NSPAIR(_ZN7ee56250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee56250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56250[];
+extern void _ZN7ee562503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562503barEv,_ZTv0_n16_N7ee562503barEv)();
+extern void ABISELECT(_ZThn16_N7ee562503barEv,_ZThn8_N7ee562503barEv)() __attribute__((weak));
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY vtc_ee56250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56250[0]),
+ (VTBL_ENTRY)&_ZN7ee562503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562503barEv,_ZTv0_n16_N7ee562503barEv),
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee56250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee56250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee56250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56250[] = {
+ {&(_ZTV7ee56250[4]), 4,12},
+ {&(_ZTV7ee56250[10]), 10,12},
+ {&(_tg__ZTV6dd6250__7ee56250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee56250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee56250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56250[];
+extern VTBL_ENTRY _ZTV7ee56250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56250[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562503barEv,_ZTv0_n16_N7ee562503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562503barEv,_ZThn8_N7ee562503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56250 = { "ee56250", // class name
+ bases_ee56250, 4,
+ &(vtc_ee56250[0]), // expected_vtbl_contents
+ &(vtt_ee56250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56250),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66250 : dd6250 {
+ int e;
+ virtual void foo(); // _ZN7ee662503fooEv
+ virtual void bar(); // _ZN7ee662503barEv
+ ~ee66250(); // tgen
+ ee66250(); // tgen
+};
+//SIG(1 ee66250) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66250 ::foo(){vfunc_called(this, "_ZN7ee662503fooEv");}
+void ee66250 ::bar(){vfunc_called(this, "_ZN7ee662503barEv");}
+ee66250 ::~ee66250(){ note_dtor("ee66250", this);} // tgen
+ee66250 ::ee66250(){ note_ctor("ee66250", this);} // tgen
+
+static void Test_ee66250()
+{
+ extern Class_Descriptor cd_ee66250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66250, buf);
+ ee66250 *dp, &lv = *(dp=new (buf) ee66250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(24,20), "ee66250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), 0, "ee66250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), 0, "ee66250");
+ check_base_class_offset(lv, (dd6250*), 0, "ee66250");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66250.e");
+ test_class_info(&lv, &cd_ee66250);
+ dp->~ee66250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66250(Test_ee66250, "ee66250", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66250C1Ev();
+extern void _ZN7ee66250D1Ev();
+Name_Map name_map_ee66250[] = {
+ NSPAIR(_ZN7ee66250C1Ev),
+ NSPAIR(_ZN7ee66250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee66250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66250[];
+extern void _ZN7ee662503barEv();
+extern void _ZN7ee662503fooEv();
+static VTBL_ENTRY vtc_ee66250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66250[0]),
+ (VTBL_ENTRY)&_ZN7ee662503barEv,
+ (VTBL_ENTRY)&_ZN7ee662503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee66250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee66250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee66250[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66250[] = {
+ {&(_ZTV7ee66250[3]), 3,5},
+ {&(_tg__ZTV6dd6250__7ee66250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee66250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee66250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66250[];
+extern VTBL_ENTRY _ZTV7ee66250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66250[];
+Class_Descriptor cd_ee66250 = { "ee66250", // class name
+ bases_ee66250, 4,
+ &(vtc_ee66250[0]), // expected_vtbl_contents
+ &(vtt_ee66250[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66250),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66250),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76250 : virtual dd6250 {
+ int e;
+ virtual void foo(); // _ZN7ee762503fooEv
+ virtual void bar(); // _ZN7ee762503barEv
+ ~ee76250(); // tgen
+ ee76250(); // tgen
+};
+//SIG(1 ee76250) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76250 ::foo(){vfunc_called(this, "_ZN7ee762503fooEv");}
+void ee76250 ::bar(){vfunc_called(this, "_ZN7ee762503barEv");}
+ee76250 ::~ee76250(){ note_dtor("ee76250", this);} // tgen
+ee76250 ::ee76250(){ note_ctor("ee76250", this);} // tgen
+
+static void Test_ee76250()
+{
+ extern Class_Descriptor cd_ee76250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76250, buf);
+ ee76250 *dp, &lv = *(dp=new (buf) ee76250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*)(dd6250*), ABISELECT(36,24), "ee76250");
+ check_base_class_offset(lv, (bb50*)(cc250*)(dd6250*), ABISELECT(16,8), "ee76250");
+ check_base_class_offset(lv, (cc250*)(dd6250*), ABISELECT(16,8), "ee76250");
+ check_base_class_offset(lv, (dd6250*), ABISELECT(16,8), "ee76250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76250.e");
+ test_class_info(&lv, &cd_ee76250);
+ dp->~ee76250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76250(Test_ee76250, "ee76250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76250C1Ev();
+extern void _ZN7ee76250D1Ev();
+Name_Map name_map_ee76250[] = {
+ NSPAIR(_ZN7ee76250C1Ev),
+ NSPAIR(_ZN7ee76250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd6250;
+extern VTBL_ENTRY _ZTI6dd6250[];
+extern VTBL_ENTRY _ZTV6dd6250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6250[];
+static Base_Class bases_ee76250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76250[];
+extern void _ZN7ee762503fooEv();
+extern void _ZN7ee762503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee762503barEv,_ZTv0_n16_N7ee762503barEv)();
+extern void ABISELECT(_ZThn16_N7ee762503barEv,_ZThn8_N7ee762503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee762503fooEv,_ZTv0_n20_N7ee762503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762503fooEv,_ZThn8_N7ee762503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76250[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76250[0]),
+ (VTBL_ENTRY)&_ZN7ee762503fooEv,
+ (VTBL_ENTRY)&_ZN7ee762503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762503barEv,_ZTv0_n16_N7ee762503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee762503fooEv,_ZTv0_n20_N7ee762503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76250[];
+extern void _ZN6dd62503barEv();
+extern void _ZN6dd62503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6250__7ee76250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6250[0]),
+ (VTBL_ENTRY)&_ZN6dd62503barEv,
+ (VTBL_ENTRY)&_ZN6dd62503fooEv,
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2506dd6250__7ee76250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc2506dd6250__7ee76250[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76250[] = {
+ {&(_ZTV7ee76250[4]), 4,13},
+ {&(_ZTV7ee76250[11]), 11,13},
+ {&(_tg__ZTV6dd6250__7ee76250[3]), 3,5},
+ {&(_tg__ZTV5cc2506dd6250__7ee76250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc2506dd6250__7ee76250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76250[];
+extern VTBL_ENTRY _ZTV7ee76250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76250[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee762503fooEv,_ZTv0_n20_N7ee762503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762503fooEv,_ZThn8_N7ee762503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762503barEv,_ZTv0_n16_N7ee762503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762503barEv,_ZThn8_N7ee762503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76250 = { "ee76250", // class name
+ bases_ee76250, 4,
+ &(vtc_ee76250[0]), // expected_vtbl_contents
+ &(vtt_ee76250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76250),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7250 : virtual cc250 {
+ int d;
+ virtual void bar(); // _ZN6dd72503barEv
+ virtual void foo(); // _ZN6dd72503fooEv
+ ~dd7250(); // tgen
+ dd7250(); // tgen
+};
+//SIG(-1 dd7250) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7250 ::bar(){vfunc_called(this, "_ZN6dd72503barEv");}
+void dd7250 ::foo(){vfunc_called(this, "_ZN6dd72503fooEv");}
+dd7250 ::~dd7250(){ note_dtor("dd7250", this);} // tgen
+dd7250 ::dd7250(){ note_ctor("dd7250", this);} // tgen
+
+static void Test_dd7250()
+{
+ extern Class_Descriptor cd_dd7250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7250, buf);
+ dd7250 *dp, &lv = *(dp=new (buf) dd7250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,20), "dd7250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,8), "dd7250");
+ check_base_class_offset(lv, (cc250*), ABISELECT(16,8), "dd7250");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7250.d");
+ test_class_info(&lv, &cd_dd7250);
+ dp->~dd7250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7250(Test_dd7250, "dd7250", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7250C1Ev();
+extern void _ZN6dd7250D1Ev();
+Name_Map name_map_dd7250[] = {
+ NSPAIR(_ZN6dd7250C1Ev),
+ NSPAIR(_ZN6dd7250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+static Base_Class bases_dd7250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__6dd7250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7250[] = {
+ {&(_ZTV6dd7250[4]), 4,13},
+ {&(_ZTV6dd7250[11]), 11,13},
+ {&(_tg__ZTV5cc250__6dd7250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__6dd7250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7250 = { "dd7250", // class name
+ bases_dd7250, 3,
+ &(vtc_dd7250[0]), // expected_vtbl_contents
+ &(vtt_dd7250[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7250),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07250 : dd7250 {
+ int e;
+ ~ee07250(); // tgen
+ ee07250(); // tgen
+};
+//SIG(1 ee07250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07250 ::~ee07250(){ note_dtor("ee07250", this);} // tgen
+ee07250 ::ee07250(){ note_ctor("ee07250", this);} // tgen
+
+static void Test_ee07250()
+{
+ extern Class_Descriptor cd_ee07250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07250, buf);
+ ee07250 *dp, &lv = *(dp=new (buf) ee07250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee07250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee07250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(16,12), "ee07250");
+ check_base_class_offset(lv, (dd7250*), 0, "ee07250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07250.e");
+ test_class_info(&lv, &cd_ee07250);
+ dp->~ee07250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07250(Test_ee07250, "ee07250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07250C1Ev();
+extern void _ZN7ee07250D1Ev();
+Name_Map name_map_ee07250[] = {
+ NSPAIR(_ZN7ee07250C1Ev),
+ NSPAIR(_ZN7ee07250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee07250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee07250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee07250[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee07250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee07250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07250[] = {
+ {&(_ZTV7ee07250[4]), 4,13},
+ {&(_tg__ZTV6dd7250__7ee07250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee07250[5]), 5,7},
+ {&(_ZTV7ee07250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee07250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee07250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07250[];
+extern VTBL_ENTRY _ZTV7ee07250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07250[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07250 = { "ee07250", // class name
+ bases_ee07250, 4,
+ &(vtc_ee07250[0]), // expected_vtbl_contents
+ &(vtt_ee07250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17250 : virtual dd7250 {
+ int e;
+ ~ee17250(); // tgen
+ ee17250(); // tgen
+};
+//SIG(1 ee17250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17250 ::~ee17250(){ note_dtor("ee17250", this);} // tgen
+ee17250 ::ee17250(){ note_ctor("ee17250", this);} // tgen
+
+static void Test_ee17250()
+{
+ extern Class_Descriptor cd_ee17250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17250, buf);
+ ee17250 *dp, &lv = *(dp=new (buf) ee17250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee17250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee17250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(32,16), "ee17250");
+ check_base_class_offset(lv, (dd7250*), ABISELECT(16,8), "ee17250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17250.e");
+ test_class_info(&lv, &cd_ee17250);
+ dp->~ee17250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17250(Test_ee17250, "ee17250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17250C1Ev();
+extern void _ZN7ee17250D1Ev();
+Name_Map name_map_ee17250[] = {
+ NSPAIR(_ZN7ee17250C1Ev),
+ NSPAIR(_ZN7ee17250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee17250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee17250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17250[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee17250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee17250[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee17250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee17250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17250[] = {
+ {&(_ZTV7ee17250[5]), 5,20},
+ {&(_ZTV7ee17250[11]), 11,20},
+ {&(_ZTV7ee17250[18]), 18,20},
+ {&(_tg__ZTV6dd7250__7ee17250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee17250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee17250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee17250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17250[];
+extern VTBL_ENTRY _ZTV7ee17250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17250[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17250 = { "ee17250", // class name
+ bases_ee17250, 4,
+ &(vtc_ee17250[0]), // expected_vtbl_contents
+ &(vtt_ee17250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17250),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27250 : dd7250 {
+ int e;
+ virtual void foo(); // _ZN7ee272503fooEv
+ ~ee27250(); // tgen
+ ee27250(); // tgen
+};
+//SIG(1 ee27250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27250 ::foo(){vfunc_called(this, "_ZN7ee272503fooEv");}
+ee27250 ::~ee27250(){ note_dtor("ee27250", this);} // tgen
+ee27250 ::ee27250(){ note_ctor("ee27250", this);} // tgen
+
+static void Test_ee27250()
+{
+ extern Class_Descriptor cd_ee27250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27250, buf);
+ ee27250 *dp, &lv = *(dp=new (buf) ee27250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee27250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee27250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(16,12), "ee27250");
+ check_base_class_offset(lv, (dd7250*), 0, "ee27250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27250.e");
+ test_class_info(&lv, &cd_ee27250);
+ dp->~ee27250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27250(Test_ee27250, "ee27250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27250C1Ev();
+extern void _ZN7ee27250D1Ev();
+Name_Map name_map_ee27250[] = {
+ NSPAIR(_ZN7ee27250C1Ev),
+ NSPAIR(_ZN7ee27250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee27250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN7ee272503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee272503fooEv,_ZTv0_n20_N7ee272503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272503fooEv,_ZThn12_N7ee272503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN7ee272503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee272503fooEv,_ZTv0_n20_N7ee272503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee27250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee27250[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee27250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee27250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27250[] = {
+ {&(_ZTV7ee27250[4]), 4,13},
+ {&(_tg__ZTV6dd7250__7ee27250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee27250[5]), 5,7},
+ {&(_ZTV7ee27250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee27250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee27250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27250[];
+extern VTBL_ENTRY _ZTV7ee27250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27250[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee272503fooEv,_ZTv0_n20_N7ee272503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272503fooEv,_ZThn12_N7ee272503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27250 = { "ee27250", // class name
+ bases_ee27250, 4,
+ &(vtc_ee27250[0]), // expected_vtbl_contents
+ &(vtt_ee27250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37250 : virtual dd7250 {
+ int e;
+ virtual void foo(); // _ZN7ee372503fooEv
+ ~ee37250(); // tgen
+ ee37250(); // tgen
+};
+//SIG(1 ee37250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37250 ::foo(){vfunc_called(this, "_ZN7ee372503fooEv");}
+ee37250 ::~ee37250(){ note_dtor("ee37250", this);} // tgen
+ee37250 ::ee37250(){ note_ctor("ee37250", this);} // tgen
+
+static void Test_ee37250()
+{
+ extern Class_Descriptor cd_ee37250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37250, buf);
+ ee37250 *dp, &lv = *(dp=new (buf) ee37250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee37250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee37250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(32,16), "ee37250");
+ check_base_class_offset(lv, (dd7250*), ABISELECT(16,8), "ee37250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37250.e");
+ test_class_info(&lv, &cd_ee37250);
+ dp->~ee37250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37250(Test_ee37250, "ee37250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37250C1Ev();
+extern void _ZN7ee37250D1Ev();
+Name_Map name_map_ee37250[] = {
+ NSPAIR(_ZN7ee37250C1Ev),
+ NSPAIR(_ZN7ee37250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee37250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee37250[];
+extern void _ZN7ee372503fooEv();
+extern void _ZN6dd72503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee372503fooEv,_ZTv0_n24_N7ee372503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372503fooEv,_ZThn8_N7ee372503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee372503fooEv,_ZTv0_n20_N7ee372503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372503fooEv,_ZThn16_N7ee372503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37250[0]),
+ (VTBL_ENTRY)&_ZN7ee372503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee372503fooEv,_ZTv0_n24_N7ee372503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372503fooEv,_ZTv0_n20_N7ee372503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee37250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee37250[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee37250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee37250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37250[] = {
+ {&(_ZTV7ee37250[5]), 5,21},
+ {&(_ZTV7ee37250[12]), 12,21},
+ {&(_ZTV7ee37250[19]), 19,21},
+ {&(_tg__ZTV6dd7250__7ee37250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee37250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee37250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee37250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37250[];
+extern VTBL_ENTRY _ZTV7ee37250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37250[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372503fooEv,_ZTv0_n20_N7ee372503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372503fooEv,_ZThn16_N7ee372503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee372503fooEv,_ZTv0_n24_N7ee372503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372503fooEv,_ZThn8_N7ee372503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37250 = { "ee37250", // class name
+ bases_ee37250, 4,
+ &(vtc_ee37250[0]), // expected_vtbl_contents
+ &(vtt_ee37250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37250),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47250 : dd7250 {
+ int e;
+ virtual void bar(); // _ZN7ee472503barEv
+ ~ee47250(); // tgen
+ ee47250(); // tgen
+};
+//SIG(1 ee47250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47250 ::bar(){vfunc_called(this, "_ZN7ee472503barEv");}
+ee47250 ::~ee47250(){ note_dtor("ee47250", this);} // tgen
+ee47250 ::ee47250(){ note_ctor("ee47250", this);} // tgen
+
+static void Test_ee47250()
+{
+ extern Class_Descriptor cd_ee47250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47250, buf);
+ ee47250 *dp, &lv = *(dp=new (buf) ee47250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee47250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee47250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(16,12), "ee47250");
+ check_base_class_offset(lv, (dd7250*), 0, "ee47250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47250.e");
+ test_class_info(&lv, &cd_ee47250);
+ dp->~ee47250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47250(Test_ee47250, "ee47250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47250C1Ev();
+extern void _ZN7ee47250D1Ev();
+Name_Map name_map_ee47250[] = {
+ NSPAIR(_ZN7ee47250C1Ev),
+ NSPAIR(_ZN7ee47250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee47250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47250[];
+extern void _ZN7ee472503barEv();
+extern void _ZN6dd72503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee472503barEv,_ZTv0_n16_N7ee472503barEv)();
+extern void ABISELECT(_ZThn16_N7ee472503barEv,_ZThn12_N7ee472503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47250[0]),
+ (VTBL_ENTRY)&_ZN7ee472503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472503barEv,_ZTv0_n16_N7ee472503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee47250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee47250[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee47250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee47250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47250[] = {
+ {&(_ZTV7ee47250[4]), 4,13},
+ {&(_tg__ZTV6dd7250__7ee47250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee47250[5]), 5,7},
+ {&(_ZTV7ee47250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee47250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee47250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47250[];
+extern VTBL_ENTRY _ZTV7ee47250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47250[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472503barEv,_ZTv0_n16_N7ee472503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472503barEv,_ZThn12_N7ee472503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47250 = { "ee47250", // class name
+ bases_ee47250, 4,
+ &(vtc_ee47250[0]), // expected_vtbl_contents
+ &(vtt_ee47250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57250 : virtual dd7250 {
+ int e;
+ virtual void bar(); // _ZN7ee572503barEv
+ ~ee57250(); // tgen
+ ee57250(); // tgen
+};
+//SIG(1 ee57250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57250 ::bar(){vfunc_called(this, "_ZN7ee572503barEv");}
+ee57250 ::~ee57250(){ note_dtor("ee57250", this);} // tgen
+ee57250 ::ee57250(){ note_ctor("ee57250", this);} // tgen
+
+static void Test_ee57250()
+{
+ extern Class_Descriptor cd_ee57250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57250, buf);
+ ee57250 *dp, &lv = *(dp=new (buf) ee57250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee57250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee57250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(32,16), "ee57250");
+ check_base_class_offset(lv, (dd7250*), ABISELECT(16,8), "ee57250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57250.e");
+ test_class_info(&lv, &cd_ee57250);
+ dp->~ee57250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57250(Test_ee57250, "ee57250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57250C1Ev();
+extern void _ZN7ee57250D1Ev();
+Name_Map name_map_ee57250[] = {
+ NSPAIR(_ZN7ee57250C1Ev),
+ NSPAIR(_ZN7ee57250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee57250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee57250[];
+extern void _ZN7ee572503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee572503barEv,_ZTv0_n20_N7ee572503barEv)();
+extern void ABISELECT(_ZThn16_N7ee572503barEv,_ZThn8_N7ee572503barEv)() __attribute__((weak));
+extern void _ZN6dd72503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572503barEv,_ZTv0_n16_N7ee572503barEv)();
+extern void ABISELECT(_ZThn32_N7ee572503barEv,_ZThn16_N7ee572503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57250[0]),
+ (VTBL_ENTRY)&_ZN7ee572503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee572503barEv,_ZTv0_n20_N7ee572503barEv),
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572503barEv,_ZTv0_n16_N7ee572503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee57250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee57250[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee57250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee57250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57250[] = {
+ {&(_ZTV7ee57250[5]), 5,21},
+ {&(_ZTV7ee57250[12]), 12,21},
+ {&(_ZTV7ee57250[19]), 19,21},
+ {&(_tg__ZTV6dd7250__7ee57250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee57250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee57250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee57250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57250[];
+extern VTBL_ENTRY _ZTV7ee57250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57250[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572503barEv,_ZTv0_n16_N7ee572503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572503barEv,_ZThn16_N7ee572503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee572503barEv,_ZTv0_n20_N7ee572503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572503barEv,_ZThn8_N7ee572503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57250 = { "ee57250", // class name
+ bases_ee57250, 4,
+ &(vtc_ee57250[0]), // expected_vtbl_contents
+ &(vtt_ee57250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57250),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67250 : dd7250 {
+ int e;
+ virtual void foo(); // _ZN7ee672503fooEv
+ virtual void bar(); // _ZN7ee672503barEv
+ ~ee67250(); // tgen
+ ee67250(); // tgen
+};
+//SIG(1 ee67250) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67250 ::foo(){vfunc_called(this, "_ZN7ee672503fooEv");}
+void ee67250 ::bar(){vfunc_called(this, "_ZN7ee672503barEv");}
+ee67250 ::~ee67250(){ note_dtor("ee67250", this);} // tgen
+ee67250 ::ee67250(){ note_ctor("ee67250", this);} // tgen
+
+static void Test_ee67250()
+{
+ extern Class_Descriptor cd_ee67250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67250, buf);
+ ee67250 *dp, &lv = *(dp=new (buf) ee67250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(32,24), "ee67250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(16,12), "ee67250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(16,12), "ee67250");
+ check_base_class_offset(lv, (dd7250*), 0, "ee67250");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67250.e");
+ test_class_info(&lv, &cd_ee67250);
+ dp->~ee67250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67250(Test_ee67250, "ee67250", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67250C1Ev();
+extern void _ZN7ee67250D1Ev();
+Name_Map name_map_ee67250[] = {
+ NSPAIR(_ZN7ee67250C1Ev),
+ NSPAIR(_ZN7ee67250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee67250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67250[];
+extern void _ZN7ee672503barEv();
+extern void _ZN7ee672503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee672503barEv,_ZTv0_n16_N7ee672503barEv)();
+extern void ABISELECT(_ZThn16_N7ee672503barEv,_ZThn12_N7ee672503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee672503fooEv,_ZTv0_n20_N7ee672503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672503fooEv,_ZThn12_N7ee672503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67250[0]),
+ (VTBL_ENTRY)&_ZN7ee672503barEv,
+ (VTBL_ENTRY)&_ZN7ee672503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672503barEv,_ZTv0_n16_N7ee672503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee672503fooEv,_ZTv0_n20_N7ee672503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee67250[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee67250[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee67250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee67250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67250[] = {
+ {&(_ZTV7ee67250[4]), 4,13},
+ {&(_tg__ZTV6dd7250__7ee67250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee67250[5]), 5,7},
+ {&(_ZTV7ee67250[11]), 11,13},
+ {&(_tg__ZTV5cc250__7ee67250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee67250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67250[];
+extern VTBL_ENTRY _ZTV7ee67250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67250[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn12_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn12_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee672503fooEv,_ZTv0_n20_N7ee672503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672503fooEv,_ZThn12_N7ee672503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672503barEv,_ZTv0_n16_N7ee672503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672503barEv,_ZThn12_N7ee672503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67250 = { "ee67250", // class name
+ bases_ee67250, 4,
+ &(vtc_ee67250[0]), // expected_vtbl_contents
+ &(vtt_ee67250[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67250),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67250),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67250),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77250 : virtual dd7250 {
+ int e;
+ virtual void foo(); // _ZN7ee772503fooEv
+ virtual void bar(); // _ZN7ee772503barEv
+ ~ee77250(); // tgen
+ ee77250(); // tgen
+};
+//SIG(1 ee77250) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77250 ::foo(){vfunc_called(this, "_ZN7ee772503fooEv");}
+void ee77250 ::bar(){vfunc_called(this, "_ZN7ee772503barEv");}
+ee77250 ::~ee77250(){ note_dtor("ee77250", this);} // tgen
+ee77250 ::ee77250(){ note_ctor("ee77250", this);} // tgen
+
+static void Test_ee77250()
+{
+ extern Class_Descriptor cd_ee77250;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77250, buf);
+ ee77250 *dp, &lv = *(dp=new (buf) ee77250());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77250)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77250)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc250*), ABISELECT(48,28), "ee77250");
+ check_base_class_offset(lv, (bb50*)(cc250*), ABISELECT(32,16), "ee77250");
+ check_base_class_offset(lv, (cc250*)(dd7250*), ABISELECT(32,16), "ee77250");
+ check_base_class_offset(lv, (dd7250*), ABISELECT(16,8), "ee77250");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77250.e");
+ test_class_info(&lv, &cd_ee77250);
+ dp->~ee77250();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77250(Test_ee77250, "ee77250", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77250C1Ev();
+extern void _ZN7ee77250D1Ev();
+Name_Map name_map_ee77250[] = {
+ NSPAIR(_ZN7ee77250C1Ev),
+ NSPAIR(_ZN7ee77250D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc250;
+extern VTBL_ENTRY _ZTI5cc250[];
+extern VTBL_ENTRY _ZTV5cc250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc250[];
+extern Class_Descriptor cd_dd7250;
+extern VTBL_ENTRY _ZTI6dd7250[];
+extern VTBL_ENTRY _ZTV6dd7250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7250[];
+static Base_Class bases_ee77250[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc250, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7250, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee77250[];
+extern void _ZN7ee772503fooEv();
+extern void _ZN7ee772503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee772503barEv,_ZTv0_n20_N7ee772503barEv)();
+extern void ABISELECT(_ZThn16_N7ee772503barEv,_ZThn8_N7ee772503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee772503fooEv,_ZTv0_n24_N7ee772503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772503fooEv,_ZThn8_N7ee772503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772503barEv,_ZTv0_n16_N7ee772503barEv)();
+extern void ABISELECT(_ZThn32_N7ee772503barEv,_ZThn16_N7ee772503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772503fooEv,_ZTv0_n20_N7ee772503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772503fooEv,_ZThn16_N7ee772503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77250[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77250[0]),
+ (VTBL_ENTRY)&_ZN7ee772503fooEv,
+ (VTBL_ENTRY)&_ZN7ee772503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772503barEv,_ZTv0_n20_N7ee772503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee772503fooEv,_ZTv0_n24_N7ee772503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772503barEv,_ZTv0_n16_N7ee772503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772503fooEv,_ZTv0_n20_N7ee772503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77250[];
+extern void _ZN6dd72503barEv();
+extern void _ZN6dd72503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7250__7ee77250[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&_ZN6dd72503barEv,
+ (VTBL_ENTRY)&_ZN6dd72503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv)();
+extern void ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc250__6dd7250__7ee77250[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7250[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv),
+};
+extern void _ZN4bb503barEv();
+extern void _ZN5cc2503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc250__7ee77250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc250[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+ (VTBL_ENTRY)&_ZN5cc2503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc250__7ee77250[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77250[] = {
+ {&(_ZTV7ee77250[5]), 5,22},
+ {&(_ZTV7ee77250[13]), 13,22},
+ {&(_ZTV7ee77250[20]), 20,22},
+ {&(_tg__ZTV6dd7250__7ee77250[4]), 4,6},
+ {&(_tg__ZTV5cc250__6dd7250__7ee77250[5]), 5,7},
+ {&(_tg__ZTV5cc250__7ee77250[3]), 3,5},
+ {&(_tg__ZTV4bb505cc250__7ee77250[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77250[];
+extern VTBL_ENTRY _ZTV7ee77250[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77250[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72503fooEv,_ZTv0_n20_N6dd72503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503fooEv,_ZThn8_N6dd72503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72503barEv,_ZTv0_n16_N6dd72503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72503barEv,_ZThn8_N6dd72503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772503fooEv,_ZTv0_n20_N7ee772503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772503fooEv,_ZThn16_N7ee772503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772503barEv,_ZTv0_n16_N7ee772503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772503barEv,_ZThn16_N7ee772503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee772503fooEv,_ZTv0_n24_N7ee772503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772503fooEv,_ZThn8_N7ee772503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772503barEv,_ZTv0_n20_N7ee772503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772503barEv,_ZThn8_N7ee772503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77250 = { "ee77250", // class name
+ bases_ee77250, 4,
+ &(vtc_ee77250[0]), // expected_vtbl_contents
+ &(vtt_ee77250[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77250),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77250),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77250),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc350 : virtual bb50 {
+ int c;
+ virtual void foo(); // _ZN5cc3503fooEv
+ ~cc350(); // tgen
+ cc350(); // tgen
+};
+//SIG(-1 cc350) C1{ VBC2{ VBC3{ Fi} v2 Fi} v1 Fi}
+
+
+void cc350 ::foo(){vfunc_called(this, "_ZN5cc3503fooEv");}
+cc350 ::~cc350(){ note_dtor("cc350", this);} // tgen
+cc350 ::cc350(){ note_ctor("cc350", this);} // tgen
+
+static void Test_cc350()
+{
+ extern Class_Descriptor cd_cc350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc350, buf);
+ cc350 *dp, &lv = *(dp=new (buf) cc350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,16), "cc350");
+ check_base_class_offset(lv, (bb50*), ABISELECT(16,8), "cc350");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc350.c");
+ test_class_info(&lv, &cd_cc350);
+ dp->~cc350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc350(Test_cc350, "cc350", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc350C1Ev();
+extern void _ZN5cc350D1Ev();
+Name_Map name_map_cc350[] = {
+ NSPAIR(_ZN5cc350C1Ev),
+ NSPAIR(_ZN5cc350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_cc350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV5cc350[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc350[] = {
+ {&(_ZTV5cc350[4]), 4,10},
+ {&(_ZTV5cc350[9]), 9,10},
+ {&(_tg__ZTV4bb50__5cc350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+Class_Descriptor cd_cc350 = { "cc350", // class name
+ bases_cc350, 2,
+ &(vtc_cc350[0]), // expected_vtbl_contents
+ &(vtt_cc350[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc350),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0350 : cc350 {
+ int d;
+ ~dd0350(); // tgen
+ dd0350(); // tgen
+};
+//SIG(-1 dd0350) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0350 ::~dd0350(){ note_dtor("dd0350", this);} // tgen
+dd0350 ::dd0350(){ note_ctor("dd0350", this);} // tgen
+
+static void Test_dd0350()
+{
+ extern Class_Descriptor cd_dd0350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0350, buf);
+ dd0350 *dp, &lv = *(dp=new (buf) dd0350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd0350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(16,12), "dd0350");
+ check_base_class_offset(lv, (cc350*), 0, "dd0350");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0350.d");
+ test_class_info(&lv, &cd_dd0350);
+ dp->~dd0350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0350(Test_dd0350, "dd0350", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0350C1Ev();
+extern void _ZN6dd0350D1Ev();
+Name_Map name_map_dd0350[] = {
+ NSPAIR(_ZN6dd0350C1Ev),
+ NSPAIR(_ZN6dd0350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd0350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd0350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd0350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd0350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0350[] = {
+ {&(_ZTV6dd0350[4]), 4,10},
+ {&(_tg__ZTV5cc350__6dd0350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd0350[4]), 4,5},
+ {&(_ZTV6dd0350[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd0350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+Class_Descriptor cd_dd0350 = { "dd0350", // class name
+ bases_dd0350, 3,
+ &(vtc_dd0350[0]), // expected_vtbl_contents
+ &(vtt_dd0350[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0350),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00350 : dd0350 {
+ int e;
+ ~ee00350(); // tgen
+ ee00350(); // tgen
+};
+//SIG(1 ee00350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00350 ::~ee00350(){ note_dtor("ee00350", this);} // tgen
+ee00350 ::ee00350(){ note_ctor("ee00350", this);} // tgen
+
+static void Test_ee00350()
+{
+ extern Class_Descriptor cd_ee00350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00350, buf);
+ ee00350 *dp, &lv = *(dp=new (buf) ee00350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee00350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(24,16), "ee00350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), 0, "ee00350");
+ check_base_class_offset(lv, (dd0350*), 0, "ee00350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00350.e");
+ test_class_info(&lv, &cd_ee00350);
+ dp->~ee00350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00350(Test_ee00350, "ee00350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00350C1Ev();
+extern void _ZN7ee00350D1Ev();
+Name_Map name_map_ee00350[] = {
+ NSPAIR(_ZN7ee00350C1Ev),
+ NSPAIR(_ZN7ee00350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee00350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee00350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee00350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee00350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee00350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee00350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee00350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00350[] = {
+ {&(_ZTV7ee00350[4]), 4,10},
+ {&(_tg__ZTV6dd0350__7ee00350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee00350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee00350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee00350[4]), 4,5},
+ {&(_ZTV7ee00350[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee00350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00350[];
+extern VTBL_ENTRY _ZTV7ee00350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00350[];
+Class_Descriptor cd_ee00350 = { "ee00350", // class name
+ bases_ee00350, 4,
+ &(vtc_ee00350[0]), // expected_vtbl_contents
+ &(vtt_ee00350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10350 : virtual dd0350 {
+ int e;
+ ~ee10350(); // tgen
+ ee10350(); // tgen
+};
+//SIG(1 ee10350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10350 ::~ee10350(){ note_dtor("ee10350", this);} // tgen
+ee10350 ::ee10350(){ note_ctor("ee10350", this);} // tgen
+
+static void Test_ee10350()
+{
+ extern Class_Descriptor cd_ee10350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10350, buf);
+ ee10350 *dp, &lv = *(dp=new (buf) ee10350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee10350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(32,20), "ee10350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), ABISELECT(16,8), "ee10350");
+ check_base_class_offset(lv, (dd0350*), ABISELECT(16,8), "ee10350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10350.e");
+ test_class_info(&lv, &cd_ee10350);
+ dp->~ee10350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10350(Test_ee10350, "ee10350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10350C1Ev();
+extern void _ZN7ee10350D1Ev();
+Name_Map name_map_ee10350[] = {
+ NSPAIR(_ZN7ee10350C1Ev),
+ NSPAIR(_ZN7ee10350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee10350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee10350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee10350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10350[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee10350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee10350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee10350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee10350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee10350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10350[] = {
+ {&(_ZTV7ee10350[5]), 5,16},
+ {&(_ZTV7ee10350[10]), 10,16},
+ {&(_ZTV7ee10350[15]), 15,16},
+ {&(_tg__ZTV6dd0350__7ee10350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee10350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee10350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee10350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee10350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10350[];
+extern VTBL_ENTRY _ZTV7ee10350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10350[];
+Class_Descriptor cd_ee10350 = { "ee10350", // class name
+ bases_ee10350, 4,
+ &(vtc_ee10350[0]), // expected_vtbl_contents
+ &(vtt_ee10350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10350),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20350 : dd0350 {
+ int e;
+ virtual void foo(); // _ZN7ee203503fooEv
+ ~ee20350(); // tgen
+ ee20350(); // tgen
+};
+//SIG(1 ee20350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20350 ::foo(){vfunc_called(this, "_ZN7ee203503fooEv");}
+ee20350 ::~ee20350(){ note_dtor("ee20350", this);} // tgen
+ee20350 ::ee20350(){ note_ctor("ee20350", this);} // tgen
+
+static void Test_ee20350()
+{
+ extern Class_Descriptor cd_ee20350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20350, buf);
+ ee20350 *dp, &lv = *(dp=new (buf) ee20350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee20350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(24,16), "ee20350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), 0, "ee20350");
+ check_base_class_offset(lv, (dd0350*), 0, "ee20350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20350.e");
+ test_class_info(&lv, &cd_ee20350);
+ dp->~ee20350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20350(Test_ee20350, "ee20350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20350C1Ev();
+extern void _ZN7ee20350D1Ev();
+Name_Map name_map_ee20350[] = {
+ NSPAIR(_ZN7ee20350C1Ev),
+ NSPAIR(_ZN7ee20350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee20350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20350[];
+extern void _ZN7ee203503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee20350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20350[0]),
+ (VTBL_ENTRY)&_ZN7ee203503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee20350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee20350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee20350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee20350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee20350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee20350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20350[] = {
+ {&(_ZTV7ee20350[4]), 4,10},
+ {&(_tg__ZTV6dd0350__7ee20350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee20350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee20350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee20350[4]), 4,5},
+ {&(_ZTV7ee20350[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee20350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20350[];
+extern VTBL_ENTRY _ZTV7ee20350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20350[];
+Class_Descriptor cd_ee20350 = { "ee20350", // class name
+ bases_ee20350, 4,
+ &(vtc_ee20350[0]), // expected_vtbl_contents
+ &(vtt_ee20350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30350 : virtual dd0350 {
+ int e;
+ virtual void foo(); // _ZN7ee303503fooEv
+ ~ee30350(); // tgen
+ ee30350(); // tgen
+};
+//SIG(1 ee30350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30350 ::foo(){vfunc_called(this, "_ZN7ee303503fooEv");}
+ee30350 ::~ee30350(){ note_dtor("ee30350", this);} // tgen
+ee30350 ::ee30350(){ note_ctor("ee30350", this);} // tgen
+
+static void Test_ee30350()
+{
+ extern Class_Descriptor cd_ee30350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30350, buf);
+ ee30350 *dp, &lv = *(dp=new (buf) ee30350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee30350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(32,20), "ee30350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), ABISELECT(16,8), "ee30350");
+ check_base_class_offset(lv, (dd0350*), ABISELECT(16,8), "ee30350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30350.e");
+ test_class_info(&lv, &cd_ee30350);
+ dp->~ee30350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30350(Test_ee30350, "ee30350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30350C1Ev();
+extern void _ZN7ee30350D1Ev();
+Name_Map name_map_ee30350[] = {
+ NSPAIR(_ZN7ee30350C1Ev),
+ NSPAIR(_ZN7ee30350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee30350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee30350[];
+extern void _ZN7ee303503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee303503fooEv,_ZTv0_n20_N7ee303503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303503fooEv,_ZThn8_N7ee303503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee30350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30350[0]),
+ (VTBL_ENTRY)&_ZN7ee303503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee303503fooEv,_ZTv0_n20_N7ee303503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee30350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee30350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee30350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee30350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee30350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30350[] = {
+ {&(_ZTV7ee30350[5]), 5,17},
+ {&(_ZTV7ee30350[11]), 11,17},
+ {&(_ZTV7ee30350[16]), 16,17},
+ {&(_tg__ZTV6dd0350__7ee30350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee30350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee30350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee30350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee30350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30350[];
+extern VTBL_ENTRY _ZTV7ee30350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30350[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee303503fooEv,_ZTv0_n20_N7ee303503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303503fooEv,_ZThn8_N7ee303503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30350 = { "ee30350", // class name
+ bases_ee30350, 4,
+ &(vtc_ee30350[0]), // expected_vtbl_contents
+ &(vtt_ee30350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40350 : dd0350 {
+ int e;
+ virtual void bar(); // _ZN7ee403503barEv
+ ~ee40350(); // tgen
+ ee40350(); // tgen
+};
+//SIG(1 ee40350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40350 ::bar(){vfunc_called(this, "_ZN7ee403503barEv");}
+ee40350 ::~ee40350(){ note_dtor("ee40350", this);} // tgen
+ee40350 ::ee40350(){ note_ctor("ee40350", this);} // tgen
+
+static void Test_ee40350()
+{
+ extern Class_Descriptor cd_ee40350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40350, buf);
+ ee40350 *dp, &lv = *(dp=new (buf) ee40350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee40350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(24,16), "ee40350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), 0, "ee40350");
+ check_base_class_offset(lv, (dd0350*), 0, "ee40350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40350.e");
+ test_class_info(&lv, &cd_ee40350);
+ dp->~ee40350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40350(Test_ee40350, "ee40350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40350C1Ev();
+extern void _ZN7ee40350D1Ev();
+Name_Map name_map_ee40350[] = {
+ NSPAIR(_ZN7ee40350C1Ev),
+ NSPAIR(_ZN7ee40350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee40350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN7ee403503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee403503barEv,_ZTv0_n16_N7ee403503barEv)();
+extern void ABISELECT(_ZThn24_N7ee403503barEv,_ZThn16_N7ee403503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN7ee403503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403503barEv,_ZTv0_n16_N7ee403503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee40350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee40350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee40350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee40350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee40350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40350[] = {
+ {&(_ZTV7ee40350[4]), 4,11},
+ {&(_tg__ZTV6dd0350__7ee40350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee40350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee40350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee40350[4]), 4,5},
+ {&(_ZTV7ee40350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee40350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40350[];
+extern VTBL_ENTRY _ZTV7ee40350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40350[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403503barEv,_ZTv0_n16_N7ee403503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403503barEv,_ZThn16_N7ee403503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40350 = { "ee40350", // class name
+ bases_ee40350, 4,
+ &(vtc_ee40350[0]), // expected_vtbl_contents
+ &(vtt_ee40350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50350 : virtual dd0350 {
+ int e;
+ virtual void bar(); // _ZN7ee503503barEv
+ ~ee50350(); // tgen
+ ee50350(); // tgen
+};
+//SIG(1 ee50350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50350 ::bar(){vfunc_called(this, "_ZN7ee503503barEv");}
+ee50350 ::~ee50350(){ note_dtor("ee50350", this);} // tgen
+ee50350 ::ee50350(){ note_ctor("ee50350", this);} // tgen
+
+static void Test_ee50350()
+{
+ extern Class_Descriptor cd_ee50350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50350, buf);
+ ee50350 *dp, &lv = *(dp=new (buf) ee50350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee50350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(32,20), "ee50350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), ABISELECT(16,8), "ee50350");
+ check_base_class_offset(lv, (dd0350*), ABISELECT(16,8), "ee50350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50350.e");
+ test_class_info(&lv, &cd_ee50350);
+ dp->~ee50350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50350(Test_ee50350, "ee50350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50350C1Ev();
+extern void _ZN7ee50350D1Ev();
+Name_Map name_map_ee50350[] = {
+ NSPAIR(_ZN7ee50350C1Ev),
+ NSPAIR(_ZN7ee50350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee50350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee50350[];
+extern void _ZN7ee503503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee503503barEv,_ZTv0_n16_N7ee503503barEv)();
+extern void ABISELECT(_ZThn32_N7ee503503barEv,_ZThn20_N7ee503503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50350[0]),
+ (VTBL_ENTRY)&_ZN7ee503503barEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503503barEv,_ZTv0_n16_N7ee503503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee50350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee50350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee50350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee50350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee50350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50350[] = {
+ {&(_ZTV7ee50350[5]), 5,17},
+ {&(_ZTV7ee50350[11]), 11,17},
+ {&(_ZTV7ee50350[16]), 16,17},
+ {&(_tg__ZTV6dd0350__7ee50350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee50350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee50350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee50350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee50350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50350[];
+extern VTBL_ENTRY _ZTV7ee50350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50350[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503503barEv,_ZTv0_n16_N7ee503503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503503barEv,_ZThn20_N7ee503503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50350 = { "ee50350", // class name
+ bases_ee50350, 4,
+ &(vtc_ee50350[0]), // expected_vtbl_contents
+ &(vtt_ee50350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60350 : dd0350 {
+ int e;
+ virtual void foo(); // _ZN7ee603503fooEv
+ virtual void bar(); // _ZN7ee603503barEv
+ ~ee60350(); // tgen
+ ee60350(); // tgen
+};
+//SIG(1 ee60350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60350 ::foo(){vfunc_called(this, "_ZN7ee603503fooEv");}
+void ee60350 ::bar(){vfunc_called(this, "_ZN7ee603503barEv");}
+ee60350 ::~ee60350(){ note_dtor("ee60350", this);} // tgen
+ee60350 ::ee60350(){ note_ctor("ee60350", this);} // tgen
+
+static void Test_ee60350()
+{
+ extern Class_Descriptor cd_ee60350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60350, buf);
+ ee60350 *dp, &lv = *(dp=new (buf) ee60350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee60350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(24,16), "ee60350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), 0, "ee60350");
+ check_base_class_offset(lv, (dd0350*), 0, "ee60350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60350.e");
+ test_class_info(&lv, &cd_ee60350);
+ dp->~ee60350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60350(Test_ee60350, "ee60350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60350C1Ev();
+extern void _ZN7ee60350D1Ev();
+Name_Map name_map_ee60350[] = {
+ NSPAIR(_ZN7ee60350C1Ev),
+ NSPAIR(_ZN7ee60350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee60350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60350[];
+extern void _ZN7ee603503fooEv();
+extern void _ZN7ee603503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee603503barEv,_ZTv0_n16_N7ee603503barEv)();
+extern void ABISELECT(_ZThn24_N7ee603503barEv,_ZThn16_N7ee603503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60350[0]),
+ (VTBL_ENTRY)&_ZN7ee603503fooEv,
+ (VTBL_ENTRY)&_ZN7ee603503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603503barEv,_ZTv0_n16_N7ee603503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee60350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee60350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee60350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee60350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee60350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60350[] = {
+ {&(_ZTV7ee60350[4]), 4,11},
+ {&(_tg__ZTV6dd0350__7ee60350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee60350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee60350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee60350[4]), 4,5},
+ {&(_ZTV7ee60350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee60350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60350[];
+extern VTBL_ENTRY _ZTV7ee60350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60350[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603503barEv,_ZTv0_n16_N7ee603503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603503barEv,_ZThn16_N7ee603503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60350 = { "ee60350", // class name
+ bases_ee60350, 4,
+ &(vtc_ee60350[0]), // expected_vtbl_contents
+ &(vtt_ee60350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70350 : virtual dd0350 {
+ int e;
+ virtual void foo(); // _ZN7ee703503fooEv
+ virtual void bar(); // _ZN7ee703503barEv
+ ~ee70350(); // tgen
+ ee70350(); // tgen
+};
+//SIG(1 ee70350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70350 ::foo(){vfunc_called(this, "_ZN7ee703503fooEv");}
+void ee70350 ::bar(){vfunc_called(this, "_ZN7ee703503barEv");}
+ee70350 ::~ee70350(){ note_dtor("ee70350", this);} // tgen
+ee70350 ::ee70350(){ note_ctor("ee70350", this);} // tgen
+
+static void Test_ee70350()
+{
+ extern Class_Descriptor cd_ee70350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70350, buf);
+ ee70350 *dp, &lv = *(dp=new (buf) ee70350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee70350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd0350*), ABISELECT(32,20), "ee70350");
+ check_base_class_offset(lv, (cc350*)(dd0350*), ABISELECT(16,8), "ee70350");
+ check_base_class_offset(lv, (dd0350*), ABISELECT(16,8), "ee70350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70350.e");
+ test_class_info(&lv, &cd_ee70350);
+ dp->~ee70350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70350(Test_ee70350, "ee70350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70350C1Ev();
+extern void _ZN7ee70350D1Ev();
+Name_Map name_map_ee70350[] = {
+ NSPAIR(_ZN7ee70350C1Ev),
+ NSPAIR(_ZN7ee70350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd0350;
+extern VTBL_ENTRY _ZTI6dd0350[];
+extern VTBL_ENTRY _ZTV6dd0350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0350[];
+static Base_Class bases_ee70350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0350, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70350[];
+extern void _ZN7ee703503fooEv();
+extern void _ZN7ee703503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee703503fooEv,_ZTv0_n20_N7ee703503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703503fooEv,_ZThn8_N7ee703503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703503barEv,_ZTv0_n16_N7ee703503barEv)();
+extern void ABISELECT(_ZThn32_N7ee703503barEv,_ZThn20_N7ee703503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70350[0]),
+ (VTBL_ENTRY)&_ZN7ee703503fooEv,
+ (VTBL_ENTRY)&_ZN7ee703503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee703503fooEv,_ZTv0_n20_N7ee703503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703503barEv,_ZTv0_n16_N7ee703503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0350__7ee70350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd0350__7ee70350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd0350__7ee70350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0350__7ee70350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee70350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70350[] = {
+ {&(_ZTV7ee70350[5]), 5,18},
+ {&(_ZTV7ee70350[12]), 12,18},
+ {&(_ZTV7ee70350[17]), 17,18},
+ {&(_tg__ZTV6dd0350__7ee70350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd0350__7ee70350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd0350__7ee70350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0350__7ee70350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee70350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70350[];
+extern VTBL_ENTRY _ZTV7ee70350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70350[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703503barEv,_ZTv0_n16_N7ee703503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703503barEv,_ZThn20_N7ee703503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee703503fooEv,_ZTv0_n20_N7ee703503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703503fooEv,_ZThn8_N7ee703503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70350 = { "ee70350", // class name
+ bases_ee70350, 4,
+ &(vtc_ee70350[0]), // expected_vtbl_contents
+ &(vtt_ee70350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1350 : virtual cc350 {
+ int d;
+ ~dd1350(); // tgen
+ dd1350(); // tgen
+};
+//SIG(-1 dd1350) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1350 ::~dd1350(){ note_dtor("dd1350", this);} // tgen
+dd1350 ::dd1350(){ note_ctor("dd1350", this);} // tgen
+
+static void Test_dd1350()
+{
+ extern Class_Descriptor cd_dd1350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1350, buf);
+ dd1350 *dp, &lv = *(dp=new (buf) dd1350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd1350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,16), "dd1350");
+ check_base_class_offset(lv, (cc350*), ABISELECT(16,8), "dd1350");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1350.d");
+ test_class_info(&lv, &cd_dd1350);
+ dp->~dd1350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1350(Test_dd1350, "dd1350", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1350C1Ev();
+extern void _ZN6dd1350D1Ev();
+Name_Map name_map_dd1350[] = {
+ NSPAIR(_ZN6dd1350C1Ev),
+ NSPAIR(_ZN6dd1350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd1350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd1350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd1350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1350[] = {
+ {&(_ZTV6dd1350[5]), 5,16},
+ {&(_ZTV6dd1350[10]), 10,16},
+ {&(_ZTV6dd1350[15]), 15,16},
+ {&(_tg__ZTV5cc350__6dd1350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd1350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd1350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+Class_Descriptor cd_dd1350 = { "dd1350", // class name
+ bases_dd1350, 3,
+ &(vtc_dd1350[0]), // expected_vtbl_contents
+ &(vtt_dd1350[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1350),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1350),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01350 : dd1350 {
+ int e;
+ ~ee01350(); // tgen
+ ee01350(); // tgen
+};
+//SIG(1 ee01350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01350 ::~ee01350(){ note_dtor("ee01350", this);} // tgen
+ee01350 ::ee01350(){ note_ctor("ee01350", this);} // tgen
+
+static void Test_ee01350()
+{
+ extern Class_Descriptor cd_ee01350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01350, buf);
+ ee01350 *dp, &lv = *(dp=new (buf) ee01350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee01350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee01350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(16,12), "ee01350");
+ check_base_class_offset(lv, (dd1350*), 0, "ee01350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01350.e");
+ test_class_info(&lv, &cd_ee01350);
+ dp->~ee01350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01350(Test_ee01350, "ee01350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01350C1Ev();
+extern void _ZN7ee01350D1Ev();
+Name_Map name_map_ee01350[] = {
+ NSPAIR(_ZN7ee01350C1Ev),
+ NSPAIR(_ZN7ee01350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee01350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee01350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01350[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee01350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee01350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee01350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee01350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee01350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee01350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01350[] = {
+ {&(_ZTV7ee01350[5]), 5,16},
+ {&(_tg__ZTV6dd1350__7ee01350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee01350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee01350[4]), 4,5},
+ {&(_ZTV7ee01350[10]), 10,16},
+ {&(_ZTV7ee01350[15]), 15,16},
+ {&(_tg__ZTV5cc350__7ee01350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee01350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee01350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01350[];
+extern VTBL_ENTRY _ZTV7ee01350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01350[];
+Class_Descriptor cd_ee01350 = { "ee01350", // class name
+ bases_ee01350, 4,
+ &(vtc_ee01350[0]), // expected_vtbl_contents
+ &(vtt_ee01350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01350),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11350 : virtual dd1350 {
+ int e;
+ ~ee11350(); // tgen
+ ee11350(); // tgen
+};
+//SIG(1 ee11350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11350 ::~ee11350(){ note_dtor("ee11350", this);} // tgen
+ee11350 ::ee11350(){ note_ctor("ee11350", this);} // tgen
+
+static void Test_ee11350()
+{
+ extern Class_Descriptor cd_ee11350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11350, buf);
+ ee11350 *dp, &lv = *(dp=new (buf) ee11350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee11350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee11350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(32,16), "ee11350");
+ check_base_class_offset(lv, (dd1350*), ABISELECT(16,8), "ee11350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11350.e");
+ test_class_info(&lv, &cd_ee11350);
+ dp->~ee11350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11350(Test_ee11350, "ee11350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11350C1Ev();
+extern void _ZN7ee11350D1Ev();
+Name_Map name_map_ee11350[] = {
+ NSPAIR(_ZN7ee11350C1Ev),
+ NSPAIR(_ZN7ee11350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee11350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI7ee11350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee11350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11350[0]),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11350[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee11350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee11350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee11350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee11350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee11350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee11350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11350[] = {
+ {&(_ZTV7ee11350[6]), 6,22},
+ {&(_ZTV7ee11350[11]), 11,22},
+ {&(_ZTV7ee11350[16]), 16,22},
+ {&(_ZTV7ee11350[21]), 21,22},
+ {&(_tg__ZTV6dd1350__7ee11350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee11350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee11350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee11350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee11350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee11350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11350[];
+extern VTBL_ENTRY _ZTV7ee11350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11350[];
+Class_Descriptor cd_ee11350 = { "ee11350", // class name
+ bases_ee11350, 4,
+ &(vtc_ee11350[0]), // expected_vtbl_contents
+ &(vtt_ee11350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11350),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21350 : dd1350 {
+ int e;
+ virtual void foo(); // _ZN7ee213503fooEv
+ ~ee21350(); // tgen
+ ee21350(); // tgen
+};
+//SIG(1 ee21350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21350 ::foo(){vfunc_called(this, "_ZN7ee213503fooEv");}
+ee21350 ::~ee21350(){ note_dtor("ee21350", this);} // tgen
+ee21350 ::ee21350(){ note_ctor("ee21350", this);} // tgen
+
+static void Test_ee21350()
+{
+ extern Class_Descriptor cd_ee21350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21350, buf);
+ ee21350 *dp, &lv = *(dp=new (buf) ee21350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee21350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee21350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(16,12), "ee21350");
+ check_base_class_offset(lv, (dd1350*), 0, "ee21350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21350.e");
+ test_class_info(&lv, &cd_ee21350);
+ dp->~ee21350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21350(Test_ee21350, "ee21350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21350C1Ev();
+extern void _ZN7ee21350D1Ev();
+Name_Map name_map_ee21350[] = {
+ NSPAIR(_ZN7ee21350C1Ev),
+ NSPAIR(_ZN7ee21350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee21350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21350[];
+extern void _ZN7ee213503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee213503fooEv,_ZTv0_n20_N7ee213503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213503fooEv,_ZThn12_N7ee213503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee21350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21350[0]),
+ (VTBL_ENTRY)&_ZN7ee213503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee213503fooEv,_ZTv0_n20_N7ee213503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee21350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee21350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee21350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee21350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee21350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee21350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21350[] = {
+ {&(_ZTV7ee21350[5]), 5,17},
+ {&(_tg__ZTV6dd1350__7ee21350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee21350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee21350[4]), 4,5},
+ {&(_ZTV7ee21350[11]), 11,17},
+ {&(_ZTV7ee21350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee21350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee21350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee21350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21350[];
+extern VTBL_ENTRY _ZTV7ee21350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21350[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee213503fooEv,_ZTv0_n20_N7ee213503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213503fooEv,_ZThn12_N7ee213503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21350 = { "ee21350", // class name
+ bases_ee21350, 4,
+ &(vtc_ee21350[0]), // expected_vtbl_contents
+ &(vtt_ee21350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31350 : virtual dd1350 {
+ int e;
+ virtual void foo(); // _ZN7ee313503fooEv
+ ~ee31350(); // tgen
+ ee31350(); // tgen
+};
+//SIG(1 ee31350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31350 ::foo(){vfunc_called(this, "_ZN7ee313503fooEv");}
+ee31350 ::~ee31350(){ note_dtor("ee31350", this);} // tgen
+ee31350 ::ee31350(){ note_ctor("ee31350", this);} // tgen
+
+static void Test_ee31350()
+{
+ extern Class_Descriptor cd_ee31350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31350, buf);
+ ee31350 *dp, &lv = *(dp=new (buf) ee31350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee31350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee31350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(32,16), "ee31350");
+ check_base_class_offset(lv, (dd1350*), ABISELECT(16,8), "ee31350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31350.e");
+ test_class_info(&lv, &cd_ee31350);
+ dp->~ee31350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31350(Test_ee31350, "ee31350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31350C1Ev();
+extern void _ZN7ee31350D1Ev();
+Name_Map name_map_ee31350[] = {
+ NSPAIR(_ZN7ee31350C1Ev),
+ NSPAIR(_ZN7ee31350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee31350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31350[];
+extern void _ZN7ee313503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee313503fooEv,_ZTv0_n20_N7ee313503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313503fooEv,_ZThn16_N7ee313503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee31350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31350[0]),
+ (VTBL_ENTRY)&_ZN7ee313503fooEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31350[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee313503fooEv,_ZTv0_n20_N7ee313503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee31350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee31350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee31350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee31350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee31350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee31350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31350[] = {
+ {&(_ZTV7ee31350[6]), 6,23},
+ {&(_ZTV7ee31350[12]), 12,23},
+ {&(_ZTV7ee31350[17]), 17,23},
+ {&(_ZTV7ee31350[22]), 22,23},
+ {&(_tg__ZTV6dd1350__7ee31350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee31350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee31350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee31350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee31350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee31350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31350[];
+extern VTBL_ENTRY _ZTV7ee31350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31350[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee313503fooEv,_ZTv0_n20_N7ee313503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313503fooEv,_ZThn16_N7ee313503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31350 = { "ee31350", // class name
+ bases_ee31350, 4,
+ &(vtc_ee31350[0]), // expected_vtbl_contents
+ &(vtt_ee31350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31350),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41350 : dd1350 {
+ int e;
+ virtual void bar(); // _ZN7ee413503barEv
+ ~ee41350(); // tgen
+ ee41350(); // tgen
+};
+//SIG(1 ee41350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41350 ::bar(){vfunc_called(this, "_ZN7ee413503barEv");}
+ee41350 ::~ee41350(){ note_dtor("ee41350", this);} // tgen
+ee41350 ::ee41350(){ note_ctor("ee41350", this);} // tgen
+
+static void Test_ee41350()
+{
+ extern Class_Descriptor cd_ee41350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41350, buf);
+ ee41350 *dp, &lv = *(dp=new (buf) ee41350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee41350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee41350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(16,12), "ee41350");
+ check_base_class_offset(lv, (dd1350*), 0, "ee41350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41350.e");
+ test_class_info(&lv, &cd_ee41350);
+ dp->~ee41350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41350(Test_ee41350, "ee41350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41350C1Ev();
+extern void _ZN7ee41350D1Ev();
+Name_Map name_map_ee41350[] = {
+ NSPAIR(_ZN7ee41350C1Ev),
+ NSPAIR(_ZN7ee41350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee41350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41350[];
+extern void _ZN7ee413503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee413503barEv,_ZTv0_n16_N7ee413503barEv)();
+extern void ABISELECT(_ZThn32_N7ee413503barEv,_ZThn20_N7ee413503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41350[0]),
+ (VTBL_ENTRY)&_ZN7ee413503barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413503barEv,_ZTv0_n16_N7ee413503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee41350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee41350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee41350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee41350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee41350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee41350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41350[] = {
+ {&(_ZTV7ee41350[5]), 5,17},
+ {&(_tg__ZTV6dd1350__7ee41350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee41350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee41350[4]), 4,5},
+ {&(_ZTV7ee41350[11]), 11,17},
+ {&(_ZTV7ee41350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee41350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee41350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee41350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41350[];
+extern VTBL_ENTRY _ZTV7ee41350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41350[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413503barEv,_ZTv0_n16_N7ee413503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413503barEv,_ZThn20_N7ee413503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41350 = { "ee41350", // class name
+ bases_ee41350, 4,
+ &(vtc_ee41350[0]), // expected_vtbl_contents
+ &(vtt_ee41350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51350 : virtual dd1350 {
+ int e;
+ virtual void bar(); // _ZN7ee513503barEv
+ ~ee51350(); // tgen
+ ee51350(); // tgen
+};
+//SIG(1 ee51350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51350 ::bar(){vfunc_called(this, "_ZN7ee513503barEv");}
+ee51350 ::~ee51350(){ note_dtor("ee51350", this);} // tgen
+ee51350 ::ee51350(){ note_ctor("ee51350", this);} // tgen
+
+static void Test_ee51350()
+{
+ extern Class_Descriptor cd_ee51350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51350, buf);
+ ee51350 *dp, &lv = *(dp=new (buf) ee51350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee51350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee51350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(32,16), "ee51350");
+ check_base_class_offset(lv, (dd1350*), ABISELECT(16,8), "ee51350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51350.e");
+ test_class_info(&lv, &cd_ee51350);
+ dp->~ee51350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51350(Test_ee51350, "ee51350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51350C1Ev();
+extern void _ZN7ee51350D1Ev();
+Name_Map name_map_ee51350[] = {
+ NSPAIR(_ZN7ee51350C1Ev),
+ NSPAIR(_ZN7ee51350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee51350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51350[];
+extern void _ZN7ee513503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee513503barEv,_ZTv0_n16_N7ee513503barEv)();
+extern void ABISELECT(_ZThn48_N7ee513503barEv,_ZThn24_N7ee513503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51350[0]),
+ (VTBL_ENTRY)&_ZN7ee513503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51350[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513503barEv,_ZTv0_n16_N7ee513503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee51350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee51350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee51350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee51350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee51350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee51350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51350[] = {
+ {&(_ZTV7ee51350[6]), 6,23},
+ {&(_ZTV7ee51350[12]), 12,23},
+ {&(_ZTV7ee51350[17]), 17,23},
+ {&(_ZTV7ee51350[22]), 22,23},
+ {&(_tg__ZTV6dd1350__7ee51350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee51350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee51350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee51350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee51350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee51350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51350[];
+extern VTBL_ENTRY _ZTV7ee51350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51350[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513503barEv,_ZTv0_n16_N7ee513503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513503barEv,_ZThn24_N7ee513503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51350 = { "ee51350", // class name
+ bases_ee51350, 4,
+ &(vtc_ee51350[0]), // expected_vtbl_contents
+ &(vtt_ee51350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51350),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61350 : dd1350 {
+ int e;
+ virtual void foo(); // _ZN7ee613503fooEv
+ virtual void bar(); // _ZN7ee613503barEv
+ ~ee61350(); // tgen
+ ee61350(); // tgen
+};
+//SIG(1 ee61350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61350 ::foo(){vfunc_called(this, "_ZN7ee613503fooEv");}
+void ee61350 ::bar(){vfunc_called(this, "_ZN7ee613503barEv");}
+ee61350 ::~ee61350(){ note_dtor("ee61350", this);} // tgen
+ee61350 ::ee61350(){ note_ctor("ee61350", this);} // tgen
+
+static void Test_ee61350()
+{
+ extern Class_Descriptor cd_ee61350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61350, buf);
+ ee61350 *dp, &lv = *(dp=new (buf) ee61350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee61350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee61350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(16,12), "ee61350");
+ check_base_class_offset(lv, (dd1350*), 0, "ee61350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61350.e");
+ test_class_info(&lv, &cd_ee61350);
+ dp->~ee61350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61350(Test_ee61350, "ee61350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61350C1Ev();
+extern void _ZN7ee61350D1Ev();
+Name_Map name_map_ee61350[] = {
+ NSPAIR(_ZN7ee61350C1Ev),
+ NSPAIR(_ZN7ee61350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee61350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61350[];
+extern void _ZN7ee613503fooEv();
+extern void _ZN7ee613503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee613503fooEv,_ZTv0_n20_N7ee613503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613503fooEv,_ZThn12_N7ee613503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613503barEv,_ZTv0_n16_N7ee613503barEv)();
+extern void ABISELECT(_ZThn32_N7ee613503barEv,_ZThn20_N7ee613503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61350[0]),
+ (VTBL_ENTRY)&_ZN7ee613503fooEv,
+ (VTBL_ENTRY)&_ZN7ee613503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee613503fooEv,_ZTv0_n20_N7ee613503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613503barEv,_ZTv0_n16_N7ee613503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee61350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee61350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee61350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee61350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee61350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee61350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61350[] = {
+ {&(_ZTV7ee61350[5]), 5,18},
+ {&(_tg__ZTV6dd1350__7ee61350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee61350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee61350[4]), 4,5},
+ {&(_ZTV7ee61350[12]), 12,18},
+ {&(_ZTV7ee61350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee61350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee61350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee61350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61350[];
+extern VTBL_ENTRY _ZTV7ee61350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61350[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613503barEv,_ZTv0_n16_N7ee613503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613503barEv,_ZThn20_N7ee613503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee613503fooEv,_ZTv0_n20_N7ee613503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613503fooEv,_ZThn12_N7ee613503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61350 = { "ee61350", // class name
+ bases_ee61350, 4,
+ &(vtc_ee61350[0]), // expected_vtbl_contents
+ &(vtt_ee61350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71350 : virtual dd1350 {
+ int e;
+ virtual void foo(); // _ZN7ee713503fooEv
+ virtual void bar(); // _ZN7ee713503barEv
+ ~ee71350(); // tgen
+ ee71350(); // tgen
+};
+//SIG(1 ee71350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71350 ::foo(){vfunc_called(this, "_ZN7ee713503fooEv");}
+void ee71350 ::bar(){vfunc_called(this, "_ZN7ee713503barEv");}
+ee71350 ::~ee71350(){ note_dtor("ee71350", this);} // tgen
+ee71350 ::ee71350(){ note_ctor("ee71350", this);} // tgen
+
+static void Test_ee71350()
+{
+ extern Class_Descriptor cd_ee71350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71350, buf);
+ ee71350 *dp, &lv = *(dp=new (buf) ee71350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee71350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee71350");
+ check_base_class_offset(lv, (cc350*)(dd1350*), ABISELECT(32,16), "ee71350");
+ check_base_class_offset(lv, (dd1350*), ABISELECT(16,8), "ee71350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71350.e");
+ test_class_info(&lv, &cd_ee71350);
+ dp->~ee71350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71350(Test_ee71350, "ee71350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71350C1Ev();
+extern void _ZN7ee71350D1Ev();
+Name_Map name_map_ee71350[] = {
+ NSPAIR(_ZN7ee71350C1Ev),
+ NSPAIR(_ZN7ee71350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd1350;
+extern VTBL_ENTRY _ZTI6dd1350[];
+extern VTBL_ENTRY _ZTV6dd1350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1350[];
+static Base_Class bases_ee71350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1350, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71350[];
+extern void _ZN7ee713503fooEv();
+extern void _ZN7ee713503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee713503fooEv,_ZTv0_n20_N7ee713503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713503fooEv,_ZThn16_N7ee713503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713503barEv,_ZTv0_n16_N7ee713503barEv)();
+extern void ABISELECT(_ZThn48_N7ee713503barEv,_ZThn24_N7ee713503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71350[0]),
+ (VTBL_ENTRY)&_ZN7ee713503fooEv,
+ (VTBL_ENTRY)&_ZN7ee713503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71350[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee713503fooEv,_ZTv0_n20_N7ee713503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713503barEv,_ZTv0_n16_N7ee713503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71350[];
+static VTBL_ENTRY _tg__ZTV6dd1350__7ee71350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd1350__7ee71350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1350__7ee71350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee71350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee71350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee71350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71350[] = {
+ {&(_ZTV7ee71350[6]), 6,24},
+ {&(_ZTV7ee71350[13]), 13,24},
+ {&(_ZTV7ee71350[18]), 18,24},
+ {&(_ZTV7ee71350[23]), 23,24},
+ {&(_tg__ZTV6dd1350__7ee71350[5]), 5,5},
+ {&(_tg__ZTV5cc350__6dd1350__7ee71350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1350__7ee71350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee71350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee71350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee71350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71350[];
+extern VTBL_ENTRY _ZTV7ee71350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71350[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713503barEv,_ZTv0_n16_N7ee713503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713503barEv,_ZThn24_N7ee713503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee713503fooEv,_ZTv0_n20_N7ee713503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713503fooEv,_ZThn16_N7ee713503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71350 = { "ee71350", // class name
+ bases_ee71350, 4,
+ &(vtc_ee71350[0]), // expected_vtbl_contents
+ &(vtt_ee71350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71350),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2350 : cc350 {
+ int d;
+ virtual void foo(); // _ZN6dd23503fooEv
+ ~dd2350(); // tgen
+ dd2350(); // tgen
+};
+//SIG(-1 dd2350) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2350 ::foo(){vfunc_called(this, "_ZN6dd23503fooEv");}
+dd2350 ::~dd2350(){ note_dtor("dd2350", this);} // tgen
+dd2350 ::dd2350(){ note_ctor("dd2350", this);} // tgen
+
+static void Test_dd2350()
+{
+ extern Class_Descriptor cd_dd2350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2350, buf);
+ dd2350 *dp, &lv = *(dp=new (buf) dd2350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd2350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(16,12), "dd2350");
+ check_base_class_offset(lv, (cc350*), 0, "dd2350");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2350.d");
+ test_class_info(&lv, &cd_dd2350);
+ dp->~dd2350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2350(Test_dd2350, "dd2350", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2350C1Ev();
+extern void _ZN6dd2350D1Ev();
+Name_Map name_map_dd2350[] = {
+ NSPAIR(_ZN6dd2350C1Ev),
+ NSPAIR(_ZN6dd2350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd2350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern void _ZN6dd23503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd2350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd2350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd2350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2350[] = {
+ {&(_ZTV6dd2350[4]), 4,10},
+ {&(_tg__ZTV5cc350__6dd2350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd2350[4]), 4,5},
+ {&(_ZTV6dd2350[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd2350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+Class_Descriptor cd_dd2350 = { "dd2350", // class name
+ bases_dd2350, 3,
+ &(vtc_dd2350[0]), // expected_vtbl_contents
+ &(vtt_dd2350[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2350),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02350 : dd2350 {
+ int e;
+ ~ee02350(); // tgen
+ ee02350(); // tgen
+};
+//SIG(1 ee02350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02350 ::~ee02350(){ note_dtor("ee02350", this);} // tgen
+ee02350 ::ee02350(){ note_ctor("ee02350", this);} // tgen
+
+static void Test_ee02350()
+{
+ extern Class_Descriptor cd_ee02350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02350, buf);
+ ee02350 *dp, &lv = *(dp=new (buf) ee02350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee02350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(24,16), "ee02350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), 0, "ee02350");
+ check_base_class_offset(lv, (dd2350*), 0, "ee02350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02350.e");
+ test_class_info(&lv, &cd_ee02350);
+ dp->~ee02350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02350(Test_ee02350, "ee02350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02350C1Ev();
+extern void _ZN7ee02350D1Ev();
+Name_Map name_map_ee02350[] = {
+ NSPAIR(_ZN7ee02350C1Ev),
+ NSPAIR(_ZN7ee02350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee02350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02350[];
+extern void _ZN6dd23503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee02350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee02350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee02350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee02350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee02350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee02350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee02350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02350[] = {
+ {&(_ZTV7ee02350[4]), 4,10},
+ {&(_tg__ZTV6dd2350__7ee02350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee02350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee02350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee02350[4]), 4,5},
+ {&(_ZTV7ee02350[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee02350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02350[];
+extern VTBL_ENTRY _ZTV7ee02350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02350[];
+Class_Descriptor cd_ee02350 = { "ee02350", // class name
+ bases_ee02350, 4,
+ &(vtc_ee02350[0]), // expected_vtbl_contents
+ &(vtt_ee02350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12350 : virtual dd2350 {
+ int e;
+ ~ee12350(); // tgen
+ ee12350(); // tgen
+};
+//SIG(1 ee12350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12350 ::~ee12350(){ note_dtor("ee12350", this);} // tgen
+ee12350 ::ee12350(){ note_ctor("ee12350", this);} // tgen
+
+static void Test_ee12350()
+{
+ extern Class_Descriptor cd_ee12350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12350, buf);
+ ee12350 *dp, &lv = *(dp=new (buf) ee12350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee12350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(32,20), "ee12350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), ABISELECT(16,8), "ee12350");
+ check_base_class_offset(lv, (dd2350*), ABISELECT(16,8), "ee12350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12350.e");
+ test_class_info(&lv, &cd_ee12350);
+ dp->~ee12350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12350(Test_ee12350, "ee12350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12350C1Ev();
+extern void _ZN7ee12350D1Ev();
+Name_Map name_map_ee12350[] = {
+ NSPAIR(_ZN7ee12350C1Ev),
+ NSPAIR(_ZN7ee12350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee12350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee12350[];
+extern void _ZN6dd23503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee12350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12350[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee12350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee12350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee12350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee12350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee12350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee12350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12350[] = {
+ {&(_ZTV7ee12350[5]), 5,16},
+ {&(_ZTV7ee12350[10]), 10,16},
+ {&(_ZTV7ee12350[15]), 15,16},
+ {&(_tg__ZTV6dd2350__7ee12350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee12350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee12350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee12350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee12350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12350[];
+extern VTBL_ENTRY _ZTV7ee12350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12350[];
+Class_Descriptor cd_ee12350 = { "ee12350", // class name
+ bases_ee12350, 4,
+ &(vtc_ee12350[0]), // expected_vtbl_contents
+ &(vtt_ee12350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12350),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22350 : dd2350 {
+ int e;
+ virtual void foo(); // _ZN7ee223503fooEv
+ ~ee22350(); // tgen
+ ee22350(); // tgen
+};
+//SIG(1 ee22350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22350 ::foo(){vfunc_called(this, "_ZN7ee223503fooEv");}
+ee22350 ::~ee22350(){ note_dtor("ee22350", this);} // tgen
+ee22350 ::ee22350(){ note_ctor("ee22350", this);} // tgen
+
+static void Test_ee22350()
+{
+ extern Class_Descriptor cd_ee22350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22350, buf);
+ ee22350 *dp, &lv = *(dp=new (buf) ee22350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee22350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(24,16), "ee22350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), 0, "ee22350");
+ check_base_class_offset(lv, (dd2350*), 0, "ee22350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22350.e");
+ test_class_info(&lv, &cd_ee22350);
+ dp->~ee22350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22350(Test_ee22350, "ee22350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22350C1Ev();
+extern void _ZN7ee22350D1Ev();
+Name_Map name_map_ee22350[] = {
+ NSPAIR(_ZN7ee22350C1Ev),
+ NSPAIR(_ZN7ee22350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee22350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22350[];
+extern void _ZN7ee223503fooEv();
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee22350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22350[0]),
+ (VTBL_ENTRY)&_ZN7ee223503fooEv,
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee22350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee22350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee22350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee22350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee22350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee22350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22350[] = {
+ {&(_ZTV7ee22350[4]), 4,10},
+ {&(_tg__ZTV6dd2350__7ee22350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee22350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee22350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee22350[4]), 4,5},
+ {&(_ZTV7ee22350[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee22350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22350[];
+extern VTBL_ENTRY _ZTV7ee22350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22350[];
+Class_Descriptor cd_ee22350 = { "ee22350", // class name
+ bases_ee22350, 4,
+ &(vtc_ee22350[0]), // expected_vtbl_contents
+ &(vtt_ee22350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22350),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32350 : virtual dd2350 {
+ int e;
+ virtual void foo(); // _ZN7ee323503fooEv
+ ~ee32350(); // tgen
+ ee32350(); // tgen
+};
+//SIG(1 ee32350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32350 ::foo(){vfunc_called(this, "_ZN7ee323503fooEv");}
+ee32350 ::~ee32350(){ note_dtor("ee32350", this);} // tgen
+ee32350 ::ee32350(){ note_ctor("ee32350", this);} // tgen
+
+static void Test_ee32350()
+{
+ extern Class_Descriptor cd_ee32350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32350, buf);
+ ee32350 *dp, &lv = *(dp=new (buf) ee32350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee32350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(32,20), "ee32350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), ABISELECT(16,8), "ee32350");
+ check_base_class_offset(lv, (dd2350*), ABISELECT(16,8), "ee32350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32350.e");
+ test_class_info(&lv, &cd_ee32350);
+ dp->~ee32350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32350(Test_ee32350, "ee32350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32350C1Ev();
+extern void _ZN7ee32350D1Ev();
+Name_Map name_map_ee32350[] = {
+ NSPAIR(_ZN7ee32350C1Ev),
+ NSPAIR(_ZN7ee32350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee32350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee32350[];
+extern void _ZN7ee323503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee323503fooEv,_ZTv0_n20_N7ee323503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323503fooEv,_ZThn8_N7ee323503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee32350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32350[0]),
+ (VTBL_ENTRY)&_ZN7ee323503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee323503fooEv,_ZTv0_n20_N7ee323503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee32350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee32350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee32350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee32350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee32350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee32350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32350[] = {
+ {&(_ZTV7ee32350[5]), 5,17},
+ {&(_ZTV7ee32350[11]), 11,17},
+ {&(_ZTV7ee32350[16]), 16,17},
+ {&(_tg__ZTV6dd2350__7ee32350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee32350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee32350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee32350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee32350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32350[];
+extern VTBL_ENTRY _ZTV7ee32350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32350[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee323503fooEv,_ZTv0_n20_N7ee323503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323503fooEv,_ZThn8_N7ee323503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32350 = { "ee32350", // class name
+ bases_ee32350, 4,
+ &(vtc_ee32350[0]), // expected_vtbl_contents
+ &(vtt_ee32350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42350 : dd2350 {
+ int e;
+ virtual void bar(); // _ZN7ee423503barEv
+ ~ee42350(); // tgen
+ ee42350(); // tgen
+};
+//SIG(1 ee42350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42350 ::bar(){vfunc_called(this, "_ZN7ee423503barEv");}
+ee42350 ::~ee42350(){ note_dtor("ee42350", this);} // tgen
+ee42350 ::ee42350(){ note_ctor("ee42350", this);} // tgen
+
+static void Test_ee42350()
+{
+ extern Class_Descriptor cd_ee42350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42350, buf);
+ ee42350 *dp, &lv = *(dp=new (buf) ee42350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee42350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(24,16), "ee42350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), 0, "ee42350");
+ check_base_class_offset(lv, (dd2350*), 0, "ee42350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42350.e");
+ test_class_info(&lv, &cd_ee42350);
+ dp->~ee42350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42350(Test_ee42350, "ee42350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42350C1Ev();
+extern void _ZN7ee42350D1Ev();
+Name_Map name_map_ee42350[] = {
+ NSPAIR(_ZN7ee42350C1Ev),
+ NSPAIR(_ZN7ee42350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee42350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42350[];
+extern void _ZN6dd23503fooEv();
+extern void _ZN7ee423503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee423503barEv,_ZTv0_n16_N7ee423503barEv)();
+extern void ABISELECT(_ZThn24_N7ee423503barEv,_ZThn16_N7ee423503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+ (VTBL_ENTRY)&_ZN7ee423503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423503barEv,_ZTv0_n16_N7ee423503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee42350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee42350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee42350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee42350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee42350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42350[] = {
+ {&(_ZTV7ee42350[4]), 4,11},
+ {&(_tg__ZTV6dd2350__7ee42350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee42350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee42350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee42350[4]), 4,5},
+ {&(_ZTV7ee42350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee42350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42350[];
+extern VTBL_ENTRY _ZTV7ee42350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42350[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423503barEv,_ZTv0_n16_N7ee423503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423503barEv,_ZThn16_N7ee423503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42350 = { "ee42350", // class name
+ bases_ee42350, 4,
+ &(vtc_ee42350[0]), // expected_vtbl_contents
+ &(vtt_ee42350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52350 : virtual dd2350 {
+ int e;
+ virtual void bar(); // _ZN7ee523503barEv
+ ~ee52350(); // tgen
+ ee52350(); // tgen
+};
+//SIG(1 ee52350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52350 ::bar(){vfunc_called(this, "_ZN7ee523503barEv");}
+ee52350 ::~ee52350(){ note_dtor("ee52350", this);} // tgen
+ee52350 ::ee52350(){ note_ctor("ee52350", this);} // tgen
+
+static void Test_ee52350()
+{
+ extern Class_Descriptor cd_ee52350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52350, buf);
+ ee52350 *dp, &lv = *(dp=new (buf) ee52350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee52350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(32,20), "ee52350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), ABISELECT(16,8), "ee52350");
+ check_base_class_offset(lv, (dd2350*), ABISELECT(16,8), "ee52350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52350.e");
+ test_class_info(&lv, &cd_ee52350);
+ dp->~ee52350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52350(Test_ee52350, "ee52350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52350C1Ev();
+extern void _ZN7ee52350D1Ev();
+Name_Map name_map_ee52350[] = {
+ NSPAIR(_ZN7ee52350C1Ev),
+ NSPAIR(_ZN7ee52350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee52350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee52350[];
+extern void _ZN7ee523503barEv();
+extern void _ZN6dd23503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee523503barEv,_ZTv0_n16_N7ee523503barEv)();
+extern void ABISELECT(_ZThn32_N7ee523503barEv,_ZThn20_N7ee523503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52350[0]),
+ (VTBL_ENTRY)&_ZN7ee523503barEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523503barEv,_ZTv0_n16_N7ee523503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee52350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee52350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee52350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee52350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee52350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52350[] = {
+ {&(_ZTV7ee52350[5]), 5,17},
+ {&(_ZTV7ee52350[11]), 11,17},
+ {&(_ZTV7ee52350[16]), 16,17},
+ {&(_tg__ZTV6dd2350__7ee52350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee52350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee52350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee52350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee52350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52350[];
+extern VTBL_ENTRY _ZTV7ee52350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52350[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523503barEv,_ZTv0_n16_N7ee523503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523503barEv,_ZThn20_N7ee523503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52350 = { "ee52350", // class name
+ bases_ee52350, 4,
+ &(vtc_ee52350[0]), // expected_vtbl_contents
+ &(vtt_ee52350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62350 : dd2350 {
+ int e;
+ virtual void foo(); // _ZN7ee623503fooEv
+ virtual void bar(); // _ZN7ee623503barEv
+ ~ee62350(); // tgen
+ ee62350(); // tgen
+};
+//SIG(1 ee62350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62350 ::foo(){vfunc_called(this, "_ZN7ee623503fooEv");}
+void ee62350 ::bar(){vfunc_called(this, "_ZN7ee623503barEv");}
+ee62350 ::~ee62350(){ note_dtor("ee62350", this);} // tgen
+ee62350 ::ee62350(){ note_ctor("ee62350", this);} // tgen
+
+static void Test_ee62350()
+{
+ extern Class_Descriptor cd_ee62350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62350, buf);
+ ee62350 *dp, &lv = *(dp=new (buf) ee62350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee62350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(24,16), "ee62350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), 0, "ee62350");
+ check_base_class_offset(lv, (dd2350*), 0, "ee62350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62350.e");
+ test_class_info(&lv, &cd_ee62350);
+ dp->~ee62350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62350(Test_ee62350, "ee62350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62350C1Ev();
+extern void _ZN7ee62350D1Ev();
+Name_Map name_map_ee62350[] = {
+ NSPAIR(_ZN7ee62350C1Ev),
+ NSPAIR(_ZN7ee62350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee62350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62350[];
+extern void _ZN7ee623503fooEv();
+extern void _ZN7ee623503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee623503barEv,_ZTv0_n16_N7ee623503barEv)();
+extern void ABISELECT(_ZThn24_N7ee623503barEv,_ZThn16_N7ee623503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62350[0]),
+ (VTBL_ENTRY)&_ZN7ee623503fooEv,
+ (VTBL_ENTRY)&_ZN7ee623503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623503barEv,_ZTv0_n16_N7ee623503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee62350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee62350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee62350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee62350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee62350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62350[] = {
+ {&(_ZTV7ee62350[4]), 4,11},
+ {&(_tg__ZTV6dd2350__7ee62350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee62350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee62350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee62350[4]), 4,5},
+ {&(_ZTV7ee62350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee62350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62350[];
+extern VTBL_ENTRY _ZTV7ee62350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62350[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623503barEv,_ZTv0_n16_N7ee623503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623503barEv,_ZThn16_N7ee623503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62350 = { "ee62350", // class name
+ bases_ee62350, 4,
+ &(vtc_ee62350[0]), // expected_vtbl_contents
+ &(vtt_ee62350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72350 : virtual dd2350 {
+ int e;
+ virtual void foo(); // _ZN7ee723503fooEv
+ virtual void bar(); // _ZN7ee723503barEv
+ ~ee72350(); // tgen
+ ee72350(); // tgen
+};
+//SIG(1 ee72350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72350 ::foo(){vfunc_called(this, "_ZN7ee723503fooEv");}
+void ee72350 ::bar(){vfunc_called(this, "_ZN7ee723503barEv");}
+ee72350 ::~ee72350(){ note_dtor("ee72350", this);} // tgen
+ee72350 ::ee72350(){ note_ctor("ee72350", this);} // tgen
+
+static void Test_ee72350()
+{
+ extern Class_Descriptor cd_ee72350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72350, buf);
+ ee72350 *dp, &lv = *(dp=new (buf) ee72350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee72350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd2350*), ABISELECT(32,20), "ee72350");
+ check_base_class_offset(lv, (cc350*)(dd2350*), ABISELECT(16,8), "ee72350");
+ check_base_class_offset(lv, (dd2350*), ABISELECT(16,8), "ee72350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72350.e");
+ test_class_info(&lv, &cd_ee72350);
+ dp->~ee72350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72350(Test_ee72350, "ee72350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72350C1Ev();
+extern void _ZN7ee72350D1Ev();
+Name_Map name_map_ee72350[] = {
+ NSPAIR(_ZN7ee72350C1Ev),
+ NSPAIR(_ZN7ee72350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd2350;
+extern VTBL_ENTRY _ZTI6dd2350[];
+extern VTBL_ENTRY _ZTV6dd2350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2350[];
+static Base_Class bases_ee72350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2350, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72350[];
+extern void _ZN7ee723503fooEv();
+extern void _ZN7ee723503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee723503fooEv,_ZTv0_n20_N7ee723503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723503fooEv,_ZThn8_N7ee723503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723503barEv,_ZTv0_n16_N7ee723503barEv)();
+extern void ABISELECT(_ZThn32_N7ee723503barEv,_ZThn20_N7ee723503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72350[0]),
+ (VTBL_ENTRY)&_ZN7ee723503fooEv,
+ (VTBL_ENTRY)&_ZN7ee723503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee723503fooEv,_ZTv0_n20_N7ee723503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723503barEv,_ZTv0_n16_N7ee723503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72350[];
+extern void _ZN6dd23503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2350__7ee72350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN6dd23503fooEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd2350__7ee72350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd2350__7ee72350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2350__7ee72350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee72350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72350[] = {
+ {&(_ZTV7ee72350[5]), 5,18},
+ {&(_ZTV7ee72350[12]), 12,18},
+ {&(_ZTV7ee72350[17]), 17,18},
+ {&(_tg__ZTV6dd2350__7ee72350[4]), 4,5},
+ {&(_tg__ZTV5cc3506dd2350__7ee72350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd2350__7ee72350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2350__7ee72350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee72350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72350[];
+extern VTBL_ENTRY _ZTV7ee72350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72350[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723503barEv,_ZTv0_n16_N7ee723503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723503barEv,_ZThn20_N7ee723503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee723503fooEv,_ZTv0_n20_N7ee723503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723503fooEv,_ZThn8_N7ee723503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72350 = { "ee72350", // class name
+ bases_ee72350, 4,
+ &(vtc_ee72350[0]), // expected_vtbl_contents
+ &(vtt_ee72350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3350 : virtual cc350 {
+ int d;
+ virtual void foo(); // _ZN6dd33503fooEv
+ ~dd3350(); // tgen
+ dd3350(); // tgen
+};
+//SIG(-1 dd3350) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3350 ::foo(){vfunc_called(this, "_ZN6dd33503fooEv");}
+dd3350 ::~dd3350(){ note_dtor("dd3350", this);} // tgen
+dd3350 ::dd3350(){ note_ctor("dd3350", this);} // tgen
+
+static void Test_dd3350()
+{
+ extern Class_Descriptor cd_dd3350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3350, buf);
+ dd3350 *dp, &lv = *(dp=new (buf) dd3350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd3350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,16), "dd3350");
+ check_base_class_offset(lv, (cc350*), ABISELECT(16,8), "dd3350");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3350.d");
+ test_class_info(&lv, &cd_dd3350);
+ dp->~dd3350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3350(Test_dd3350, "dd3350", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3350C1Ev();
+extern void _ZN6dd3350D1Ev();
+Name_Map name_map_dd3350[] = {
+ NSPAIR(_ZN6dd3350C1Ev),
+ NSPAIR(_ZN6dd3350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd3350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern void _ZN6dd33503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_dd3350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd3350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3350[] = {
+ {&(_ZTV6dd3350[5]), 5,17},
+ {&(_ZTV6dd3350[11]), 11,17},
+ {&(_ZTV6dd3350[16]), 16,17},
+ {&(_tg__ZTV5cc350__6dd3350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd3350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd3350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3350 = { "dd3350", // class name
+ bases_dd3350, 3,
+ &(vtc_dd3350[0]), // expected_vtbl_contents
+ &(vtt_dd3350[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3350),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03350 : dd3350 {
+ int e;
+ ~ee03350(); // tgen
+ ee03350(); // tgen
+};
+//SIG(1 ee03350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03350 ::~ee03350(){ note_dtor("ee03350", this);} // tgen
+ee03350 ::ee03350(){ note_ctor("ee03350", this);} // tgen
+
+static void Test_ee03350()
+{
+ extern Class_Descriptor cd_ee03350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03350, buf);
+ ee03350 *dp, &lv = *(dp=new (buf) ee03350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee03350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee03350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(16,12), "ee03350");
+ check_base_class_offset(lv, (dd3350*), 0, "ee03350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03350.e");
+ test_class_info(&lv, &cd_ee03350);
+ dp->~ee03350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03350(Test_ee03350, "ee03350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03350C1Ev();
+extern void _ZN7ee03350D1Ev();
+Name_Map name_map_ee03350[] = {
+ NSPAIR(_ZN7ee03350C1Ev),
+ NSPAIR(_ZN7ee03350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee03350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03350[];
+extern void _ZN6dd33503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee03350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee03350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee03350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee03350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee03350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee03350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee03350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03350[] = {
+ {&(_ZTV7ee03350[5]), 5,17},
+ {&(_tg__ZTV6dd3350__7ee03350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee03350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee03350[4]), 4,5},
+ {&(_ZTV7ee03350[11]), 11,17},
+ {&(_ZTV7ee03350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee03350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee03350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee03350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03350[];
+extern VTBL_ENTRY _ZTV7ee03350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03350[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03350 = { "ee03350", // class name
+ bases_ee03350, 4,
+ &(vtc_ee03350[0]), // expected_vtbl_contents
+ &(vtt_ee03350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13350 : virtual dd3350 {
+ int e;
+ ~ee13350(); // tgen
+ ee13350(); // tgen
+};
+//SIG(1 ee13350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13350 ::~ee13350(){ note_dtor("ee13350", this);} // tgen
+ee13350 ::ee13350(){ note_ctor("ee13350", this);} // tgen
+
+static void Test_ee13350()
+{
+ extern Class_Descriptor cd_ee13350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13350, buf);
+ ee13350 *dp, &lv = *(dp=new (buf) ee13350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee13350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee13350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(32,16), "ee13350");
+ check_base_class_offset(lv, (dd3350*), ABISELECT(16,8), "ee13350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13350.e");
+ test_class_info(&lv, &cd_ee13350);
+ dp->~ee13350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13350(Test_ee13350, "ee13350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13350C1Ev();
+extern void _ZN7ee13350D1Ev();
+Name_Map name_map_ee13350[] = {
+ NSPAIR(_ZN7ee13350C1Ev),
+ NSPAIR(_ZN7ee13350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee13350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee13350[];
+extern void _ZN6dd33503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee13350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13350[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee13350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee13350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee13350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee13350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee13350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee13350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13350[] = {
+ {&(_ZTV7ee13350[6]), 6,24},
+ {&(_ZTV7ee13350[12]), 12,24},
+ {&(_ZTV7ee13350[18]), 18,24},
+ {&(_ZTV7ee13350[23]), 23,24},
+ {&(_tg__ZTV6dd3350__7ee13350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee13350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee13350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee13350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee13350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee13350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13350[];
+extern VTBL_ENTRY _ZTV7ee13350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13350[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13350 = { "ee13350", // class name
+ bases_ee13350, 4,
+ &(vtc_ee13350[0]), // expected_vtbl_contents
+ &(vtt_ee13350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13350),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23350 : dd3350 {
+ int e;
+ virtual void foo(); // _ZN7ee233503fooEv
+ ~ee23350(); // tgen
+ ee23350(); // tgen
+};
+//SIG(1 ee23350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23350 ::foo(){vfunc_called(this, "_ZN7ee233503fooEv");}
+ee23350 ::~ee23350(){ note_dtor("ee23350", this);} // tgen
+ee23350 ::ee23350(){ note_ctor("ee23350", this);} // tgen
+
+static void Test_ee23350()
+{
+ extern Class_Descriptor cd_ee23350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23350, buf);
+ ee23350 *dp, &lv = *(dp=new (buf) ee23350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee23350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee23350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(16,12), "ee23350");
+ check_base_class_offset(lv, (dd3350*), 0, "ee23350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23350.e");
+ test_class_info(&lv, &cd_ee23350);
+ dp->~ee23350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23350(Test_ee23350, "ee23350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23350C1Ev();
+extern void _ZN7ee23350D1Ev();
+Name_Map name_map_ee23350[] = {
+ NSPAIR(_ZN7ee23350C1Ev),
+ NSPAIR(_ZN7ee23350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee23350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23350[];
+extern void _ZN7ee233503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee233503fooEv,_ZTv0_n20_N7ee233503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233503fooEv,_ZThn12_N7ee233503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee23350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23350[0]),
+ (VTBL_ENTRY)&_ZN7ee233503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee233503fooEv,_ZTv0_n20_N7ee233503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee23350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee23350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee23350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee23350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee23350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee23350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23350[] = {
+ {&(_ZTV7ee23350[5]), 5,17},
+ {&(_tg__ZTV6dd3350__7ee23350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee23350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee23350[4]), 4,5},
+ {&(_ZTV7ee23350[11]), 11,17},
+ {&(_ZTV7ee23350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee23350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee23350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee23350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23350[];
+extern VTBL_ENTRY _ZTV7ee23350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23350[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee233503fooEv,_ZTv0_n20_N7ee233503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233503fooEv,_ZThn12_N7ee233503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23350 = { "ee23350", // class name
+ bases_ee23350, 4,
+ &(vtc_ee23350[0]), // expected_vtbl_contents
+ &(vtt_ee23350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33350 : virtual dd3350 {
+ int e;
+ virtual void foo(); // _ZN7ee333503fooEv
+ ~ee33350(); // tgen
+ ee33350(); // tgen
+};
+//SIG(1 ee33350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33350 ::foo(){vfunc_called(this, "_ZN7ee333503fooEv");}
+ee33350 ::~ee33350(){ note_dtor("ee33350", this);} // tgen
+ee33350 ::ee33350(){ note_ctor("ee33350", this);} // tgen
+
+static void Test_ee33350()
+{
+ extern Class_Descriptor cd_ee33350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33350, buf);
+ ee33350 *dp, &lv = *(dp=new (buf) ee33350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee33350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee33350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(32,16), "ee33350");
+ check_base_class_offset(lv, (dd3350*), ABISELECT(16,8), "ee33350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33350.e");
+ test_class_info(&lv, &cd_ee33350);
+ dp->~ee33350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33350(Test_ee33350, "ee33350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33350C1Ev();
+extern void _ZN7ee33350D1Ev();
+Name_Map name_map_ee33350[] = {
+ NSPAIR(_ZN7ee33350C1Ev),
+ NSPAIR(_ZN7ee33350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee33350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee33350[];
+extern void _ZN7ee333503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee333503fooEv,_ZTv0_n24_N7ee333503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333503fooEv,_ZThn8_N7ee333503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee333503fooEv,_ZTv0_n20_N7ee333503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333503fooEv,_ZThn16_N7ee333503fooEv)() __attribute__((weak));
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY vtc_ee33350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33350[0]),
+ (VTBL_ENTRY)&_ZN7ee333503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee333503fooEv,_ZTv0_n24_N7ee333503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333503fooEv,_ZTv0_n20_N7ee333503fooEv),
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee33350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee33350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee33350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee33350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee33350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee33350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33350[] = {
+ {&(_ZTV7ee33350[6]), 6,25},
+ {&(_ZTV7ee33350[13]), 13,25},
+ {&(_ZTV7ee33350[19]), 19,25},
+ {&(_ZTV7ee33350[24]), 24,25},
+ {&(_tg__ZTV6dd3350__7ee33350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee33350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee33350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee33350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee33350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee33350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33350[];
+extern VTBL_ENTRY _ZTV7ee33350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33350[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333503fooEv,_ZTv0_n20_N7ee333503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333503fooEv,_ZThn16_N7ee333503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee333503fooEv,_ZTv0_n24_N7ee333503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333503fooEv,_ZThn8_N7ee333503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33350 = { "ee33350", // class name
+ bases_ee33350, 4,
+ &(vtc_ee33350[0]), // expected_vtbl_contents
+ &(vtt_ee33350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33350),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43350 : dd3350 {
+ int e;
+ virtual void bar(); // _ZN7ee433503barEv
+ ~ee43350(); // tgen
+ ee43350(); // tgen
+};
+//SIG(1 ee43350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43350 ::bar(){vfunc_called(this, "_ZN7ee433503barEv");}
+ee43350 ::~ee43350(){ note_dtor("ee43350", this);} // tgen
+ee43350 ::ee43350(){ note_ctor("ee43350", this);} // tgen
+
+static void Test_ee43350()
+{
+ extern Class_Descriptor cd_ee43350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43350, buf);
+ ee43350 *dp, &lv = *(dp=new (buf) ee43350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee43350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee43350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(16,12), "ee43350");
+ check_base_class_offset(lv, (dd3350*), 0, "ee43350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43350.e");
+ test_class_info(&lv, &cd_ee43350);
+ dp->~ee43350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43350(Test_ee43350, "ee43350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43350C1Ev();
+extern void _ZN7ee43350D1Ev();
+Name_Map name_map_ee43350[] = {
+ NSPAIR(_ZN7ee43350C1Ev),
+ NSPAIR(_ZN7ee43350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee43350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43350[];
+extern void _ZN6dd33503fooEv();
+extern void _ZN7ee433503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433503barEv,_ZTv0_n16_N7ee433503barEv)();
+extern void ABISELECT(_ZThn32_N7ee433503barEv,_ZThn20_N7ee433503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+ (VTBL_ENTRY)&_ZN7ee433503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433503barEv,_ZTv0_n16_N7ee433503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee43350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee43350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee43350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee43350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee43350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee43350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43350[] = {
+ {&(_ZTV7ee43350[5]), 5,18},
+ {&(_tg__ZTV6dd3350__7ee43350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee43350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee43350[4]), 4,5},
+ {&(_ZTV7ee43350[12]), 12,18},
+ {&(_ZTV7ee43350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee43350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee43350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee43350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43350[];
+extern VTBL_ENTRY _ZTV7ee43350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43350[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433503barEv,_ZTv0_n16_N7ee433503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433503barEv,_ZThn20_N7ee433503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43350 = { "ee43350", // class name
+ bases_ee43350, 4,
+ &(vtc_ee43350[0]), // expected_vtbl_contents
+ &(vtt_ee43350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53350 : virtual dd3350 {
+ int e;
+ virtual void bar(); // _ZN7ee533503barEv
+ ~ee53350(); // tgen
+ ee53350(); // tgen
+};
+//SIG(1 ee53350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53350 ::bar(){vfunc_called(this, "_ZN7ee533503barEv");}
+ee53350 ::~ee53350(){ note_dtor("ee53350", this);} // tgen
+ee53350 ::ee53350(){ note_ctor("ee53350", this);} // tgen
+
+static void Test_ee53350()
+{
+ extern Class_Descriptor cd_ee53350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53350, buf);
+ ee53350 *dp, &lv = *(dp=new (buf) ee53350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee53350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee53350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(32,16), "ee53350");
+ check_base_class_offset(lv, (dd3350*), ABISELECT(16,8), "ee53350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53350.e");
+ test_class_info(&lv, &cd_ee53350);
+ dp->~ee53350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53350(Test_ee53350, "ee53350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53350C1Ev();
+extern void _ZN7ee53350D1Ev();
+Name_Map name_map_ee53350[] = {
+ NSPAIR(_ZN7ee53350C1Ev),
+ NSPAIR(_ZN7ee53350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee53350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee53350[];
+extern void _ZN7ee533503barEv();
+extern void _ZN6dd33503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533503barEv,_ZTv0_n16_N7ee533503barEv)();
+extern void ABISELECT(_ZThn48_N7ee533503barEv,_ZThn24_N7ee533503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53350[0]),
+ (VTBL_ENTRY)&_ZN7ee533503barEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533503barEv,_ZTv0_n16_N7ee533503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee53350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee53350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee53350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee53350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee53350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee53350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53350[] = {
+ {&(_ZTV7ee53350[6]), 6,25},
+ {&(_ZTV7ee53350[13]), 13,25},
+ {&(_ZTV7ee53350[19]), 19,25},
+ {&(_ZTV7ee53350[24]), 24,25},
+ {&(_tg__ZTV6dd3350__7ee53350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee53350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee53350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee53350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee53350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee53350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53350[];
+extern VTBL_ENTRY _ZTV7ee53350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53350[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533503barEv,_ZTv0_n16_N7ee533503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533503barEv,_ZThn24_N7ee533503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53350 = { "ee53350", // class name
+ bases_ee53350, 4,
+ &(vtc_ee53350[0]), // expected_vtbl_contents
+ &(vtt_ee53350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53350),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63350 : dd3350 {
+ int e;
+ virtual void foo(); // _ZN7ee633503fooEv
+ virtual void bar(); // _ZN7ee633503barEv
+ ~ee63350(); // tgen
+ ee63350(); // tgen
+};
+//SIG(1 ee63350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63350 ::foo(){vfunc_called(this, "_ZN7ee633503fooEv");}
+void ee63350 ::bar(){vfunc_called(this, "_ZN7ee633503barEv");}
+ee63350 ::~ee63350(){ note_dtor("ee63350", this);} // tgen
+ee63350 ::ee63350(){ note_ctor("ee63350", this);} // tgen
+
+static void Test_ee63350()
+{
+ extern Class_Descriptor cd_ee63350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63350, buf);
+ ee63350 *dp, &lv = *(dp=new (buf) ee63350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee63350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee63350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(16,12), "ee63350");
+ check_base_class_offset(lv, (dd3350*), 0, "ee63350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63350.e");
+ test_class_info(&lv, &cd_ee63350);
+ dp->~ee63350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63350(Test_ee63350, "ee63350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63350C1Ev();
+extern void _ZN7ee63350D1Ev();
+Name_Map name_map_ee63350[] = {
+ NSPAIR(_ZN7ee63350C1Ev),
+ NSPAIR(_ZN7ee63350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee63350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63350[];
+extern void _ZN7ee633503fooEv();
+extern void _ZN7ee633503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee633503fooEv,_ZTv0_n20_N7ee633503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633503fooEv,_ZThn12_N7ee633503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633503barEv,_ZTv0_n16_N7ee633503barEv)();
+extern void ABISELECT(_ZThn32_N7ee633503barEv,_ZThn20_N7ee633503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63350[0]),
+ (VTBL_ENTRY)&_ZN7ee633503fooEv,
+ (VTBL_ENTRY)&_ZN7ee633503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee633503fooEv,_ZTv0_n20_N7ee633503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633503barEv,_ZTv0_n16_N7ee633503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee63350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee63350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee63350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee63350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee63350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee63350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63350[] = {
+ {&(_ZTV7ee63350[5]), 5,18},
+ {&(_tg__ZTV6dd3350__7ee63350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee63350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee63350[4]), 4,5},
+ {&(_ZTV7ee63350[12]), 12,18},
+ {&(_ZTV7ee63350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee63350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee63350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee63350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63350[];
+extern VTBL_ENTRY _ZTV7ee63350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63350[];
+static VTBL_ENTRY alt_thunk_names160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn12_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633503barEv,_ZTv0_n16_N7ee633503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633503barEv,_ZThn20_N7ee633503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee633503fooEv,_ZTv0_n20_N7ee633503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633503fooEv,_ZThn12_N7ee633503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63350 = { "ee63350", // class name
+ bases_ee63350, 4,
+ &(vtc_ee63350[0]), // expected_vtbl_contents
+ &(vtt_ee63350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73350 : virtual dd3350 {
+ int e;
+ virtual void foo(); // _ZN7ee733503fooEv
+ virtual void bar(); // _ZN7ee733503barEv
+ ~ee73350(); // tgen
+ ee73350(); // tgen
+};
+//SIG(1 ee73350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73350 ::foo(){vfunc_called(this, "_ZN7ee733503fooEv");}
+void ee73350 ::bar(){vfunc_called(this, "_ZN7ee733503barEv");}
+ee73350 ::~ee73350(){ note_dtor("ee73350", this);} // tgen
+ee73350 ::ee73350(){ note_ctor("ee73350", this);} // tgen
+
+static void Test_ee73350()
+{
+ extern Class_Descriptor cd_ee73350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73350, buf);
+ ee73350 *dp, &lv = *(dp=new (buf) ee73350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee73350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee73350");
+ check_base_class_offset(lv, (cc350*)(dd3350*), ABISELECT(32,16), "ee73350");
+ check_base_class_offset(lv, (dd3350*), ABISELECT(16,8), "ee73350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73350.e");
+ test_class_info(&lv, &cd_ee73350);
+ dp->~ee73350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73350(Test_ee73350, "ee73350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73350C1Ev();
+extern void _ZN7ee73350D1Ev();
+Name_Map name_map_ee73350[] = {
+ NSPAIR(_ZN7ee73350C1Ev),
+ NSPAIR(_ZN7ee73350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd3350;
+extern VTBL_ENTRY _ZTI6dd3350[];
+extern VTBL_ENTRY _ZTV6dd3350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3350[];
+static Base_Class bases_ee73350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3350, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee73350[];
+extern void _ZN7ee733503fooEv();
+extern void _ZN7ee733503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee733503fooEv,_ZTv0_n24_N7ee733503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733503fooEv,_ZThn8_N7ee733503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee733503fooEv,_ZTv0_n20_N7ee733503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733503fooEv,_ZThn16_N7ee733503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733503barEv,_ZTv0_n16_N7ee733503barEv)();
+extern void ABISELECT(_ZThn48_N7ee733503barEv,_ZThn24_N7ee733503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73350[0]),
+ (VTBL_ENTRY)&_ZN7ee733503fooEv,
+ (VTBL_ENTRY)&_ZN7ee733503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee733503fooEv,_ZTv0_n24_N7ee733503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733503fooEv,_ZTv0_n20_N7ee733503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733503barEv,_ZTv0_n16_N7ee733503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73350[];
+extern void _ZN6dd33503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3350__7ee73350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN6dd33503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd3350__7ee73350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3350__7ee73350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee73350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee73350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee73350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73350[] = {
+ {&(_ZTV7ee73350[6]), 6,26},
+ {&(_ZTV7ee73350[14]), 14,26},
+ {&(_ZTV7ee73350[20]), 20,26},
+ {&(_ZTV7ee73350[25]), 25,26},
+ {&(_tg__ZTV6dd3350__7ee73350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd3350__7ee73350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3350__7ee73350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee73350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee73350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee73350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73350[];
+extern VTBL_ENTRY _ZTV7ee73350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73350[];
+static VTBL_ENTRY alt_thunk_names161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33503fooEv,_ZTv0_n20_N6dd33503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33503fooEv,_ZThn8_N6dd33503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733503barEv,_ZTv0_n16_N7ee733503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733503barEv,_ZThn24_N7ee733503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733503fooEv,_ZTv0_n20_N7ee733503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733503fooEv,_ZThn16_N7ee733503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee733503fooEv,_ZTv0_n24_N7ee733503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733503fooEv,_ZThn8_N7ee733503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73350 = { "ee73350", // class name
+ bases_ee73350, 4,
+ &(vtc_ee73350[0]), // expected_vtbl_contents
+ &(vtt_ee73350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73350),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4350 : cc350 {
+ int d;
+ virtual void bar(); // _ZN6dd43503barEv
+ ~dd4350(); // tgen
+ dd4350(); // tgen
+};
+//SIG(-1 dd4350) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4350 ::bar(){vfunc_called(this, "_ZN6dd43503barEv");}
+dd4350 ::~dd4350(){ note_dtor("dd4350", this);} // tgen
+dd4350 ::dd4350(){ note_ctor("dd4350", this);} // tgen
+
+static void Test_dd4350()
+{
+ extern Class_Descriptor cd_dd4350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4350, buf);
+ dd4350 *dp, &lv = *(dp=new (buf) dd4350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd4350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(16,12), "dd4350");
+ check_base_class_offset(lv, (cc350*), 0, "dd4350");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4350.d");
+ test_class_info(&lv, &cd_dd4350);
+ dp->~dd4350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4350(Test_dd4350, "dd4350", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4350C1Ev();
+extern void _ZN6dd4350D1Ev();
+Name_Map name_map_dd4350[] = {
+ NSPAIR(_ZN6dd4350C1Ev),
+ NSPAIR(_ZN6dd4350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd4350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd4350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd4350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4350[] = {
+ {&(_ZTV6dd4350[4]), 4,11},
+ {&(_tg__ZTV5cc350__6dd4350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd4350[4]), 4,5},
+ {&(_ZTV6dd4350[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd4350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static VTBL_ENTRY alt_thunk_names162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4350 = { "dd4350", // class name
+ bases_dd4350, 3,
+ &(vtc_dd4350[0]), // expected_vtbl_contents
+ &(vtt_dd4350[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4350),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04350 : dd4350 {
+ int e;
+ ~ee04350(); // tgen
+ ee04350(); // tgen
+};
+//SIG(1 ee04350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04350 ::~ee04350(){ note_dtor("ee04350", this);} // tgen
+ee04350 ::ee04350(){ note_ctor("ee04350", this);} // tgen
+
+static void Test_ee04350()
+{
+ extern Class_Descriptor cd_ee04350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04350, buf);
+ ee04350 *dp, &lv = *(dp=new (buf) ee04350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee04350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(24,16), "ee04350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), 0, "ee04350");
+ check_base_class_offset(lv, (dd4350*), 0, "ee04350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04350.e");
+ test_class_info(&lv, &cd_ee04350);
+ dp->~ee04350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04350(Test_ee04350, "ee04350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04350C1Ev();
+extern void _ZN7ee04350D1Ev();
+Name_Map name_map_ee04350[] = {
+ NSPAIR(_ZN7ee04350C1Ev),
+ NSPAIR(_ZN7ee04350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee04350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee04350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee04350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee04350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee04350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee04350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04350[] = {
+ {&(_ZTV7ee04350[4]), 4,11},
+ {&(_tg__ZTV6dd4350__7ee04350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee04350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee04350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee04350[4]), 4,5},
+ {&(_ZTV7ee04350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee04350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04350[];
+extern VTBL_ENTRY _ZTV7ee04350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04350[];
+static VTBL_ENTRY alt_thunk_names163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04350 = { "ee04350", // class name
+ bases_ee04350, 4,
+ &(vtc_ee04350[0]), // expected_vtbl_contents
+ &(vtt_ee04350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14350 : virtual dd4350 {
+ int e;
+ ~ee14350(); // tgen
+ ee14350(); // tgen
+};
+//SIG(1 ee14350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14350 ::~ee14350(){ note_dtor("ee14350", this);} // tgen
+ee14350 ::ee14350(){ note_ctor("ee14350", this);} // tgen
+
+static void Test_ee14350()
+{
+ extern Class_Descriptor cd_ee14350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14350, buf);
+ ee14350 *dp, &lv = *(dp=new (buf) ee14350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee14350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(32,20), "ee14350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), ABISELECT(16,8), "ee14350");
+ check_base_class_offset(lv, (dd4350*), ABISELECT(16,8), "ee14350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14350.e");
+ test_class_info(&lv, &cd_ee14350);
+ dp->~ee14350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14350(Test_ee14350, "ee14350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14350C1Ev();
+extern void _ZN7ee14350D1Ev();
+Name_Map name_map_ee14350[] = {
+ NSPAIR(_ZN7ee14350C1Ev),
+ NSPAIR(_ZN7ee14350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee14350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee14350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14350[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee14350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee14350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee14350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee14350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee14350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14350[] = {
+ {&(_ZTV7ee14350[5]), 5,18},
+ {&(_ZTV7ee14350[11]), 11,18},
+ {&(_ZTV7ee14350[17]), 17,18},
+ {&(_tg__ZTV6dd4350__7ee14350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee14350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee14350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee14350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee14350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14350[];
+extern VTBL_ENTRY _ZTV7ee14350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14350[];
+static VTBL_ENTRY alt_thunk_names164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14350 = { "ee14350", // class name
+ bases_ee14350, 4,
+ &(vtc_ee14350[0]), // expected_vtbl_contents
+ &(vtt_ee14350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24350 : dd4350 {
+ int e;
+ virtual void foo(); // _ZN7ee243503fooEv
+ ~ee24350(); // tgen
+ ee24350(); // tgen
+};
+//SIG(1 ee24350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24350 ::foo(){vfunc_called(this, "_ZN7ee243503fooEv");}
+ee24350 ::~ee24350(){ note_dtor("ee24350", this);} // tgen
+ee24350 ::ee24350(){ note_ctor("ee24350", this);} // tgen
+
+static void Test_ee24350()
+{
+ extern Class_Descriptor cd_ee24350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24350, buf);
+ ee24350 *dp, &lv = *(dp=new (buf) ee24350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee24350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(24,16), "ee24350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), 0, "ee24350");
+ check_base_class_offset(lv, (dd4350*), 0, "ee24350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24350.e");
+ test_class_info(&lv, &cd_ee24350);
+ dp->~ee24350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24350(Test_ee24350, "ee24350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24350C1Ev();
+extern void _ZN7ee24350D1Ev();
+Name_Map name_map_ee24350[] = {
+ NSPAIR(_ZN7ee24350C1Ev),
+ NSPAIR(_ZN7ee24350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee24350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24350[];
+extern void _ZN7ee243503fooEv();
+extern void _ZN6dd43503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24350[0]),
+ (VTBL_ENTRY)&_ZN7ee243503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee24350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee24350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee24350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee24350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee24350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24350[] = {
+ {&(_ZTV7ee24350[4]), 4,11},
+ {&(_tg__ZTV6dd4350__7ee24350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee24350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee24350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee24350[4]), 4,5},
+ {&(_ZTV7ee24350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee24350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24350[];
+extern VTBL_ENTRY _ZTV7ee24350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24350[];
+static VTBL_ENTRY alt_thunk_names165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24350 = { "ee24350", // class name
+ bases_ee24350, 4,
+ &(vtc_ee24350[0]), // expected_vtbl_contents
+ &(vtt_ee24350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34350 : virtual dd4350 {
+ int e;
+ virtual void foo(); // _ZN7ee343503fooEv
+ ~ee34350(); // tgen
+ ee34350(); // tgen
+};
+//SIG(1 ee34350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34350 ::foo(){vfunc_called(this, "_ZN7ee343503fooEv");}
+ee34350 ::~ee34350(){ note_dtor("ee34350", this);} // tgen
+ee34350 ::ee34350(){ note_ctor("ee34350", this);} // tgen
+
+static void Test_ee34350()
+{
+ extern Class_Descriptor cd_ee34350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34350, buf);
+ ee34350 *dp, &lv = *(dp=new (buf) ee34350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee34350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(32,20), "ee34350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), ABISELECT(16,8), "ee34350");
+ check_base_class_offset(lv, (dd4350*), ABISELECT(16,8), "ee34350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34350.e");
+ test_class_info(&lv, &cd_ee34350);
+ dp->~ee34350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34350(Test_ee34350, "ee34350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34350C1Ev();
+extern void _ZN7ee34350D1Ev();
+Name_Map name_map_ee34350[] = {
+ NSPAIR(_ZN7ee34350C1Ev),
+ NSPAIR(_ZN7ee34350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee34350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee34350[];
+extern void _ZN7ee343503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee343503fooEv,_ZTv0_n20_N7ee343503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343503fooEv,_ZThn8_N7ee343503fooEv)() __attribute__((weak));
+extern void _ZN6dd43503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34350[0]),
+ (VTBL_ENTRY)&_ZN7ee343503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee343503fooEv,_ZTv0_n20_N7ee343503fooEv),
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee34350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee34350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee34350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee34350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee34350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34350[] = {
+ {&(_ZTV7ee34350[5]), 5,19},
+ {&(_ZTV7ee34350[12]), 12,19},
+ {&(_ZTV7ee34350[18]), 18,19},
+ {&(_tg__ZTV6dd4350__7ee34350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee34350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee34350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee34350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee34350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34350[];
+extern VTBL_ENTRY _ZTV7ee34350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34350[];
+static VTBL_ENTRY alt_thunk_names166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee343503fooEv,_ZTv0_n20_N7ee343503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343503fooEv,_ZThn8_N7ee343503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34350 = { "ee34350", // class name
+ bases_ee34350, 4,
+ &(vtc_ee34350[0]), // expected_vtbl_contents
+ &(vtt_ee34350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34350),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names166,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44350 : dd4350 {
+ int e;
+ virtual void bar(); // _ZN7ee443503barEv
+ ~ee44350(); // tgen
+ ee44350(); // tgen
+};
+//SIG(1 ee44350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44350 ::bar(){vfunc_called(this, "_ZN7ee443503barEv");}
+ee44350 ::~ee44350(){ note_dtor("ee44350", this);} // tgen
+ee44350 ::ee44350(){ note_ctor("ee44350", this);} // tgen
+
+static void Test_ee44350()
+{
+ extern Class_Descriptor cd_ee44350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44350, buf);
+ ee44350 *dp, &lv = *(dp=new (buf) ee44350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee44350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(24,16), "ee44350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), 0, "ee44350");
+ check_base_class_offset(lv, (dd4350*), 0, "ee44350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44350.e");
+ test_class_info(&lv, &cd_ee44350);
+ dp->~ee44350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44350(Test_ee44350, "ee44350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44350C1Ev();
+extern void _ZN7ee44350D1Ev();
+Name_Map name_map_ee44350[] = {
+ NSPAIR(_ZN7ee44350C1Ev),
+ NSPAIR(_ZN7ee44350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee44350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN7ee443503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee443503barEv,_ZTv0_n16_N7ee443503barEv)();
+extern void ABISELECT(_ZThn24_N7ee443503barEv,_ZThn16_N7ee443503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN7ee443503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443503barEv,_ZTv0_n16_N7ee443503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee44350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee44350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee44350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee44350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee44350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44350[] = {
+ {&(_ZTV7ee44350[4]), 4,11},
+ {&(_tg__ZTV6dd4350__7ee44350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee44350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee44350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee44350[4]), 4,5},
+ {&(_ZTV7ee44350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee44350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44350[];
+extern VTBL_ENTRY _ZTV7ee44350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44350[];
+static VTBL_ENTRY alt_thunk_names167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443503barEv,_ZTv0_n16_N7ee443503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443503barEv,_ZThn16_N7ee443503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44350 = { "ee44350", // class name
+ bases_ee44350, 4,
+ &(vtc_ee44350[0]), // expected_vtbl_contents
+ &(vtt_ee44350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54350 : virtual dd4350 {
+ int e;
+ virtual void bar(); // _ZN7ee543503barEv
+ ~ee54350(); // tgen
+ ee54350(); // tgen
+};
+//SIG(1 ee54350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54350 ::bar(){vfunc_called(this, "_ZN7ee543503barEv");}
+ee54350 ::~ee54350(){ note_dtor("ee54350", this);} // tgen
+ee54350 ::ee54350(){ note_ctor("ee54350", this);} // tgen
+
+static void Test_ee54350()
+{
+ extern Class_Descriptor cd_ee54350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54350, buf);
+ ee54350 *dp, &lv = *(dp=new (buf) ee54350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee54350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(32,20), "ee54350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), ABISELECT(16,8), "ee54350");
+ check_base_class_offset(lv, (dd4350*), ABISELECT(16,8), "ee54350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54350.e");
+ test_class_info(&lv, &cd_ee54350);
+ dp->~ee54350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54350(Test_ee54350, "ee54350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54350C1Ev();
+extern void _ZN7ee54350D1Ev();
+Name_Map name_map_ee54350[] = {
+ NSPAIR(_ZN7ee54350C1Ev),
+ NSPAIR(_ZN7ee54350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee54350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee54350[];
+extern void _ZN7ee543503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee543503barEv,_ZTv0_n24_N7ee543503barEv)();
+extern void ABISELECT(_ZThn16_N7ee543503barEv,_ZThn8_N7ee543503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543503barEv,_ZTv0_n16_N7ee543503barEv)();
+extern void ABISELECT(_ZThn32_N7ee543503barEv,_ZThn20_N7ee543503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54350[0]),
+ (VTBL_ENTRY)&_ZN7ee543503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee543503barEv,_ZTv0_n24_N7ee543503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543503barEv,_ZTv0_n16_N7ee543503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee54350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee54350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee54350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee54350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee54350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54350[] = {
+ {&(_ZTV7ee54350[5]), 5,19},
+ {&(_ZTV7ee54350[12]), 12,19},
+ {&(_ZTV7ee54350[18]), 18,19},
+ {&(_tg__ZTV6dd4350__7ee54350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee54350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee54350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee54350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee54350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54350[];
+extern VTBL_ENTRY _ZTV7ee54350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54350[];
+static VTBL_ENTRY alt_thunk_names168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543503barEv,_ZTv0_n16_N7ee543503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543503barEv,_ZThn20_N7ee543503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee543503barEv,_ZTv0_n24_N7ee543503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543503barEv,_ZThn8_N7ee543503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54350 = { "ee54350", // class name
+ bases_ee54350, 4,
+ &(vtc_ee54350[0]), // expected_vtbl_contents
+ &(vtt_ee54350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54350),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64350 : dd4350 {
+ int e;
+ virtual void foo(); // _ZN7ee643503fooEv
+ virtual void bar(); // _ZN7ee643503barEv
+ ~ee64350(); // tgen
+ ee64350(); // tgen
+};
+//SIG(1 ee64350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64350 ::foo(){vfunc_called(this, "_ZN7ee643503fooEv");}
+void ee64350 ::bar(){vfunc_called(this, "_ZN7ee643503barEv");}
+ee64350 ::~ee64350(){ note_dtor("ee64350", this);} // tgen
+ee64350 ::ee64350(){ note_ctor("ee64350", this);} // tgen
+
+static void Test_ee64350()
+{
+ extern Class_Descriptor cd_ee64350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64350, buf);
+ ee64350 *dp, &lv = *(dp=new (buf) ee64350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee64350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(24,16), "ee64350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), 0, "ee64350");
+ check_base_class_offset(lv, (dd4350*), 0, "ee64350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64350.e");
+ test_class_info(&lv, &cd_ee64350);
+ dp->~ee64350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64350(Test_ee64350, "ee64350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64350C1Ev();
+extern void _ZN7ee64350D1Ev();
+Name_Map name_map_ee64350[] = {
+ NSPAIR(_ZN7ee64350C1Ev),
+ NSPAIR(_ZN7ee64350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee64350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64350[];
+extern void _ZN7ee643503fooEv();
+extern void _ZN7ee643503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee643503barEv,_ZTv0_n16_N7ee643503barEv)();
+extern void ABISELECT(_ZThn24_N7ee643503barEv,_ZThn16_N7ee643503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64350[0]),
+ (VTBL_ENTRY)&_ZN7ee643503fooEv,
+ (VTBL_ENTRY)&_ZN7ee643503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643503barEv,_ZTv0_n16_N7ee643503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee64350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee64350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee64350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee64350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee64350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64350[] = {
+ {&(_ZTV7ee64350[4]), 4,11},
+ {&(_tg__ZTV6dd4350__7ee64350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee64350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee64350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee64350[4]), 4,5},
+ {&(_ZTV7ee64350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee64350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64350[];
+extern VTBL_ENTRY _ZTV7ee64350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64350[];
+static VTBL_ENTRY alt_thunk_names169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43503barEv,_ZThn16_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643503barEv,_ZTv0_n16_N7ee643503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643503barEv,_ZThn16_N7ee643503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64350 = { "ee64350", // class name
+ bases_ee64350, 4,
+ &(vtc_ee64350[0]), // expected_vtbl_contents
+ &(vtt_ee64350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74350 : virtual dd4350 {
+ int e;
+ virtual void foo(); // _ZN7ee743503fooEv
+ virtual void bar(); // _ZN7ee743503barEv
+ ~ee74350(); // tgen
+ ee74350(); // tgen
+};
+//SIG(1 ee74350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74350 ::foo(){vfunc_called(this, "_ZN7ee743503fooEv");}
+void ee74350 ::bar(){vfunc_called(this, "_ZN7ee743503barEv");}
+ee74350 ::~ee74350(){ note_dtor("ee74350", this);} // tgen
+ee74350 ::ee74350(){ note_ctor("ee74350", this);} // tgen
+
+static void Test_ee74350()
+{
+ extern Class_Descriptor cd_ee74350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74350, buf);
+ ee74350 *dp, &lv = *(dp=new (buf) ee74350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee74350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd4350*), ABISELECT(32,20), "ee74350");
+ check_base_class_offset(lv, (cc350*)(dd4350*), ABISELECT(16,8), "ee74350");
+ check_base_class_offset(lv, (dd4350*), ABISELECT(16,8), "ee74350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74350.e");
+ test_class_info(&lv, &cd_ee74350);
+ dp->~ee74350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74350(Test_ee74350, "ee74350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74350C1Ev();
+extern void _ZN7ee74350D1Ev();
+Name_Map name_map_ee74350[] = {
+ NSPAIR(_ZN7ee74350C1Ev),
+ NSPAIR(_ZN7ee74350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd4350;
+extern VTBL_ENTRY _ZTI6dd4350[];
+extern VTBL_ENTRY _ZTV6dd4350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4350[];
+static Base_Class bases_ee74350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee74350[];
+extern void _ZN7ee743503fooEv();
+extern void _ZN7ee743503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee743503fooEv,_ZTv0_n20_N7ee743503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743503fooEv,_ZThn8_N7ee743503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee743503barEv,_ZTv0_n24_N7ee743503barEv)();
+extern void ABISELECT(_ZThn16_N7ee743503barEv,_ZThn8_N7ee743503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743503barEv,_ZTv0_n16_N7ee743503barEv)();
+extern void ABISELECT(_ZThn32_N7ee743503barEv,_ZThn20_N7ee743503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74350[0]),
+ (VTBL_ENTRY)&_ZN7ee743503fooEv,
+ (VTBL_ENTRY)&_ZN7ee743503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743503fooEv,_ZTv0_n20_N7ee743503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee743503barEv,_ZTv0_n24_N7ee743503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743503barEv,_ZTv0_n16_N7ee743503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74350[];
+extern void _ZN5cc3503fooEv();
+extern void _ZN6dd43503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4350__7ee74350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ (VTBL_ENTRY)&_ZN6dd43503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd4350__7ee74350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd4350__7ee74350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv)();
+extern void ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4350__7ee74350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee74350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74350[] = {
+ {&(_ZTV7ee74350[5]), 5,20},
+ {&(_ZTV7ee74350[13]), 13,20},
+ {&(_ZTV7ee74350[19]), 19,20},
+ {&(_tg__ZTV6dd4350__7ee74350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd4350__7ee74350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd4350__7ee74350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4350__7ee74350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee74350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74350[];
+extern VTBL_ENTRY _ZTV7ee74350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74350[];
+static VTBL_ENTRY alt_thunk_names170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43503barEv,_ZTv0_n16_N6dd43503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43503barEv,_ZThn12_N6dd43503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743503barEv,_ZTv0_n16_N7ee743503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743503barEv,_ZThn20_N7ee743503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee743503barEv,_ZTv0_n24_N7ee743503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743503barEv,_ZThn8_N7ee743503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743503fooEv,_ZTv0_n20_N7ee743503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743503fooEv,_ZThn8_N7ee743503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74350 = { "ee74350", // class name
+ bases_ee74350, 4,
+ &(vtc_ee74350[0]), // expected_vtbl_contents
+ &(vtt_ee74350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74350),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5350 : virtual cc350 {
+ int d;
+ virtual void bar(); // _ZN6dd53503barEv
+ ~dd5350(); // tgen
+ dd5350(); // tgen
+};
+//SIG(-1 dd5350) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5350 ::bar(){vfunc_called(this, "_ZN6dd53503barEv");}
+dd5350 ::~dd5350(){ note_dtor("dd5350", this);} // tgen
+dd5350 ::dd5350(){ note_ctor("dd5350", this);} // tgen
+
+static void Test_dd5350()
+{
+ extern Class_Descriptor cd_dd5350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5350, buf);
+ dd5350 *dp, &lv = *(dp=new (buf) dd5350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd5350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,16), "dd5350");
+ check_base_class_offset(lv, (cc350*), ABISELECT(16,8), "dd5350");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5350.d");
+ test_class_info(&lv, &cd_dd5350);
+ dp->~dd5350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5350(Test_dd5350, "dd5350", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5350C1Ev();
+extern void _ZN6dd5350D1Ev();
+Name_Map name_map_dd5350[] = {
+ NSPAIR(_ZN6dd5350C1Ev),
+ NSPAIR(_ZN6dd5350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd5350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern void _ZN6dd53503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd5350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5350[] = {
+ {&(_ZTV6dd5350[5]), 5,17},
+ {&(_ZTV6dd5350[11]), 11,17},
+ {&(_ZTV6dd5350[16]), 16,17},
+ {&(_tg__ZTV5cc350__6dd5350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd5350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd5350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static VTBL_ENTRY alt_thunk_names171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5350 = { "dd5350", // class name
+ bases_dd5350, 3,
+ &(vtc_dd5350[0]), // expected_vtbl_contents
+ &(vtt_dd5350[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5350),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05350 : dd5350 {
+ int e;
+ ~ee05350(); // tgen
+ ee05350(); // tgen
+};
+//SIG(1 ee05350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05350 ::~ee05350(){ note_dtor("ee05350", this);} // tgen
+ee05350 ::ee05350(){ note_ctor("ee05350", this);} // tgen
+
+static void Test_ee05350()
+{
+ extern Class_Descriptor cd_ee05350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05350, buf);
+ ee05350 *dp, &lv = *(dp=new (buf) ee05350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee05350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee05350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(16,12), "ee05350");
+ check_base_class_offset(lv, (dd5350*), 0, "ee05350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05350.e");
+ test_class_info(&lv, &cd_ee05350);
+ dp->~ee05350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05350(Test_ee05350, "ee05350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05350C1Ev();
+extern void _ZN7ee05350D1Ev();
+Name_Map name_map_ee05350[] = {
+ NSPAIR(_ZN7ee05350C1Ev),
+ NSPAIR(_ZN7ee05350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee05350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05350[];
+extern void _ZN6dd53503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee05350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee05350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee05350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee05350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee05350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee05350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05350[] = {
+ {&(_ZTV7ee05350[5]), 5,17},
+ {&(_tg__ZTV6dd5350__7ee05350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee05350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee05350[4]), 4,5},
+ {&(_ZTV7ee05350[11]), 11,17},
+ {&(_ZTV7ee05350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee05350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee05350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee05350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05350[];
+extern VTBL_ENTRY _ZTV7ee05350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05350[];
+static VTBL_ENTRY alt_thunk_names172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05350 = { "ee05350", // class name
+ bases_ee05350, 4,
+ &(vtc_ee05350[0]), // expected_vtbl_contents
+ &(vtt_ee05350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15350 : virtual dd5350 {
+ int e;
+ ~ee15350(); // tgen
+ ee15350(); // tgen
+};
+//SIG(1 ee15350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15350 ::~ee15350(){ note_dtor("ee15350", this);} // tgen
+ee15350 ::ee15350(){ note_ctor("ee15350", this);} // tgen
+
+static void Test_ee15350()
+{
+ extern Class_Descriptor cd_ee15350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15350, buf);
+ ee15350 *dp, &lv = *(dp=new (buf) ee15350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee15350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee15350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(32,16), "ee15350");
+ check_base_class_offset(lv, (dd5350*), ABISELECT(16,8), "ee15350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15350.e");
+ test_class_info(&lv, &cd_ee15350);
+ dp->~ee15350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15350(Test_ee15350, "ee15350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15350C1Ev();
+extern void _ZN7ee15350D1Ev();
+Name_Map name_map_ee15350[] = {
+ NSPAIR(_ZN7ee15350C1Ev),
+ NSPAIR(_ZN7ee15350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee15350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee15350[];
+extern void _ZN6dd53503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15350[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee15350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee15350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee15350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee15350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee15350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee15350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15350[] = {
+ {&(_ZTV7ee15350[6]), 6,24},
+ {&(_ZTV7ee15350[12]), 12,24},
+ {&(_ZTV7ee15350[18]), 18,24},
+ {&(_ZTV7ee15350[23]), 23,24},
+ {&(_tg__ZTV6dd5350__7ee15350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee15350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee15350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee15350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee15350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee15350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15350[];
+extern VTBL_ENTRY _ZTV7ee15350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15350[];
+static VTBL_ENTRY alt_thunk_names173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15350 = { "ee15350", // class name
+ bases_ee15350, 4,
+ &(vtc_ee15350[0]), // expected_vtbl_contents
+ &(vtt_ee15350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15350),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25350 : dd5350 {
+ int e;
+ virtual void foo(); // _ZN7ee253503fooEv
+ ~ee25350(); // tgen
+ ee25350(); // tgen
+};
+//SIG(1 ee25350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25350 ::foo(){vfunc_called(this, "_ZN7ee253503fooEv");}
+ee25350 ::~ee25350(){ note_dtor("ee25350", this);} // tgen
+ee25350 ::ee25350(){ note_ctor("ee25350", this);} // tgen
+
+static void Test_ee25350()
+{
+ extern Class_Descriptor cd_ee25350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25350, buf);
+ ee25350 *dp, &lv = *(dp=new (buf) ee25350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee25350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee25350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(16,12), "ee25350");
+ check_base_class_offset(lv, (dd5350*), 0, "ee25350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25350.e");
+ test_class_info(&lv, &cd_ee25350);
+ dp->~ee25350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25350(Test_ee25350, "ee25350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25350C1Ev();
+extern void _ZN7ee25350D1Ev();
+Name_Map name_map_ee25350[] = {
+ NSPAIR(_ZN7ee25350C1Ev),
+ NSPAIR(_ZN7ee25350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee25350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25350[];
+extern void _ZN6dd53503barEv();
+extern void _ZN7ee253503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee253503fooEv,_ZTv0_n20_N7ee253503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253503fooEv,_ZThn12_N7ee253503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+ (VTBL_ENTRY)&_ZN7ee253503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee253503fooEv,_ZTv0_n20_N7ee253503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee25350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee25350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee25350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee25350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee25350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee25350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25350[] = {
+ {&(_ZTV7ee25350[5]), 5,18},
+ {&(_tg__ZTV6dd5350__7ee25350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee25350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee25350[4]), 4,5},
+ {&(_ZTV7ee25350[12]), 12,18},
+ {&(_ZTV7ee25350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee25350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee25350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee25350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25350[];
+extern VTBL_ENTRY _ZTV7ee25350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25350[];
+static VTBL_ENTRY alt_thunk_names174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee253503fooEv,_ZTv0_n20_N7ee253503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253503fooEv,_ZThn12_N7ee253503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25350 = { "ee25350", // class name
+ bases_ee25350, 4,
+ &(vtc_ee25350[0]), // expected_vtbl_contents
+ &(vtt_ee25350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35350 : virtual dd5350 {
+ int e;
+ virtual void foo(); // _ZN7ee353503fooEv
+ ~ee35350(); // tgen
+ ee35350(); // tgen
+};
+//SIG(1 ee35350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35350 ::foo(){vfunc_called(this, "_ZN7ee353503fooEv");}
+ee35350 ::~ee35350(){ note_dtor("ee35350", this);} // tgen
+ee35350 ::ee35350(){ note_ctor("ee35350", this);} // tgen
+
+static void Test_ee35350()
+{
+ extern Class_Descriptor cd_ee35350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35350, buf);
+ ee35350 *dp, &lv = *(dp=new (buf) ee35350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee35350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee35350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(32,16), "ee35350");
+ check_base_class_offset(lv, (dd5350*), ABISELECT(16,8), "ee35350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35350.e");
+ test_class_info(&lv, &cd_ee35350);
+ dp->~ee35350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35350(Test_ee35350, "ee35350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35350C1Ev();
+extern void _ZN7ee35350D1Ev();
+Name_Map name_map_ee35350[] = {
+ NSPAIR(_ZN7ee35350C1Ev),
+ NSPAIR(_ZN7ee35350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee35350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee35350[];
+extern void _ZN7ee353503fooEv();
+extern void _ZN6dd53503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee353503fooEv,_ZTv0_n20_N7ee353503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353503fooEv,_ZThn16_N7ee353503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35350[0]),
+ (VTBL_ENTRY)&_ZN7ee353503fooEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee353503fooEv,_ZTv0_n20_N7ee353503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee35350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee35350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee35350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee35350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee35350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee35350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35350[] = {
+ {&(_ZTV7ee35350[6]), 6,25},
+ {&(_ZTV7ee35350[13]), 13,25},
+ {&(_ZTV7ee35350[19]), 19,25},
+ {&(_ZTV7ee35350[24]), 24,25},
+ {&(_tg__ZTV6dd5350__7ee35350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee35350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee35350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee35350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee35350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee35350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35350[];
+extern VTBL_ENTRY _ZTV7ee35350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35350[];
+static VTBL_ENTRY alt_thunk_names175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee353503fooEv,_ZTv0_n20_N7ee353503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353503fooEv,_ZThn16_N7ee353503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35350 = { "ee35350", // class name
+ bases_ee35350, 4,
+ &(vtc_ee35350[0]), // expected_vtbl_contents
+ &(vtt_ee35350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35350),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45350 : dd5350 {
+ int e;
+ virtual void bar(); // _ZN7ee453503barEv
+ ~ee45350(); // tgen
+ ee45350(); // tgen
+};
+//SIG(1 ee45350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45350 ::bar(){vfunc_called(this, "_ZN7ee453503barEv");}
+ee45350 ::~ee45350(){ note_dtor("ee45350", this);} // tgen
+ee45350 ::ee45350(){ note_ctor("ee45350", this);} // tgen
+
+static void Test_ee45350()
+{
+ extern Class_Descriptor cd_ee45350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45350, buf);
+ ee45350 *dp, &lv = *(dp=new (buf) ee45350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee45350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee45350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(16,12), "ee45350");
+ check_base_class_offset(lv, (dd5350*), 0, "ee45350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45350.e");
+ test_class_info(&lv, &cd_ee45350);
+ dp->~ee45350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45350(Test_ee45350, "ee45350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45350C1Ev();
+extern void _ZN7ee45350D1Ev();
+Name_Map name_map_ee45350[] = {
+ NSPAIR(_ZN7ee45350C1Ev),
+ NSPAIR(_ZN7ee45350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee45350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45350[];
+extern void _ZN7ee453503barEv();
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee453503barEv,_ZTv0_n16_N7ee453503barEv)();
+extern void ABISELECT(_ZThn32_N7ee453503barEv,_ZThn20_N7ee453503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45350[0]),
+ (VTBL_ENTRY)&_ZN7ee453503barEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453503barEv,_ZTv0_n16_N7ee453503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee45350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee45350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee45350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee45350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee45350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee45350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45350[] = {
+ {&(_ZTV7ee45350[5]), 5,17},
+ {&(_tg__ZTV6dd5350__7ee45350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee45350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee45350[4]), 4,5},
+ {&(_ZTV7ee45350[11]), 11,17},
+ {&(_ZTV7ee45350[16]), 16,17},
+ {&(_tg__ZTV5cc350__7ee45350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee45350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee45350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45350[];
+extern VTBL_ENTRY _ZTV7ee45350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45350[];
+static VTBL_ENTRY alt_thunk_names176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453503barEv,_ZTv0_n16_N7ee453503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453503barEv,_ZThn20_N7ee453503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45350 = { "ee45350", // class name
+ bases_ee45350, 4,
+ &(vtc_ee45350[0]), // expected_vtbl_contents
+ &(vtt_ee45350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45350),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55350 : virtual dd5350 {
+ int e;
+ virtual void bar(); // _ZN7ee553503barEv
+ ~ee55350(); // tgen
+ ee55350(); // tgen
+};
+//SIG(1 ee55350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55350 ::bar(){vfunc_called(this, "_ZN7ee553503barEv");}
+ee55350 ::~ee55350(){ note_dtor("ee55350", this);} // tgen
+ee55350 ::ee55350(){ note_ctor("ee55350", this);} // tgen
+
+static void Test_ee55350()
+{
+ extern Class_Descriptor cd_ee55350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55350, buf);
+ ee55350 *dp, &lv = *(dp=new (buf) ee55350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee55350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee55350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(32,16), "ee55350");
+ check_base_class_offset(lv, (dd5350*), ABISELECT(16,8), "ee55350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55350.e");
+ test_class_info(&lv, &cd_ee55350);
+ dp->~ee55350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55350(Test_ee55350, "ee55350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55350C1Ev();
+extern void _ZN7ee55350D1Ev();
+Name_Map name_map_ee55350[] = {
+ NSPAIR(_ZN7ee55350C1Ev),
+ NSPAIR(_ZN7ee55350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee55350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee55350[];
+extern void _ZN7ee553503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee553503barEv,_ZTv0_n24_N7ee553503barEv)();
+extern void ABISELECT(_ZThn16_N7ee553503barEv,_ZThn8_N7ee553503barEv)() __attribute__((weak));
+extern void _ZN5cc3503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee553503barEv,_ZTv0_n16_N7ee553503barEv)();
+extern void ABISELECT(_ZThn48_N7ee553503barEv,_ZThn24_N7ee553503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55350[0]),
+ (VTBL_ENTRY)&_ZN7ee553503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee553503barEv,_ZTv0_n24_N7ee553503barEv),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553503barEv,_ZTv0_n16_N7ee553503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee55350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee55350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee55350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee55350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee55350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee55350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55350[] = {
+ {&(_ZTV7ee55350[6]), 6,25},
+ {&(_ZTV7ee55350[13]), 13,25},
+ {&(_ZTV7ee55350[19]), 19,25},
+ {&(_ZTV7ee55350[24]), 24,25},
+ {&(_tg__ZTV6dd5350__7ee55350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee55350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee55350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee55350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee55350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee55350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55350[];
+extern VTBL_ENTRY _ZTV7ee55350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55350[];
+static VTBL_ENTRY alt_thunk_names177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553503barEv,_ZTv0_n16_N7ee553503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553503barEv,_ZThn24_N7ee553503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee553503barEv,_ZTv0_n24_N7ee553503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553503barEv,_ZThn8_N7ee553503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55350 = { "ee55350", // class name
+ bases_ee55350, 4,
+ &(vtc_ee55350[0]), // expected_vtbl_contents
+ &(vtt_ee55350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55350),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names177,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65350 : dd5350 {
+ int e;
+ virtual void foo(); // _ZN7ee653503fooEv
+ virtual void bar(); // _ZN7ee653503barEv
+ ~ee65350(); // tgen
+ ee65350(); // tgen
+};
+//SIG(1 ee65350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65350 ::foo(){vfunc_called(this, "_ZN7ee653503fooEv");}
+void ee65350 ::bar(){vfunc_called(this, "_ZN7ee653503barEv");}
+ee65350 ::~ee65350(){ note_dtor("ee65350", this);} // tgen
+ee65350 ::ee65350(){ note_ctor("ee65350", this);} // tgen
+
+static void Test_ee65350()
+{
+ extern Class_Descriptor cd_ee65350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65350, buf);
+ ee65350 *dp, &lv = *(dp=new (buf) ee65350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee65350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee65350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(16,12), "ee65350");
+ check_base_class_offset(lv, (dd5350*), 0, "ee65350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65350.e");
+ test_class_info(&lv, &cd_ee65350);
+ dp->~ee65350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65350(Test_ee65350, "ee65350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65350C1Ev();
+extern void _ZN7ee65350D1Ev();
+Name_Map name_map_ee65350[] = {
+ NSPAIR(_ZN7ee65350C1Ev),
+ NSPAIR(_ZN7ee65350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee65350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65350[];
+extern void _ZN7ee653503barEv();
+extern void _ZN7ee653503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee653503fooEv,_ZTv0_n20_N7ee653503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653503fooEv,_ZThn12_N7ee653503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653503barEv,_ZTv0_n16_N7ee653503barEv)();
+extern void ABISELECT(_ZThn32_N7ee653503barEv,_ZThn20_N7ee653503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65350[0]),
+ (VTBL_ENTRY)&_ZN7ee653503barEv,
+ (VTBL_ENTRY)&_ZN7ee653503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee653503fooEv,_ZTv0_n20_N7ee653503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653503barEv,_ZTv0_n16_N7ee653503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee65350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee65350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee65350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee65350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee65350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee65350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65350[] = {
+ {&(_ZTV7ee65350[5]), 5,18},
+ {&(_tg__ZTV6dd5350__7ee65350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee65350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee65350[4]), 4,5},
+ {&(_ZTV7ee65350[12]), 12,18},
+ {&(_ZTV7ee65350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee65350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee65350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee65350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65350[];
+extern VTBL_ENTRY _ZTV7ee65350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65350[];
+static VTBL_ENTRY alt_thunk_names178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn20_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653503barEv,_ZTv0_n16_N7ee653503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653503barEv,_ZThn20_N7ee653503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee653503fooEv,_ZTv0_n20_N7ee653503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653503fooEv,_ZThn12_N7ee653503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65350 = { "ee65350", // class name
+ bases_ee65350, 4,
+ &(vtc_ee65350[0]), // expected_vtbl_contents
+ &(vtt_ee65350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75350 : virtual dd5350 {
+ int e;
+ virtual void foo(); // _ZN7ee753503fooEv
+ virtual void bar(); // _ZN7ee753503barEv
+ ~ee75350(); // tgen
+ ee75350(); // tgen
+};
+//SIG(1 ee75350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75350 ::foo(){vfunc_called(this, "_ZN7ee753503fooEv");}
+void ee75350 ::bar(){vfunc_called(this, "_ZN7ee753503barEv");}
+ee75350 ::~ee75350(){ note_dtor("ee75350", this);} // tgen
+ee75350 ::ee75350(){ note_ctor("ee75350", this);} // tgen
+
+static void Test_ee75350()
+{
+ extern Class_Descriptor cd_ee75350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75350, buf);
+ ee75350 *dp, &lv = *(dp=new (buf) ee75350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee75350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee75350");
+ check_base_class_offset(lv, (cc350*)(dd5350*), ABISELECT(32,16), "ee75350");
+ check_base_class_offset(lv, (dd5350*), ABISELECT(16,8), "ee75350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75350.e");
+ test_class_info(&lv, &cd_ee75350);
+ dp->~ee75350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75350(Test_ee75350, "ee75350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75350C1Ev();
+extern void _ZN7ee75350D1Ev();
+Name_Map name_map_ee75350[] = {
+ NSPAIR(_ZN7ee75350C1Ev),
+ NSPAIR(_ZN7ee75350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd5350;
+extern VTBL_ENTRY _ZTI6dd5350[];
+extern VTBL_ENTRY _ZTV6dd5350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5350[];
+static Base_Class bases_ee75350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5350, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee75350[];
+extern void _ZN7ee753503fooEv();
+extern void _ZN7ee753503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee753503barEv,_ZTv0_n24_N7ee753503barEv)();
+extern void ABISELECT(_ZThn16_N7ee753503barEv,_ZThn8_N7ee753503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee753503fooEv,_ZTv0_n20_N7ee753503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753503fooEv,_ZThn16_N7ee753503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753503barEv,_ZTv0_n16_N7ee753503barEv)();
+extern void ABISELECT(_ZThn48_N7ee753503barEv,_ZThn24_N7ee753503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75350[0]),
+ (VTBL_ENTRY)&_ZN7ee753503fooEv,
+ (VTBL_ENTRY)&_ZN7ee753503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee753503barEv,_ZTv0_n24_N7ee753503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753503fooEv,_ZTv0_n20_N7ee753503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753503barEv,_ZTv0_n16_N7ee753503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75350[];
+extern void _ZN6dd53503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5350__7ee75350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN6dd53503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd5350__7ee75350[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv)();
+extern void ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5350__7ee75350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee75350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee75350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee75350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75350[] = {
+ {&(_ZTV7ee75350[6]), 6,26},
+ {&(_ZTV7ee75350[14]), 14,26},
+ {&(_ZTV7ee75350[20]), 20,26},
+ {&(_ZTV7ee75350[25]), 25,26},
+ {&(_tg__ZTV6dd5350__7ee75350[5]), 5,6},
+ {&(_tg__ZTV5cc350__6dd5350__7ee75350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5350__7ee75350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee75350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee75350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee75350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75350[];
+extern VTBL_ENTRY _ZTV7ee75350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75350[];
+static VTBL_ENTRY alt_thunk_names179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53503barEv,_ZTv0_n16_N6dd53503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53503barEv,_ZThn16_N6dd53503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753503barEv,_ZTv0_n16_N7ee753503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753503barEv,_ZThn24_N7ee753503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753503fooEv,_ZTv0_n20_N7ee753503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753503fooEv,_ZThn16_N7ee753503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee753503barEv,_ZTv0_n24_N7ee753503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753503barEv,_ZThn8_N7ee753503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75350 = { "ee75350", // class name
+ bases_ee75350, 4,
+ &(vtc_ee75350[0]), // expected_vtbl_contents
+ &(vtt_ee75350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75350),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names179,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6350 : cc350 {
+ int d;
+ virtual void bar(); // _ZN6dd63503barEv
+ virtual void foo(); // _ZN6dd63503fooEv
+ ~dd6350(); // tgen
+ dd6350(); // tgen
+};
+//SIG(-1 dd6350) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6350 ::bar(){vfunc_called(this, "_ZN6dd63503barEv");}
+void dd6350 ::foo(){vfunc_called(this, "_ZN6dd63503fooEv");}
+dd6350 ::~dd6350(){ note_dtor("dd6350", this);} // tgen
+dd6350 ::dd6350(){ note_ctor("dd6350", this);} // tgen
+
+static void Test_dd6350()
+{
+ extern Class_Descriptor cd_dd6350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6350, buf);
+ dd6350 *dp, &lv = *(dp=new (buf) dd6350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd6350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(16,12), "dd6350");
+ check_base_class_offset(lv, (cc350*), 0, "dd6350");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6350.d");
+ test_class_info(&lv, &cd_dd6350);
+ dp->~dd6350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6350(Test_dd6350, "dd6350", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6350C1Ev();
+extern void _ZN6dd6350D1Ev();
+Name_Map name_map_dd6350[] = {
+ NSPAIR(_ZN6dd6350C1Ev),
+ NSPAIR(_ZN6dd6350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd6350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd6350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd6350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6350[] = {
+ {&(_ZTV6dd6350[4]), 4,11},
+ {&(_tg__ZTV5cc350__6dd6350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd6350[4]), 4,5},
+ {&(_ZTV6dd6350[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd6350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static VTBL_ENTRY alt_thunk_names180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6350 = { "dd6350", // class name
+ bases_dd6350, 3,
+ &(vtc_dd6350[0]), // expected_vtbl_contents
+ &(vtt_dd6350[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6350),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06350 : dd6350 {
+ int e;
+ ~ee06350(); // tgen
+ ee06350(); // tgen
+};
+//SIG(1 ee06350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06350 ::~ee06350(){ note_dtor("ee06350", this);} // tgen
+ee06350 ::ee06350(){ note_ctor("ee06350", this);} // tgen
+
+static void Test_ee06350()
+{
+ extern Class_Descriptor cd_ee06350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06350, buf);
+ ee06350 *dp, &lv = *(dp=new (buf) ee06350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee06350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(24,16), "ee06350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), 0, "ee06350");
+ check_base_class_offset(lv, (dd6350*), 0, "ee06350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06350.e");
+ test_class_info(&lv, &cd_ee06350);
+ dp->~ee06350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06350(Test_ee06350, "ee06350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06350C1Ev();
+extern void _ZN7ee06350D1Ev();
+Name_Map name_map_ee06350[] = {
+ NSPAIR(_ZN7ee06350C1Ev),
+ NSPAIR(_ZN7ee06350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee06350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee06350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee06350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee06350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee06350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee06350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06350[] = {
+ {&(_ZTV7ee06350[4]), 4,11},
+ {&(_tg__ZTV6dd6350__7ee06350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee06350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee06350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee06350[4]), 4,5},
+ {&(_ZTV7ee06350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee06350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06350[];
+extern VTBL_ENTRY _ZTV7ee06350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06350[];
+static VTBL_ENTRY alt_thunk_names181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06350 = { "ee06350", // class name
+ bases_ee06350, 4,
+ &(vtc_ee06350[0]), // expected_vtbl_contents
+ &(vtt_ee06350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16350 : virtual dd6350 {
+ int e;
+ ~ee16350(); // tgen
+ ee16350(); // tgen
+};
+//SIG(1 ee16350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16350 ::~ee16350(){ note_dtor("ee16350", this);} // tgen
+ee16350 ::ee16350(){ note_ctor("ee16350", this);} // tgen
+
+static void Test_ee16350()
+{
+ extern Class_Descriptor cd_ee16350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16350, buf);
+ ee16350 *dp, &lv = *(dp=new (buf) ee16350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee16350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(32,20), "ee16350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), ABISELECT(16,8), "ee16350");
+ check_base_class_offset(lv, (dd6350*), ABISELECT(16,8), "ee16350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16350.e");
+ test_class_info(&lv, &cd_ee16350);
+ dp->~ee16350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16350(Test_ee16350, "ee16350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16350C1Ev();
+extern void _ZN7ee16350D1Ev();
+Name_Map name_map_ee16350[] = {
+ NSPAIR(_ZN7ee16350C1Ev),
+ NSPAIR(_ZN7ee16350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee16350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee16350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16350[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee16350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee16350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee16350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee16350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee16350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16350[] = {
+ {&(_ZTV7ee16350[5]), 5,18},
+ {&(_ZTV7ee16350[11]), 11,18},
+ {&(_ZTV7ee16350[17]), 17,18},
+ {&(_tg__ZTV6dd6350__7ee16350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee16350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee16350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee16350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee16350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16350[];
+extern VTBL_ENTRY _ZTV7ee16350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16350[];
+static VTBL_ENTRY alt_thunk_names182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16350 = { "ee16350", // class name
+ bases_ee16350, 4,
+ &(vtc_ee16350[0]), // expected_vtbl_contents
+ &(vtt_ee16350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26350 : dd6350 {
+ int e;
+ virtual void foo(); // _ZN7ee263503fooEv
+ ~ee26350(); // tgen
+ ee26350(); // tgen
+};
+//SIG(1 ee26350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26350 ::foo(){vfunc_called(this, "_ZN7ee263503fooEv");}
+ee26350 ::~ee26350(){ note_dtor("ee26350", this);} // tgen
+ee26350 ::ee26350(){ note_ctor("ee26350", this);} // tgen
+
+static void Test_ee26350()
+{
+ extern Class_Descriptor cd_ee26350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26350, buf);
+ ee26350 *dp, &lv = *(dp=new (buf) ee26350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee26350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(24,16), "ee26350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), 0, "ee26350");
+ check_base_class_offset(lv, (dd6350*), 0, "ee26350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26350.e");
+ test_class_info(&lv, &cd_ee26350);
+ dp->~ee26350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26350(Test_ee26350, "ee26350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26350C1Ev();
+extern void _ZN7ee26350D1Ev();
+Name_Map name_map_ee26350[] = {
+ NSPAIR(_ZN7ee26350C1Ev),
+ NSPAIR(_ZN7ee26350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee26350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26350[];
+extern void _ZN7ee263503fooEv();
+extern void _ZN6dd63503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26350[0]),
+ (VTBL_ENTRY)&_ZN7ee263503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee26350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee26350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee26350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee26350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee26350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26350[] = {
+ {&(_ZTV7ee26350[4]), 4,11},
+ {&(_tg__ZTV6dd6350__7ee26350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee26350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee26350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee26350[4]), 4,5},
+ {&(_ZTV7ee26350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee26350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26350[];
+extern VTBL_ENTRY _ZTV7ee26350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26350[];
+static VTBL_ENTRY alt_thunk_names183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26350 = { "ee26350", // class name
+ bases_ee26350, 4,
+ &(vtc_ee26350[0]), // expected_vtbl_contents
+ &(vtt_ee26350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36350 : virtual dd6350 {
+ int e;
+ virtual void foo(); // _ZN7ee363503fooEv
+ ~ee36350(); // tgen
+ ee36350(); // tgen
+};
+//SIG(1 ee36350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36350 ::foo(){vfunc_called(this, "_ZN7ee363503fooEv");}
+ee36350 ::~ee36350(){ note_dtor("ee36350", this);} // tgen
+ee36350 ::ee36350(){ note_ctor("ee36350", this);} // tgen
+
+static void Test_ee36350()
+{
+ extern Class_Descriptor cd_ee36350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36350, buf);
+ ee36350 *dp, &lv = *(dp=new (buf) ee36350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee36350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(32,20), "ee36350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), ABISELECT(16,8), "ee36350");
+ check_base_class_offset(lv, (dd6350*), ABISELECT(16,8), "ee36350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36350.e");
+ test_class_info(&lv, &cd_ee36350);
+ dp->~ee36350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36350(Test_ee36350, "ee36350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36350C1Ev();
+extern void _ZN7ee36350D1Ev();
+Name_Map name_map_ee36350[] = {
+ NSPAIR(_ZN7ee36350C1Ev),
+ NSPAIR(_ZN7ee36350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee36350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee36350[];
+extern void _ZN7ee363503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee363503fooEv,_ZTv0_n20_N7ee363503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363503fooEv,_ZThn8_N7ee363503fooEv)() __attribute__((weak));
+extern void _ZN6dd63503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36350[0]),
+ (VTBL_ENTRY)&_ZN7ee363503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee363503fooEv,_ZTv0_n20_N7ee363503fooEv),
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee36350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee36350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee36350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee36350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee36350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36350[] = {
+ {&(_ZTV7ee36350[5]), 5,19},
+ {&(_ZTV7ee36350[12]), 12,19},
+ {&(_ZTV7ee36350[18]), 18,19},
+ {&(_tg__ZTV6dd6350__7ee36350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee36350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee36350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee36350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee36350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36350[];
+extern VTBL_ENTRY _ZTV7ee36350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36350[];
+static VTBL_ENTRY alt_thunk_names184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee363503fooEv,_ZTv0_n20_N7ee363503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363503fooEv,_ZThn8_N7ee363503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36350 = { "ee36350", // class name
+ bases_ee36350, 4,
+ &(vtc_ee36350[0]), // expected_vtbl_contents
+ &(vtt_ee36350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36350),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46350 : dd6350 {
+ int e;
+ virtual void bar(); // _ZN7ee463503barEv
+ ~ee46350(); // tgen
+ ee46350(); // tgen
+};
+//SIG(1 ee46350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46350 ::bar(){vfunc_called(this, "_ZN7ee463503barEv");}
+ee46350 ::~ee46350(){ note_dtor("ee46350", this);} // tgen
+ee46350 ::ee46350(){ note_ctor("ee46350", this);} // tgen
+
+static void Test_ee46350()
+{
+ extern Class_Descriptor cd_ee46350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46350, buf);
+ ee46350 *dp, &lv = *(dp=new (buf) ee46350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee46350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(24,16), "ee46350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), 0, "ee46350");
+ check_base_class_offset(lv, (dd6350*), 0, "ee46350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46350.e");
+ test_class_info(&lv, &cd_ee46350);
+ dp->~ee46350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46350(Test_ee46350, "ee46350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46350C1Ev();
+extern void _ZN7ee46350D1Ev();
+Name_Map name_map_ee46350[] = {
+ NSPAIR(_ZN7ee46350C1Ev),
+ NSPAIR(_ZN7ee46350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee46350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN7ee463503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee463503barEv,_ZTv0_n16_N7ee463503barEv)();
+extern void ABISELECT(_ZThn24_N7ee463503barEv,_ZThn16_N7ee463503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN7ee463503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463503barEv,_ZTv0_n16_N7ee463503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee46350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee46350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee46350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee46350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee46350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46350[] = {
+ {&(_ZTV7ee46350[4]), 4,11},
+ {&(_tg__ZTV6dd6350__7ee46350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee46350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee46350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee46350[4]), 4,5},
+ {&(_ZTV7ee46350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee46350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46350[];
+extern VTBL_ENTRY _ZTV7ee46350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46350[];
+static VTBL_ENTRY alt_thunk_names185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463503barEv,_ZTv0_n16_N7ee463503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463503barEv,_ZThn16_N7ee463503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46350 = { "ee46350", // class name
+ bases_ee46350, 4,
+ &(vtc_ee46350[0]), // expected_vtbl_contents
+ &(vtt_ee46350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56350 : virtual dd6350 {
+ int e;
+ virtual void bar(); // _ZN7ee563503barEv
+ ~ee56350(); // tgen
+ ee56350(); // tgen
+};
+//SIG(1 ee56350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56350 ::bar(){vfunc_called(this, "_ZN7ee563503barEv");}
+ee56350 ::~ee56350(){ note_dtor("ee56350", this);} // tgen
+ee56350 ::ee56350(){ note_ctor("ee56350", this);} // tgen
+
+static void Test_ee56350()
+{
+ extern Class_Descriptor cd_ee56350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56350, buf);
+ ee56350 *dp, &lv = *(dp=new (buf) ee56350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee56350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(32,20), "ee56350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), ABISELECT(16,8), "ee56350");
+ check_base_class_offset(lv, (dd6350*), ABISELECT(16,8), "ee56350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56350.e");
+ test_class_info(&lv, &cd_ee56350);
+ dp->~ee56350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56350(Test_ee56350, "ee56350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56350C1Ev();
+extern void _ZN7ee56350D1Ev();
+Name_Map name_map_ee56350[] = {
+ NSPAIR(_ZN7ee56350C1Ev),
+ NSPAIR(_ZN7ee56350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee56350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee56350[];
+extern void _ZN7ee563503barEv();
+extern void _ZN6dd63503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee563503barEv,_ZTv0_n24_N7ee563503barEv)();
+extern void ABISELECT(_ZThn16_N7ee563503barEv,_ZThn8_N7ee563503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563503barEv,_ZTv0_n16_N7ee563503barEv)();
+extern void ABISELECT(_ZThn32_N7ee563503barEv,_ZThn20_N7ee563503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56350[0]),
+ (VTBL_ENTRY)&_ZN7ee563503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee563503barEv,_ZTv0_n24_N7ee563503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563503barEv,_ZTv0_n16_N7ee563503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee56350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee56350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee56350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee56350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee56350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56350[] = {
+ {&(_ZTV7ee56350[5]), 5,19},
+ {&(_ZTV7ee56350[12]), 12,19},
+ {&(_ZTV7ee56350[18]), 18,19},
+ {&(_tg__ZTV6dd6350__7ee56350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee56350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee56350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee56350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee56350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56350[];
+extern VTBL_ENTRY _ZTV7ee56350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56350[];
+static VTBL_ENTRY alt_thunk_names186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563503barEv,_ZTv0_n16_N7ee563503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563503barEv,_ZThn20_N7ee563503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee563503barEv,_ZTv0_n24_N7ee563503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563503barEv,_ZThn8_N7ee563503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56350 = { "ee56350", // class name
+ bases_ee56350, 4,
+ &(vtc_ee56350[0]), // expected_vtbl_contents
+ &(vtt_ee56350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56350),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66350 : dd6350 {
+ int e;
+ virtual void foo(); // _ZN7ee663503fooEv
+ virtual void bar(); // _ZN7ee663503barEv
+ ~ee66350(); // tgen
+ ee66350(); // tgen
+};
+//SIG(1 ee66350) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66350 ::foo(){vfunc_called(this, "_ZN7ee663503fooEv");}
+void ee66350 ::bar(){vfunc_called(this, "_ZN7ee663503barEv");}
+ee66350 ::~ee66350(){ note_dtor("ee66350", this);} // tgen
+ee66350 ::ee66350(){ note_ctor("ee66350", this);} // tgen
+
+static void Test_ee66350()
+{
+ extern Class_Descriptor cd_ee66350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66350, buf);
+ ee66350 *dp, &lv = *(dp=new (buf) ee66350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee66350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(24,16), "ee66350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), 0, "ee66350");
+ check_base_class_offset(lv, (dd6350*), 0, "ee66350");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66350.e");
+ test_class_info(&lv, &cd_ee66350);
+ dp->~ee66350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66350(Test_ee66350, "ee66350", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66350C1Ev();
+extern void _ZN7ee66350D1Ev();
+Name_Map name_map_ee66350[] = {
+ NSPAIR(_ZN7ee66350C1Ev),
+ NSPAIR(_ZN7ee66350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee66350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66350[];
+extern void _ZN7ee663503fooEv();
+extern void _ZN7ee663503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee663503barEv,_ZTv0_n16_N7ee663503barEv)();
+extern void ABISELECT(_ZThn24_N7ee663503barEv,_ZThn16_N7ee663503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66350[0]),
+ (VTBL_ENTRY)&_ZN7ee663503fooEv,
+ (VTBL_ENTRY)&_ZN7ee663503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663503barEv,_ZTv0_n16_N7ee663503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee66350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee66350[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee66350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee66350[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee66350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66350[] = {
+ {&(_ZTV7ee66350[4]), 4,11},
+ {&(_tg__ZTV6dd6350__7ee66350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee66350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee66350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee66350[4]), 4,5},
+ {&(_ZTV7ee66350[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee66350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66350[];
+extern VTBL_ENTRY _ZTV7ee66350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66350[];
+static VTBL_ENTRY alt_thunk_names187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63503barEv,_ZThn16_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663503barEv,_ZTv0_n16_N7ee663503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663503barEv,_ZThn16_N7ee663503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66350 = { "ee66350", // class name
+ bases_ee66350, 4,
+ &(vtc_ee66350[0]), // expected_vtbl_contents
+ &(vtt_ee66350[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66350),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66350),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76350 : virtual dd6350 {
+ int e;
+ virtual void foo(); // _ZN7ee763503fooEv
+ virtual void bar(); // _ZN7ee763503barEv
+ ~ee76350(); // tgen
+ ee76350(); // tgen
+};
+//SIG(1 ee76350) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76350 ::foo(){vfunc_called(this, "_ZN7ee763503fooEv");}
+void ee76350 ::bar(){vfunc_called(this, "_ZN7ee763503barEv");}
+ee76350 ::~ee76350(){ note_dtor("ee76350", this);} // tgen
+ee76350 ::ee76350(){ note_ctor("ee76350", this);} // tgen
+
+static void Test_ee76350()
+{
+ extern Class_Descriptor cd_ee76350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76350, buf);
+ ee76350 *dp, &lv = *(dp=new (buf) ee76350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee76350");
+ check_base_class_offset(lv, (bb50*)(cc350*)(dd6350*), ABISELECT(32,20), "ee76350");
+ check_base_class_offset(lv, (cc350*)(dd6350*), ABISELECT(16,8), "ee76350");
+ check_base_class_offset(lv, (dd6350*), ABISELECT(16,8), "ee76350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76350.e");
+ test_class_info(&lv, &cd_ee76350);
+ dp->~ee76350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76350(Test_ee76350, "ee76350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76350C1Ev();
+extern void _ZN7ee76350D1Ev();
+Name_Map name_map_ee76350[] = {
+ NSPAIR(_ZN7ee76350C1Ev),
+ NSPAIR(_ZN7ee76350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd6350;
+extern VTBL_ENTRY _ZTI6dd6350[];
+extern VTBL_ENTRY _ZTV6dd6350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6350[];
+static Base_Class bases_ee76350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee76350[];
+extern void _ZN7ee763503fooEv();
+extern void _ZN7ee763503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee763503fooEv,_ZTv0_n20_N7ee763503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763503fooEv,_ZThn8_N7ee763503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee763503barEv,_ZTv0_n24_N7ee763503barEv)();
+extern void ABISELECT(_ZThn16_N7ee763503barEv,_ZThn8_N7ee763503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763503barEv,_ZTv0_n16_N7ee763503barEv)();
+extern void ABISELECT(_ZThn32_N7ee763503barEv,_ZThn20_N7ee763503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76350[0]),
+ (VTBL_ENTRY)&_ZN7ee763503fooEv,
+ (VTBL_ENTRY)&_ZN7ee763503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763503fooEv,_ZTv0_n20_N7ee763503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee763503barEv,_ZTv0_n24_N7ee763503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763503barEv,_ZTv0_n16_N7ee763503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76350[];
+extern void _ZN6dd63503fooEv();
+extern void _ZN6dd63503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6350__7ee76350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&_ZN6dd63503fooEv,
+ (VTBL_ENTRY)&_ZN6dd63503barEv,
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3506dd6350__7ee76350[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc3506dd6350__7ee76350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv)();
+extern void ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6350__7ee76350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee76350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76350[] = {
+ {&(_ZTV7ee76350[5]), 5,20},
+ {&(_ZTV7ee76350[13]), 13,20},
+ {&(_ZTV7ee76350[19]), 19,20},
+ {&(_tg__ZTV6dd6350__7ee76350[4]), 4,6},
+ {&(_tg__ZTV5cc3506dd6350__7ee76350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc3506dd6350__7ee76350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6350__7ee76350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee76350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76350[];
+extern VTBL_ENTRY _ZTV7ee76350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76350[];
+static VTBL_ENTRY alt_thunk_names188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63503barEv,_ZTv0_n16_N6dd63503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63503barEv,_ZThn12_N6dd63503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763503barEv,_ZTv0_n16_N7ee763503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763503barEv,_ZThn20_N7ee763503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee763503barEv,_ZTv0_n24_N7ee763503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763503barEv,_ZThn8_N7ee763503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763503fooEv,_ZTv0_n20_N7ee763503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763503fooEv,_ZThn8_N7ee763503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76350 = { "ee76350", // class name
+ bases_ee76350, 4,
+ &(vtc_ee76350[0]), // expected_vtbl_contents
+ &(vtt_ee76350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76350),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76350),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7350 : virtual cc350 {
+ int d;
+ virtual void bar(); // _ZN6dd73503barEv
+ virtual void foo(); // _ZN6dd73503fooEv
+ ~dd7350(); // tgen
+ dd7350(); // tgen
+};
+//SIG(-1 dd7350) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7350 ::bar(){vfunc_called(this, "_ZN6dd73503barEv");}
+void dd7350 ::foo(){vfunc_called(this, "_ZN6dd73503fooEv");}
+dd7350 ::~dd7350(){ note_dtor("dd7350", this);} // tgen
+dd7350 ::dd7350(){ note_ctor("dd7350", this);} // tgen
+
+static void Test_dd7350()
+{
+ extern Class_Descriptor cd_dd7350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7350, buf);
+ dd7350 *dp, &lv = *(dp=new (buf) dd7350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd7350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,16), "dd7350");
+ check_base_class_offset(lv, (cc350*), ABISELECT(16,8), "dd7350");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7350.d");
+ test_class_info(&lv, &cd_dd7350);
+ dp->~dd7350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7350(Test_dd7350, "dd7350", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7350C1Ev();
+extern void _ZN6dd7350D1Ev();
+Name_Map name_map_dd7350[] = {
+ NSPAIR(_ZN6dd7350C1Ev),
+ NSPAIR(_ZN6dd7350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+static Base_Class bases_dd7350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__6dd7350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7350[] = {
+ {&(_ZTV6dd7350[5]), 5,18},
+ {&(_ZTV6dd7350[12]), 12,18},
+ {&(_ZTV6dd7350[17]), 17,18},
+ {&(_tg__ZTV5cc350__6dd7350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__6dd7350[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd7350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static VTBL_ENTRY alt_thunk_names189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7350 = { "dd7350", // class name
+ bases_dd7350, 3,
+ &(vtc_dd7350[0]), // expected_vtbl_contents
+ &(vtt_dd7350[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7350),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07350 : dd7350 {
+ int e;
+ ~ee07350(); // tgen
+ ee07350(); // tgen
+};
+//SIG(1 ee07350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07350 ::~ee07350(){ note_dtor("ee07350", this);} // tgen
+ee07350 ::ee07350(){ note_ctor("ee07350", this);} // tgen
+
+static void Test_ee07350()
+{
+ extern Class_Descriptor cd_ee07350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07350, buf);
+ ee07350 *dp, &lv = *(dp=new (buf) ee07350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee07350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee07350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(16,12), "ee07350");
+ check_base_class_offset(lv, (dd7350*), 0, "ee07350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07350.e");
+ test_class_info(&lv, &cd_ee07350);
+ dp->~ee07350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07350(Test_ee07350, "ee07350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07350C1Ev();
+extern void _ZN7ee07350D1Ev();
+Name_Map name_map_ee07350[] = {
+ NSPAIR(_ZN7ee07350C1Ev),
+ NSPAIR(_ZN7ee07350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee07350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee07350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee07350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee07350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee07350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee07350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee07350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07350[] = {
+ {&(_ZTV7ee07350[5]), 5,18},
+ {&(_tg__ZTV6dd7350__7ee07350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee07350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee07350[4]), 4,5},
+ {&(_ZTV7ee07350[12]), 12,18},
+ {&(_ZTV7ee07350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee07350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee07350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee07350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07350[];
+extern VTBL_ENTRY _ZTV7ee07350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07350[];
+static VTBL_ENTRY alt_thunk_names190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07350 = { "ee07350", // class name
+ bases_ee07350, 4,
+ &(vtc_ee07350[0]), // expected_vtbl_contents
+ &(vtt_ee07350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17350 : virtual dd7350 {
+ int e;
+ ~ee17350(); // tgen
+ ee17350(); // tgen
+};
+//SIG(1 ee17350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17350 ::~ee17350(){ note_dtor("ee17350", this);} // tgen
+ee17350 ::ee17350(){ note_ctor("ee17350", this);} // tgen
+
+static void Test_ee17350()
+{
+ extern Class_Descriptor cd_ee17350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17350, buf);
+ ee17350 *dp, &lv = *(dp=new (buf) ee17350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee17350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee17350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(32,16), "ee17350");
+ check_base_class_offset(lv, (dd7350*), ABISELECT(16,8), "ee17350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17350.e");
+ test_class_info(&lv, &cd_ee17350);
+ dp->~ee17350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17350(Test_ee17350, "ee17350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17350C1Ev();
+extern void _ZN7ee17350D1Ev();
+Name_Map name_map_ee17350[] = {
+ NSPAIR(_ZN7ee17350C1Ev),
+ NSPAIR(_ZN7ee17350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee17350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee17350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17350[0]),
+ 0,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee17350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee17350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee17350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee17350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee17350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee17350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17350[] = {
+ {&(_ZTV7ee17350[6]), 6,26},
+ {&(_ZTV7ee17350[13]), 13,26},
+ {&(_ZTV7ee17350[20]), 20,26},
+ {&(_ZTV7ee17350[25]), 25,26},
+ {&(_tg__ZTV6dd7350__7ee17350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee17350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee17350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee17350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee17350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee17350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17350[];
+extern VTBL_ENTRY _ZTV7ee17350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17350[];
+static VTBL_ENTRY alt_thunk_names191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17350 = { "ee17350", // class name
+ bases_ee17350, 4,
+ &(vtc_ee17350[0]), // expected_vtbl_contents
+ &(vtt_ee17350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17350),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27350 : dd7350 {
+ int e;
+ virtual void foo(); // _ZN7ee273503fooEv
+ ~ee27350(); // tgen
+ ee27350(); // tgen
+};
+//SIG(1 ee27350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27350 ::foo(){vfunc_called(this, "_ZN7ee273503fooEv");}
+ee27350 ::~ee27350(){ note_dtor("ee27350", this);} // tgen
+ee27350 ::ee27350(){ note_ctor("ee27350", this);} // tgen
+
+static void Test_ee27350()
+{
+ extern Class_Descriptor cd_ee27350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27350, buf);
+ ee27350 *dp, &lv = *(dp=new (buf) ee27350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee27350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee27350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(16,12), "ee27350");
+ check_base_class_offset(lv, (dd7350*), 0, "ee27350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27350.e");
+ test_class_info(&lv, &cd_ee27350);
+ dp->~ee27350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27350(Test_ee27350, "ee27350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27350C1Ev();
+extern void _ZN7ee27350D1Ev();
+Name_Map name_map_ee27350[] = {
+ NSPAIR(_ZN7ee27350C1Ev),
+ NSPAIR(_ZN7ee27350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee27350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN7ee273503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee273503fooEv,_ZTv0_n20_N7ee273503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273503fooEv,_ZThn12_N7ee273503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN7ee273503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee273503fooEv,_ZTv0_n20_N7ee273503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee27350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee27350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee27350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee27350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee27350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee27350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27350[] = {
+ {&(_ZTV7ee27350[5]), 5,18},
+ {&(_tg__ZTV6dd7350__7ee27350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee27350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee27350[4]), 4,5},
+ {&(_ZTV7ee27350[12]), 12,18},
+ {&(_ZTV7ee27350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee27350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee27350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee27350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27350[];
+extern VTBL_ENTRY _ZTV7ee27350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27350[];
+static VTBL_ENTRY alt_thunk_names192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee273503fooEv,_ZTv0_n20_N7ee273503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273503fooEv,_ZThn12_N7ee273503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27350 = { "ee27350", // class name
+ bases_ee27350, 4,
+ &(vtc_ee27350[0]), // expected_vtbl_contents
+ &(vtt_ee27350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37350 : virtual dd7350 {
+ int e;
+ virtual void foo(); // _ZN7ee373503fooEv
+ ~ee37350(); // tgen
+ ee37350(); // tgen
+};
+//SIG(1 ee37350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37350 ::foo(){vfunc_called(this, "_ZN7ee373503fooEv");}
+ee37350 ::~ee37350(){ note_dtor("ee37350", this);} // tgen
+ee37350 ::ee37350(){ note_ctor("ee37350", this);} // tgen
+
+static void Test_ee37350()
+{
+ extern Class_Descriptor cd_ee37350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37350, buf);
+ ee37350 *dp, &lv = *(dp=new (buf) ee37350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee37350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee37350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(32,16), "ee37350");
+ check_base_class_offset(lv, (dd7350*), ABISELECT(16,8), "ee37350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37350.e");
+ test_class_info(&lv, &cd_ee37350);
+ dp->~ee37350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37350(Test_ee37350, "ee37350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37350C1Ev();
+extern void _ZN7ee37350D1Ev();
+Name_Map name_map_ee37350[] = {
+ NSPAIR(_ZN7ee37350C1Ev),
+ NSPAIR(_ZN7ee37350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee37350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee37350[];
+extern void _ZN7ee373503fooEv();
+extern void _ZN6dd73503barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee373503fooEv,_ZTv0_n28_N7ee373503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373503fooEv,_ZThn8_N7ee373503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee373503fooEv,_ZTv0_n20_N7ee373503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373503fooEv,_ZThn16_N7ee373503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37350[0]),
+ (VTBL_ENTRY)&_ZN7ee373503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee373503fooEv,_ZTv0_n28_N7ee373503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee373503fooEv,_ZTv0_n20_N7ee373503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee37350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee37350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee37350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee37350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee37350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee37350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37350[] = {
+ {&(_ZTV7ee37350[6]), 6,27},
+ {&(_ZTV7ee37350[14]), 14,27},
+ {&(_ZTV7ee37350[21]), 21,27},
+ {&(_ZTV7ee37350[26]), 26,27},
+ {&(_tg__ZTV6dd7350__7ee37350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee37350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee37350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee37350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee37350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee37350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37350[];
+extern VTBL_ENTRY _ZTV7ee37350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37350[];
+static VTBL_ENTRY alt_thunk_names193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee373503fooEv,_ZTv0_n20_N7ee373503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373503fooEv,_ZThn16_N7ee373503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee373503fooEv,_ZTv0_n28_N7ee373503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373503fooEv,_ZThn8_N7ee373503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37350 = { "ee37350", // class name
+ bases_ee37350, 4,
+ &(vtc_ee37350[0]), // expected_vtbl_contents
+ &(vtt_ee37350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37350),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47350 : dd7350 {
+ int e;
+ virtual void bar(); // _ZN7ee473503barEv
+ ~ee47350(); // tgen
+ ee47350(); // tgen
+};
+//SIG(1 ee47350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47350 ::bar(){vfunc_called(this, "_ZN7ee473503barEv");}
+ee47350 ::~ee47350(){ note_dtor("ee47350", this);} // tgen
+ee47350 ::ee47350(){ note_ctor("ee47350", this);} // tgen
+
+static void Test_ee47350()
+{
+ extern Class_Descriptor cd_ee47350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47350, buf);
+ ee47350 *dp, &lv = *(dp=new (buf) ee47350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee47350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee47350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(16,12), "ee47350");
+ check_base_class_offset(lv, (dd7350*), 0, "ee47350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47350.e");
+ test_class_info(&lv, &cd_ee47350);
+ dp->~ee47350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47350(Test_ee47350, "ee47350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47350C1Ev();
+extern void _ZN7ee47350D1Ev();
+Name_Map name_map_ee47350[] = {
+ NSPAIR(_ZN7ee47350C1Ev),
+ NSPAIR(_ZN7ee47350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee47350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47350[];
+extern void _ZN7ee473503barEv();
+extern void _ZN6dd73503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473503barEv,_ZTv0_n16_N7ee473503barEv)();
+extern void ABISELECT(_ZThn32_N7ee473503barEv,_ZThn20_N7ee473503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47350[0]),
+ (VTBL_ENTRY)&_ZN7ee473503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473503barEv,_ZTv0_n16_N7ee473503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee47350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee47350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee47350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee47350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee47350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee47350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47350[] = {
+ {&(_ZTV7ee47350[5]), 5,18},
+ {&(_tg__ZTV6dd7350__7ee47350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee47350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee47350[4]), 4,5},
+ {&(_ZTV7ee47350[12]), 12,18},
+ {&(_ZTV7ee47350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee47350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee47350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee47350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47350[];
+extern VTBL_ENTRY _ZTV7ee47350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47350[];
+static VTBL_ENTRY alt_thunk_names194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473503barEv,_ZTv0_n16_N7ee473503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473503barEv,_ZThn20_N7ee473503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47350 = { "ee47350", // class name
+ bases_ee47350, 4,
+ &(vtc_ee47350[0]), // expected_vtbl_contents
+ &(vtt_ee47350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57350 : virtual dd7350 {
+ int e;
+ virtual void bar(); // _ZN7ee573503barEv
+ ~ee57350(); // tgen
+ ee57350(); // tgen
+};
+//SIG(1 ee57350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57350 ::bar(){vfunc_called(this, "_ZN7ee573503barEv");}
+ee57350 ::~ee57350(){ note_dtor("ee57350", this);} // tgen
+ee57350 ::ee57350(){ note_ctor("ee57350", this);} // tgen
+
+static void Test_ee57350()
+{
+ extern Class_Descriptor cd_ee57350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57350, buf);
+ ee57350 *dp, &lv = *(dp=new (buf) ee57350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee57350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee57350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(32,16), "ee57350");
+ check_base_class_offset(lv, (dd7350*), ABISELECT(16,8), "ee57350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57350.e");
+ test_class_info(&lv, &cd_ee57350);
+ dp->~ee57350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57350(Test_ee57350, "ee57350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57350C1Ev();
+extern void _ZN7ee57350D1Ev();
+Name_Map name_map_ee57350[] = {
+ NSPAIR(_ZN7ee57350C1Ev),
+ NSPAIR(_ZN7ee57350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee57350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee57350[];
+extern void _ZN7ee573503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee573503barEv,_ZTv0_n24_N7ee573503barEv)();
+extern void ABISELECT(_ZThn16_N7ee573503barEv,_ZThn8_N7ee573503barEv)() __attribute__((weak));
+extern void _ZN6dd73503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573503barEv,_ZTv0_n16_N7ee573503barEv)();
+extern void ABISELECT(_ZThn48_N7ee573503barEv,_ZThn24_N7ee573503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57350[0]),
+ (VTBL_ENTRY)&_ZN7ee573503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee573503barEv,_ZTv0_n24_N7ee573503barEv),
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573503barEv,_ZTv0_n16_N7ee573503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee57350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee57350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee57350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee57350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee57350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee57350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57350[] = {
+ {&(_ZTV7ee57350[6]), 6,27},
+ {&(_ZTV7ee57350[14]), 14,27},
+ {&(_ZTV7ee57350[21]), 21,27},
+ {&(_ZTV7ee57350[26]), 26,27},
+ {&(_tg__ZTV6dd7350__7ee57350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee57350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee57350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee57350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee57350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee57350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57350[];
+extern VTBL_ENTRY _ZTV7ee57350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57350[];
+static VTBL_ENTRY alt_thunk_names195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573503barEv,_ZTv0_n16_N7ee573503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573503barEv,_ZThn24_N7ee573503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee573503barEv,_ZTv0_n24_N7ee573503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573503barEv,_ZThn8_N7ee573503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57350 = { "ee57350", // class name
+ bases_ee57350, 4,
+ &(vtc_ee57350[0]), // expected_vtbl_contents
+ &(vtt_ee57350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57350),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67350 : dd7350 {
+ int e;
+ virtual void foo(); // _ZN7ee673503fooEv
+ virtual void bar(); // _ZN7ee673503barEv
+ ~ee67350(); // tgen
+ ee67350(); // tgen
+};
+//SIG(1 ee67350) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67350 ::foo(){vfunc_called(this, "_ZN7ee673503fooEv");}
+void ee67350 ::bar(){vfunc_called(this, "_ZN7ee673503barEv");}
+ee67350 ::~ee67350(){ note_dtor("ee67350", this);} // tgen
+ee67350 ::ee67350(){ note_ctor("ee67350", this);} // tgen
+
+static void Test_ee67350()
+{
+ extern Class_Descriptor cd_ee67350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67350, buf);
+ ee67350 *dp, &lv = *(dp=new (buf) ee67350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee67350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(32,20), "ee67350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(16,12), "ee67350");
+ check_base_class_offset(lv, (dd7350*), 0, "ee67350");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67350.e");
+ test_class_info(&lv, &cd_ee67350);
+ dp->~ee67350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67350(Test_ee67350, "ee67350", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67350C1Ev();
+extern void _ZN7ee67350D1Ev();
+Name_Map name_map_ee67350[] = {
+ NSPAIR(_ZN7ee67350C1Ev),
+ NSPAIR(_ZN7ee67350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee67350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67350[];
+extern void _ZN7ee673503barEv();
+extern void _ZN7ee673503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee673503fooEv,_ZTv0_n20_N7ee673503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673503fooEv,_ZThn12_N7ee673503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673503barEv,_ZTv0_n16_N7ee673503barEv)();
+extern void ABISELECT(_ZThn32_N7ee673503barEv,_ZThn20_N7ee673503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67350[0]),
+ (VTBL_ENTRY)&_ZN7ee673503barEv,
+ (VTBL_ENTRY)&_ZN7ee673503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee673503fooEv,_ZTv0_n20_N7ee673503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673503barEv,_ZTv0_n16_N7ee673503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee67350[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee67350[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee67350[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee67350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee67350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee67350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67350[] = {
+ {&(_ZTV7ee67350[5]), 5,18},
+ {&(_tg__ZTV6dd7350__7ee67350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee67350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee67350[4]), 4,5},
+ {&(_ZTV7ee67350[12]), 12,18},
+ {&(_ZTV7ee67350[17]), 17,18},
+ {&(_tg__ZTV5cc350__7ee67350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee67350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee67350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67350[];
+extern VTBL_ENTRY _ZTV7ee67350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67350[];
+static VTBL_ENTRY alt_thunk_names196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn20_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn12_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673503barEv,_ZTv0_n16_N7ee673503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673503barEv,_ZThn20_N7ee673503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee673503fooEv,_ZTv0_n20_N7ee673503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673503fooEv,_ZThn12_N7ee673503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67350 = { "ee67350", // class name
+ bases_ee67350, 4,
+ &(vtc_ee67350[0]), // expected_vtbl_contents
+ &(vtt_ee67350[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67350),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67350),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67350),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77350 : virtual dd7350 {
+ int e;
+ virtual void foo(); // _ZN7ee773503fooEv
+ virtual void bar(); // _ZN7ee773503barEv
+ ~ee77350(); // tgen
+ ee77350(); // tgen
+};
+//SIG(1 ee77350) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77350 ::foo(){vfunc_called(this, "_ZN7ee773503fooEv");}
+void ee77350 ::bar(){vfunc_called(this, "_ZN7ee773503barEv");}
+ee77350 ::~ee77350(){ note_dtor("ee77350", this);} // tgen
+ee77350 ::ee77350(){ note_ctor("ee77350", this);} // tgen
+
+static void Test_ee77350()
+{
+ extern Class_Descriptor cd_ee77350;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77350, buf);
+ ee77350 *dp, &lv = *(dp=new (buf) ee77350());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77350)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77350)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee77350");
+ check_base_class_offset(lv, (bb50*)(cc350*), ABISELECT(48,24), "ee77350");
+ check_base_class_offset(lv, (cc350*)(dd7350*), ABISELECT(32,16), "ee77350");
+ check_base_class_offset(lv, (dd7350*), ABISELECT(16,8), "ee77350");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77350.e");
+ test_class_info(&lv, &cd_ee77350);
+ dp->~ee77350();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77350(Test_ee77350, "ee77350", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77350C1Ev();
+extern void _ZN7ee77350D1Ev();
+Name_Map name_map_ee77350[] = {
+ NSPAIR(_ZN7ee77350C1Ev),
+ NSPAIR(_ZN7ee77350D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc350;
+extern VTBL_ENTRY _ZTI5cc350[];
+extern VTBL_ENTRY _ZTV5cc350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc350[];
+extern Class_Descriptor cd_dd7350;
+extern VTBL_ENTRY _ZTI6dd7350[];
+extern VTBL_ENTRY _ZTV6dd7350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7350[];
+static Base_Class bases_ee77350[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc350, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7350, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee77350[];
+extern void _ZN7ee773503fooEv();
+extern void _ZN7ee773503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee773503barEv,_ZTv0_n24_N7ee773503barEv)();
+extern void ABISELECT(_ZThn16_N7ee773503barEv,_ZThn8_N7ee773503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee773503fooEv,_ZTv0_n28_N7ee773503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773503fooEv,_ZThn8_N7ee773503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee773503fooEv,_ZTv0_n20_N7ee773503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773503fooEv,_ZThn16_N7ee773503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773503barEv,_ZTv0_n16_N7ee773503barEv)();
+extern void ABISELECT(_ZThn48_N7ee773503barEv,_ZThn24_N7ee773503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77350[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77350[0]),
+ (VTBL_ENTRY)&_ZN7ee773503fooEv,
+ (VTBL_ENTRY)&_ZN7ee773503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773503barEv,_ZTv0_n24_N7ee773503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee773503fooEv,_ZTv0_n28_N7ee773503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773503fooEv,_ZTv0_n20_N7ee773503fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773503barEv,_ZTv0_n16_N7ee773503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77350[];
+extern void _ZN6dd73503barEv();
+extern void _ZN6dd73503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7350__7ee77350[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&_ZN6dd73503barEv,
+ (VTBL_ENTRY)&_ZN6dd73503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc350__6dd7350__7ee77350[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv)();
+extern void ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7350__7ee77350[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7350[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv),
+};
+extern void _ZN5cc3503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc350__7ee77350[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN5cc3503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc350__7ee77350[] = {
+ 0,
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc350[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee77350[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77350[] = {
+ {&(_ZTV7ee77350[6]), 6,28},
+ {&(_ZTV7ee77350[15]), 15,28},
+ {&(_ZTV7ee77350[22]), 22,28},
+ {&(_ZTV7ee77350[27]), 27,28},
+ {&(_tg__ZTV6dd7350__7ee77350[5]), 5,7},
+ {&(_tg__ZTV5cc350__6dd7350__7ee77350[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7350__7ee77350[4]), 4,5},
+ {&(_tg__ZTV5cc350__7ee77350[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc350__7ee77350[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee77350[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77350[];
+extern VTBL_ENTRY _ZTV7ee77350[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77350[];
+static VTBL_ENTRY alt_thunk_names197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73503barEv,_ZTv0_n16_N6dd73503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73503barEv,_ZThn16_N6dd73503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73503fooEv,_ZTv0_n20_N6dd73503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73503fooEv,_ZThn8_N6dd73503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773503barEv,_ZTv0_n16_N7ee773503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773503barEv,_ZThn24_N7ee773503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773503fooEv,_ZTv0_n20_N7ee773503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773503fooEv,_ZThn16_N7ee773503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee773503fooEv,_ZTv0_n28_N7ee773503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773503fooEv,_ZThn8_N7ee773503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773503barEv,_ZTv0_n24_N7ee773503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773503barEv,_ZThn8_N7ee773503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77350 = { "ee77350", // class name
+ bases_ee77350, 4,
+ &(vtc_ee77350[0]), // expected_vtbl_contents
+ &(vtt_ee77350[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77350),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77350),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77350),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc450 : bb50 {
+ int c;
+ virtual void bar(); // _ZN5cc4503barEv
+ ~cc450(); // tgen
+ cc450(); // tgen
+};
+//SIG(-1 cc450) C1{ BC2{ VBC3{ Fi} v1 Fi} v1 Fi}
+
+
+void cc450 ::bar(){vfunc_called(this, "_ZN5cc4503barEv");}
+cc450 ::~cc450(){ note_dtor("cc450", this);} // tgen
+cc450 ::cc450(){ note_ctor("cc450", this);} // tgen
+
+static void Test_cc450()
+{
+ extern Class_Descriptor cd_cc450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc450, buf);
+ cc450 *dp, &lv = *(dp=new (buf) cc450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc450)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(16,12), "cc450");
+ check_base_class_offset(lv, (bb50*), 0, "cc450");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc450.c");
+ test_class_info(&lv, &cd_cc450);
+ dp->~cc450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc450(Test_cc450, "cc450", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc450C1Ev();
+extern void _ZN5cc450D1Ev();
+Name_Map name_map_cc450[] = {
+ NSPAIR(_ZN5cc450C1Ev),
+ NSPAIR(_ZN5cc450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_cc450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV5cc450[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc450[] = {
+ {&(_ZTV5cc450[3]), 3,4},
+ {&(_tg__ZTV4bb50__5cc450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+Class_Descriptor cd_cc450 = { "cc450", // class name
+ bases_cc450, 2,
+ &(vtc_cc450[0]), // expected_vtbl_contents
+ &(vtt_cc450[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc450),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0450 : cc450 {
+ int d;
+ ~dd0450(); // tgen
+ dd0450(); // tgen
+};
+//SIG(-1 dd0450) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0450 ::~dd0450(){ note_dtor("dd0450", this);} // tgen
+dd0450 ::dd0450(){ note_ctor("dd0450", this);} // tgen
+
+static void Test_dd0450()
+{
+ extern Class_Descriptor cd_dd0450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0450, buf);
+ dd0450 *dp, &lv = *(dp=new (buf) dd0450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(20,16), "dd0450");
+ check_base_class_offset(lv, (bb50*)(cc450*), 0, "dd0450");
+ check_base_class_offset(lv, (cc450*), 0, "dd0450");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0450.d");
+ test_class_info(&lv, &cd_dd0450);
+ dp->~dd0450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0450(Test_dd0450, "dd0450", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0450C1Ev();
+extern void _ZN6dd0450D1Ev();
+Name_Map name_map_dd0450[] = {
+ NSPAIR(_ZN6dd0450C1Ev),
+ NSPAIR(_ZN6dd0450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd0450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_dd0450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd0450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd0450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0450[] = {
+ {&(_ZTV6dd0450[3]), 3,4},
+ {&(_tg__ZTV5cc450__6dd0450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd0450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+Class_Descriptor cd_dd0450 = { "dd0450", // class name
+ bases_dd0450, 3,
+ &(vtc_dd0450[0]), // expected_vtbl_contents
+ &(vtt_dd0450[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0450),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00450 : dd0450 {
+ int e;
+ ~ee00450(); // tgen
+ ee00450(); // tgen
+};
+//SIG(1 ee00450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00450 ::~ee00450(){ note_dtor("ee00450", this);} // tgen
+ee00450 ::ee00450(){ note_ctor("ee00450", this);} // tgen
+
+static void Test_ee00450()
+{
+ extern Class_Descriptor cd_ee00450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00450, buf);
+ ee00450 *dp, &lv = *(dp=new (buf) ee00450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(24,20), "ee00450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), 0, "ee00450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), 0, "ee00450");
+ check_base_class_offset(lv, (dd0450*), 0, "ee00450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00450.e");
+ test_class_info(&lv, &cd_ee00450);
+ dp->~ee00450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00450(Test_ee00450, "ee00450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00450C1Ev();
+extern void _ZN7ee00450D1Ev();
+Name_Map name_map_ee00450[] = {
+ NSPAIR(_ZN7ee00450C1Ev),
+ NSPAIR(_ZN7ee00450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee00450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee00450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee00450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee00450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee00450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee00450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00450[] = {
+ {&(_ZTV7ee00450[3]), 3,4},
+ {&(_tg__ZTV6dd0450__7ee00450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee00450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee00450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00450[];
+extern VTBL_ENTRY _ZTV7ee00450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00450[];
+Class_Descriptor cd_ee00450 = { "ee00450", // class name
+ bases_ee00450, 4,
+ &(vtc_ee00450[0]), // expected_vtbl_contents
+ &(vtt_ee00450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10450 : virtual dd0450 {
+ int e;
+ ~ee10450(); // tgen
+ ee10450(); // tgen
+};
+//SIG(1 ee10450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10450 ::~ee10450(){ note_dtor("ee10450", this);} // tgen
+ee10450 ::ee10450(){ note_ctor("ee10450", this);} // tgen
+
+static void Test_ee10450()
+{
+ extern Class_Descriptor cd_ee10450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10450, buf);
+ ee10450 *dp, &lv = *(dp=new (buf) ee10450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(36,24), "ee10450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), ABISELECT(16,8), "ee10450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), ABISELECT(16,8), "ee10450");
+ check_base_class_offset(lv, (dd0450*), ABISELECT(16,8), "ee10450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10450.e");
+ test_class_info(&lv, &cd_ee10450);
+ dp->~ee10450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10450(Test_ee10450, "ee10450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10450C1Ev();
+extern void _ZN7ee10450D1Ev();
+Name_Map name_map_ee10450[] = {
+ NSPAIR(_ZN7ee10450C1Ev),
+ NSPAIR(_ZN7ee10450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee10450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee10450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10450[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee10450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee10450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee10450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee10450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10450[] = {
+ {&(_ZTV7ee10450[4]), 4,9},
+ {&(_ZTV7ee10450[8]), 8,9},
+ {&(_tg__ZTV6dd0450__7ee10450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee10450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee10450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10450[];
+extern VTBL_ENTRY _ZTV7ee10450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10450[];
+Class_Descriptor cd_ee10450 = { "ee10450", // class name
+ bases_ee10450, 4,
+ &(vtc_ee10450[0]), // expected_vtbl_contents
+ &(vtt_ee10450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10450),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20450 : dd0450 {
+ int e;
+ virtual void foo(); // _ZN7ee204503fooEv
+ ~ee20450(); // tgen
+ ee20450(); // tgen
+};
+//SIG(1 ee20450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20450 ::foo(){vfunc_called(this, "_ZN7ee204503fooEv");}
+ee20450 ::~ee20450(){ note_dtor("ee20450", this);} // tgen
+ee20450 ::ee20450(){ note_ctor("ee20450", this);} // tgen
+
+static void Test_ee20450()
+{
+ extern Class_Descriptor cd_ee20450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20450, buf);
+ ee20450 *dp, &lv = *(dp=new (buf) ee20450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(24,20), "ee20450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), 0, "ee20450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), 0, "ee20450");
+ check_base_class_offset(lv, (dd0450*), 0, "ee20450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20450.e");
+ test_class_info(&lv, &cd_ee20450);
+ dp->~ee20450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20450(Test_ee20450, "ee20450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20450C1Ev();
+extern void _ZN7ee20450D1Ev();
+Name_Map name_map_ee20450[] = {
+ NSPAIR(_ZN7ee20450C1Ev),
+ NSPAIR(_ZN7ee20450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee20450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN7ee204503fooEv();
+static VTBL_ENTRY vtc_ee20450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN7ee204503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee20450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee20450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee20450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20450[] = {
+ {&(_ZTV7ee20450[3]), 3,5},
+ {&(_tg__ZTV6dd0450__7ee20450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee20450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee20450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20450[];
+extern VTBL_ENTRY _ZTV7ee20450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20450[];
+Class_Descriptor cd_ee20450 = { "ee20450", // class name
+ bases_ee20450, 4,
+ &(vtc_ee20450[0]), // expected_vtbl_contents
+ &(vtt_ee20450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30450 : virtual dd0450 {
+ int e;
+ virtual void foo(); // _ZN7ee304503fooEv
+ ~ee30450(); // tgen
+ ee30450(); // tgen
+};
+//SIG(1 ee30450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30450 ::foo(){vfunc_called(this, "_ZN7ee304503fooEv");}
+ee30450 ::~ee30450(){ note_dtor("ee30450", this);} // tgen
+ee30450 ::ee30450(){ note_ctor("ee30450", this);} // tgen
+
+static void Test_ee30450()
+{
+ extern Class_Descriptor cd_ee30450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30450, buf);
+ ee30450 *dp, &lv = *(dp=new (buf) ee30450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(36,24), "ee30450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), ABISELECT(16,8), "ee30450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), ABISELECT(16,8), "ee30450");
+ check_base_class_offset(lv, (dd0450*), ABISELECT(16,8), "ee30450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30450.e");
+ test_class_info(&lv, &cd_ee30450);
+ dp->~ee30450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30450(Test_ee30450, "ee30450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30450C1Ev();
+extern void _ZN7ee30450D1Ev();
+Name_Map name_map_ee30450[] = {
+ NSPAIR(_ZN7ee30450C1Ev),
+ NSPAIR(_ZN7ee30450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee30450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30450[];
+extern void _ZN7ee304503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee30450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30450[0]),
+ (VTBL_ENTRY)&_ZN7ee304503fooEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee30450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee30450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee30450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee30450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30450[] = {
+ {&(_ZTV7ee30450[4]), 4,10},
+ {&(_ZTV7ee30450[9]), 9,10},
+ {&(_tg__ZTV6dd0450__7ee30450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee30450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee30450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30450[];
+extern VTBL_ENTRY _ZTV7ee30450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30450[];
+Class_Descriptor cd_ee30450 = { "ee30450", // class name
+ bases_ee30450, 4,
+ &(vtc_ee30450[0]), // expected_vtbl_contents
+ &(vtt_ee30450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40450 : dd0450 {
+ int e;
+ virtual void bar(); // _ZN7ee404503barEv
+ ~ee40450(); // tgen
+ ee40450(); // tgen
+};
+//SIG(1 ee40450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40450 ::bar(){vfunc_called(this, "_ZN7ee404503barEv");}
+ee40450 ::~ee40450(){ note_dtor("ee40450", this);} // tgen
+ee40450 ::ee40450(){ note_ctor("ee40450", this);} // tgen
+
+static void Test_ee40450()
+{
+ extern Class_Descriptor cd_ee40450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40450, buf);
+ ee40450 *dp, &lv = *(dp=new (buf) ee40450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(24,20), "ee40450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), 0, "ee40450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), 0, "ee40450");
+ check_base_class_offset(lv, (dd0450*), 0, "ee40450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40450.e");
+ test_class_info(&lv, &cd_ee40450);
+ dp->~ee40450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40450(Test_ee40450, "ee40450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40450C1Ev();
+extern void _ZN7ee40450D1Ev();
+Name_Map name_map_ee40450[] = {
+ NSPAIR(_ZN7ee40450C1Ev),
+ NSPAIR(_ZN7ee40450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee40450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40450[];
+extern void _ZN7ee404503barEv();
+static VTBL_ENTRY vtc_ee40450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40450[0]),
+ (VTBL_ENTRY)&_ZN7ee404503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee40450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee40450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee40450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee40450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40450[] = {
+ {&(_ZTV7ee40450[3]), 3,4},
+ {&(_tg__ZTV6dd0450__7ee40450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee40450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee40450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40450[];
+extern VTBL_ENTRY _ZTV7ee40450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40450[];
+Class_Descriptor cd_ee40450 = { "ee40450", // class name
+ bases_ee40450, 4,
+ &(vtc_ee40450[0]), // expected_vtbl_contents
+ &(vtt_ee40450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50450 : virtual dd0450 {
+ int e;
+ virtual void bar(); // _ZN7ee504503barEv
+ ~ee50450(); // tgen
+ ee50450(); // tgen
+};
+//SIG(1 ee50450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50450 ::bar(){vfunc_called(this, "_ZN7ee504503barEv");}
+ee50450 ::~ee50450(){ note_dtor("ee50450", this);} // tgen
+ee50450 ::ee50450(){ note_ctor("ee50450", this);} // tgen
+
+static void Test_ee50450()
+{
+ extern Class_Descriptor cd_ee50450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50450, buf);
+ ee50450 *dp, &lv = *(dp=new (buf) ee50450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(36,24), "ee50450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), ABISELECT(16,8), "ee50450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), ABISELECT(16,8), "ee50450");
+ check_base_class_offset(lv, (dd0450*), ABISELECT(16,8), "ee50450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50450.e");
+ test_class_info(&lv, &cd_ee50450);
+ dp->~ee50450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50450(Test_ee50450, "ee50450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50450C1Ev();
+extern void _ZN7ee50450D1Ev();
+Name_Map name_map_ee50450[] = {
+ NSPAIR(_ZN7ee50450C1Ev),
+ NSPAIR(_ZN7ee50450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee50450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50450[];
+extern void _ZN7ee504503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504503barEv,_ZTv0_n16_N7ee504503barEv)();
+extern void ABISELECT(_ZThn16_N7ee504503barEv,_ZThn8_N7ee504503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50450[0]),
+ (VTBL_ENTRY)&_ZN7ee504503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504503barEv,_ZTv0_n16_N7ee504503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee50450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee50450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee50450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50450[] = {
+ {&(_ZTV7ee50450[4]), 4,10},
+ {&(_ZTV7ee50450[9]), 9,10},
+ {&(_tg__ZTV6dd0450__7ee50450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee50450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee50450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50450[];
+extern VTBL_ENTRY _ZTV7ee50450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50450[];
+static VTBL_ENTRY alt_thunk_names198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504503barEv,_ZTv0_n16_N7ee504503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504503barEv,_ZThn8_N7ee504503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50450 = { "ee50450", // class name
+ bases_ee50450, 4,
+ &(vtc_ee50450[0]), // expected_vtbl_contents
+ &(vtt_ee50450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60450 : dd0450 {
+ int e;
+ virtual void foo(); // _ZN7ee604503fooEv
+ virtual void bar(); // _ZN7ee604503barEv
+ ~ee60450(); // tgen
+ ee60450(); // tgen
+};
+//SIG(1 ee60450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60450 ::foo(){vfunc_called(this, "_ZN7ee604503fooEv");}
+void ee60450 ::bar(){vfunc_called(this, "_ZN7ee604503barEv");}
+ee60450 ::~ee60450(){ note_dtor("ee60450", this);} // tgen
+ee60450 ::ee60450(){ note_ctor("ee60450", this);} // tgen
+
+static void Test_ee60450()
+{
+ extern Class_Descriptor cd_ee60450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60450, buf);
+ ee60450 *dp, &lv = *(dp=new (buf) ee60450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(24,20), "ee60450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), 0, "ee60450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), 0, "ee60450");
+ check_base_class_offset(lv, (dd0450*), 0, "ee60450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60450.e");
+ test_class_info(&lv, &cd_ee60450);
+ dp->~ee60450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60450(Test_ee60450, "ee60450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60450C1Ev();
+extern void _ZN7ee60450D1Ev();
+Name_Map name_map_ee60450[] = {
+ NSPAIR(_ZN7ee60450C1Ev),
+ NSPAIR(_ZN7ee60450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee60450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60450[];
+extern void _ZN7ee604503barEv();
+extern void _ZN7ee604503fooEv();
+static VTBL_ENTRY vtc_ee60450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60450[0]),
+ (VTBL_ENTRY)&_ZN7ee604503barEv,
+ (VTBL_ENTRY)&_ZN7ee604503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee60450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee60450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee60450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee60450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60450[] = {
+ {&(_ZTV7ee60450[3]), 3,5},
+ {&(_tg__ZTV6dd0450__7ee60450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee60450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee60450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60450[];
+extern VTBL_ENTRY _ZTV7ee60450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60450[];
+Class_Descriptor cd_ee60450 = { "ee60450", // class name
+ bases_ee60450, 4,
+ &(vtc_ee60450[0]), // expected_vtbl_contents
+ &(vtt_ee60450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70450 : virtual dd0450 {
+ int e;
+ virtual void foo(); // _ZN7ee704503fooEv
+ virtual void bar(); // _ZN7ee704503barEv
+ ~ee70450(); // tgen
+ ee70450(); // tgen
+};
+//SIG(1 ee70450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70450 ::foo(){vfunc_called(this, "_ZN7ee704503fooEv");}
+void ee70450 ::bar(){vfunc_called(this, "_ZN7ee704503barEv");}
+ee70450 ::~ee70450(){ note_dtor("ee70450", this);} // tgen
+ee70450 ::ee70450(){ note_ctor("ee70450", this);} // tgen
+
+static void Test_ee70450()
+{
+ extern Class_Descriptor cd_ee70450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70450, buf);
+ ee70450 *dp, &lv = *(dp=new (buf) ee70450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd0450*), ABISELECT(36,24), "ee70450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd0450*), ABISELECT(16,8), "ee70450");
+ check_base_class_offset(lv, (cc450*)(dd0450*), ABISELECT(16,8), "ee70450");
+ check_base_class_offset(lv, (dd0450*), ABISELECT(16,8), "ee70450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70450.e");
+ test_class_info(&lv, &cd_ee70450);
+ dp->~ee70450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70450(Test_ee70450, "ee70450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70450C1Ev();
+extern void _ZN7ee70450D1Ev();
+Name_Map name_map_ee70450[] = {
+ NSPAIR(_ZN7ee70450C1Ev),
+ NSPAIR(_ZN7ee70450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd0450;
+extern VTBL_ENTRY _ZTI6dd0450[];
+extern VTBL_ENTRY _ZTV6dd0450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0450[];
+static Base_Class bases_ee70450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0450, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70450[];
+extern void _ZN7ee704503fooEv();
+extern void _ZN7ee704503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee704503barEv,_ZTv0_n16_N7ee704503barEv)();
+extern void ABISELECT(_ZThn16_N7ee704503barEv,_ZThn8_N7ee704503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70450[0]),
+ (VTBL_ENTRY)&_ZN7ee704503fooEv,
+ (VTBL_ENTRY)&_ZN7ee704503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704503barEv,_ZTv0_n16_N7ee704503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0450__7ee70450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd0450__7ee70450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd0450__7ee70450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70450[] = {
+ {&(_ZTV7ee70450[4]), 4,11},
+ {&(_ZTV7ee70450[10]), 10,11},
+ {&(_tg__ZTV6dd0450__7ee70450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd0450__7ee70450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd0450__7ee70450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70450[];
+extern VTBL_ENTRY _ZTV7ee70450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70450[];
+static VTBL_ENTRY alt_thunk_names199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704503barEv,_ZTv0_n16_N7ee704503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704503barEv,_ZThn8_N7ee704503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70450 = { "ee70450", // class name
+ bases_ee70450, 4,
+ &(vtc_ee70450[0]), // expected_vtbl_contents
+ &(vtt_ee70450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1450 : virtual cc450 {
+ int d;
+ ~dd1450(); // tgen
+ dd1450(); // tgen
+};
+//SIG(-1 dd1450) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1450 ::~dd1450(){ note_dtor("dd1450", this);} // tgen
+dd1450 ::dd1450(){ note_ctor("dd1450", this);} // tgen
+
+static void Test_dd1450()
+{
+ extern Class_Descriptor cd_dd1450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1450, buf);
+ dd1450 *dp, &lv = *(dp=new (buf) dd1450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,20), "dd1450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,8), "dd1450");
+ check_base_class_offset(lv, (cc450*), ABISELECT(16,8), "dd1450");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1450.d");
+ test_class_info(&lv, &cd_dd1450);
+ dp->~dd1450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1450(Test_dd1450, "dd1450", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1450C1Ev();
+extern void _ZN6dd1450D1Ev();
+Name_Map name_map_dd1450[] = {
+ NSPAIR(_ZN6dd1450C1Ev),
+ NSPAIR(_ZN6dd1450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd1450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_dd1450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd1450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1450[] = {
+ {&(_ZTV6dd1450[4]), 4,9},
+ {&(_ZTV6dd1450[8]), 8,9},
+ {&(_tg__ZTV5cc450__6dd1450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd1450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+Class_Descriptor cd_dd1450 = { "dd1450", // class name
+ bases_dd1450, 3,
+ &(vtc_dd1450[0]), // expected_vtbl_contents
+ &(vtt_dd1450[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1450),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1450),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01450 : dd1450 {
+ int e;
+ ~ee01450(); // tgen
+ ee01450(); // tgen
+};
+//SIG(1 ee01450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01450 ::~ee01450(){ note_dtor("ee01450", this);} // tgen
+ee01450 ::ee01450(){ note_ctor("ee01450", this);} // tgen
+
+static void Test_ee01450()
+{
+ extern Class_Descriptor cd_ee01450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01450, buf);
+ ee01450 *dp, &lv = *(dp=new (buf) ee01450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee01450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee01450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(16,12), "ee01450");
+ check_base_class_offset(lv, (dd1450*), 0, "ee01450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01450.e");
+ test_class_info(&lv, &cd_ee01450);
+ dp->~ee01450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01450(Test_ee01450, "ee01450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01450C1Ev();
+extern void _ZN7ee01450D1Ev();
+Name_Map name_map_ee01450[] = {
+ NSPAIR(_ZN7ee01450C1Ev),
+ NSPAIR(_ZN7ee01450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee01450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee01450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01450[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee01450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee01450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee01450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee01450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee01450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01450[] = {
+ {&(_ZTV7ee01450[4]), 4,9},
+ {&(_tg__ZTV6dd1450__7ee01450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee01450[4]), 4,5},
+ {&(_ZTV7ee01450[8]), 8,9},
+ {&(_tg__ZTV5cc450__7ee01450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee01450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01450[];
+extern VTBL_ENTRY _ZTV7ee01450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01450[];
+Class_Descriptor cd_ee01450 = { "ee01450", // class name
+ bases_ee01450, 4,
+ &(vtc_ee01450[0]), // expected_vtbl_contents
+ &(vtt_ee01450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01450),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11450 : virtual dd1450 {
+ int e;
+ ~ee11450(); // tgen
+ ee11450(); // tgen
+};
+//SIG(1 ee11450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11450 ::~ee11450(){ note_dtor("ee11450", this);} // tgen
+ee11450 ::ee11450(){ note_ctor("ee11450", this);} // tgen
+
+static void Test_ee11450()
+{
+ extern Class_Descriptor cd_ee11450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11450, buf);
+ ee11450 *dp, &lv = *(dp=new (buf) ee11450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee11450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee11450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(32,16), "ee11450");
+ check_base_class_offset(lv, (dd1450*), ABISELECT(16,8), "ee11450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11450.e");
+ test_class_info(&lv, &cd_ee11450);
+ dp->~ee11450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11450(Test_ee11450, "ee11450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11450C1Ev();
+extern void _ZN7ee11450D1Ev();
+Name_Map name_map_ee11450[] = {
+ NSPAIR(_ZN7ee11450C1Ev),
+ NSPAIR(_ZN7ee11450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee11450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI7ee11450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee11450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11450[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11450[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee11450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee11450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee11450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee11450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee11450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11450[] = {
+ {&(_ZTV7ee11450[5]), 5,14},
+ {&(_ZTV7ee11450[9]), 9,14},
+ {&(_ZTV7ee11450[13]), 13,14},
+ {&(_tg__ZTV6dd1450__7ee11450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee11450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee11450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee11450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11450[];
+extern VTBL_ENTRY _ZTV7ee11450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11450[];
+Class_Descriptor cd_ee11450 = { "ee11450", // class name
+ bases_ee11450, 4,
+ &(vtc_ee11450[0]), // expected_vtbl_contents
+ &(vtt_ee11450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11450),14, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21450 : dd1450 {
+ int e;
+ virtual void foo(); // _ZN7ee214503fooEv
+ ~ee21450(); // tgen
+ ee21450(); // tgen
+};
+//SIG(1 ee21450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21450 ::foo(){vfunc_called(this, "_ZN7ee214503fooEv");}
+ee21450 ::~ee21450(){ note_dtor("ee21450", this);} // tgen
+ee21450 ::ee21450(){ note_ctor("ee21450", this);} // tgen
+
+static void Test_ee21450()
+{
+ extern Class_Descriptor cd_ee21450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21450, buf);
+ ee21450 *dp, &lv = *(dp=new (buf) ee21450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee21450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee21450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(16,12), "ee21450");
+ check_base_class_offset(lv, (dd1450*), 0, "ee21450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21450.e");
+ test_class_info(&lv, &cd_ee21450);
+ dp->~ee21450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21450(Test_ee21450, "ee21450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21450C1Ev();
+extern void _ZN7ee21450D1Ev();
+Name_Map name_map_ee21450[] = {
+ NSPAIR(_ZN7ee21450C1Ev),
+ NSPAIR(_ZN7ee21450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee21450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21450[];
+extern void _ZN7ee214503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee21450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21450[0]),
+ (VTBL_ENTRY)&_ZN7ee214503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee21450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee21450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee21450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee21450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee21450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21450[] = {
+ {&(_ZTV7ee21450[4]), 4,10},
+ {&(_tg__ZTV6dd1450__7ee21450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee21450[4]), 4,5},
+ {&(_ZTV7ee21450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee21450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee21450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21450[];
+extern VTBL_ENTRY _ZTV7ee21450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21450[];
+Class_Descriptor cd_ee21450 = { "ee21450", // class name
+ bases_ee21450, 4,
+ &(vtc_ee21450[0]), // expected_vtbl_contents
+ &(vtt_ee21450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31450 : virtual dd1450 {
+ int e;
+ virtual void foo(); // _ZN7ee314503fooEv
+ ~ee31450(); // tgen
+ ee31450(); // tgen
+};
+//SIG(1 ee31450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31450 ::foo(){vfunc_called(this, "_ZN7ee314503fooEv");}
+ee31450 ::~ee31450(){ note_dtor("ee31450", this);} // tgen
+ee31450 ::ee31450(){ note_ctor("ee31450", this);} // tgen
+
+static void Test_ee31450()
+{
+ extern Class_Descriptor cd_ee31450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31450, buf);
+ ee31450 *dp, &lv = *(dp=new (buf) ee31450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee31450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee31450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(32,16), "ee31450");
+ check_base_class_offset(lv, (dd1450*), ABISELECT(16,8), "ee31450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31450.e");
+ test_class_info(&lv, &cd_ee31450);
+ dp->~ee31450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31450(Test_ee31450, "ee31450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31450C1Ev();
+extern void _ZN7ee31450D1Ev();
+Name_Map name_map_ee31450[] = {
+ NSPAIR(_ZN7ee31450C1Ev),
+ NSPAIR(_ZN7ee31450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee31450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31450[];
+extern void _ZN7ee314503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee31450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31450[0]),
+ (VTBL_ENTRY)&_ZN7ee314503fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31450[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee31450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee31450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee31450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee31450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee31450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31450[] = {
+ {&(_ZTV7ee31450[5]), 5,15},
+ {&(_ZTV7ee31450[10]), 10,15},
+ {&(_ZTV7ee31450[14]), 14,15},
+ {&(_tg__ZTV6dd1450__7ee31450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee31450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee31450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee31450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31450[];
+extern VTBL_ENTRY _ZTV7ee31450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31450[];
+Class_Descriptor cd_ee31450 = { "ee31450", // class name
+ bases_ee31450, 4,
+ &(vtc_ee31450[0]), // expected_vtbl_contents
+ &(vtt_ee31450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31450),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41450 : dd1450 {
+ int e;
+ virtual void bar(); // _ZN7ee414503barEv
+ ~ee41450(); // tgen
+ ee41450(); // tgen
+};
+//SIG(1 ee41450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41450 ::bar(){vfunc_called(this, "_ZN7ee414503barEv");}
+ee41450 ::~ee41450(){ note_dtor("ee41450", this);} // tgen
+ee41450 ::ee41450(){ note_ctor("ee41450", this);} // tgen
+
+static void Test_ee41450()
+{
+ extern Class_Descriptor cd_ee41450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41450, buf);
+ ee41450 *dp, &lv = *(dp=new (buf) ee41450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee41450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee41450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(16,12), "ee41450");
+ check_base_class_offset(lv, (dd1450*), 0, "ee41450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41450.e");
+ test_class_info(&lv, &cd_ee41450);
+ dp->~ee41450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41450(Test_ee41450, "ee41450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41450C1Ev();
+extern void _ZN7ee41450D1Ev();
+Name_Map name_map_ee41450[] = {
+ NSPAIR(_ZN7ee41450C1Ev),
+ NSPAIR(_ZN7ee41450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee41450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41450[];
+extern void _ZN7ee414503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414503barEv,_ZTv0_n16_N7ee414503barEv)();
+extern void ABISELECT(_ZThn16_N7ee414503barEv,_ZThn12_N7ee414503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41450[0]),
+ (VTBL_ENTRY)&_ZN7ee414503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414503barEv,_ZTv0_n16_N7ee414503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee41450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee41450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee41450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee41450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41450[] = {
+ {&(_ZTV7ee41450[4]), 4,10},
+ {&(_tg__ZTV6dd1450__7ee41450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee41450[4]), 4,5},
+ {&(_ZTV7ee41450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee41450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee41450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41450[];
+extern VTBL_ENTRY _ZTV7ee41450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41450[];
+static VTBL_ENTRY alt_thunk_names200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414503barEv,_ZTv0_n16_N7ee414503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414503barEv,_ZThn12_N7ee414503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41450 = { "ee41450", // class name
+ bases_ee41450, 4,
+ &(vtc_ee41450[0]), // expected_vtbl_contents
+ &(vtt_ee41450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51450 : virtual dd1450 {
+ int e;
+ virtual void bar(); // _ZN7ee514503barEv
+ ~ee51450(); // tgen
+ ee51450(); // tgen
+};
+//SIG(1 ee51450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51450 ::bar(){vfunc_called(this, "_ZN7ee514503barEv");}
+ee51450 ::~ee51450(){ note_dtor("ee51450", this);} // tgen
+ee51450 ::ee51450(){ note_ctor("ee51450", this);} // tgen
+
+static void Test_ee51450()
+{
+ extern Class_Descriptor cd_ee51450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51450, buf);
+ ee51450 *dp, &lv = *(dp=new (buf) ee51450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee51450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee51450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(32,16), "ee51450");
+ check_base_class_offset(lv, (dd1450*), ABISELECT(16,8), "ee51450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51450.e");
+ test_class_info(&lv, &cd_ee51450);
+ dp->~ee51450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51450(Test_ee51450, "ee51450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51450C1Ev();
+extern void _ZN7ee51450D1Ev();
+Name_Map name_map_ee51450[] = {
+ NSPAIR(_ZN7ee51450C1Ev),
+ NSPAIR(_ZN7ee51450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee51450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51450[];
+extern void _ZN7ee514503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514503barEv,_ZTv0_n16_N7ee514503barEv)();
+extern void ABISELECT(_ZThn32_N7ee514503barEv,_ZThn16_N7ee514503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51450[0]),
+ (VTBL_ENTRY)&_ZN7ee514503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51450[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514503barEv,_ZTv0_n16_N7ee514503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee51450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee51450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee51450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee51450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51450[] = {
+ {&(_ZTV7ee51450[5]), 5,15},
+ {&(_ZTV7ee51450[10]), 10,15},
+ {&(_ZTV7ee51450[14]), 14,15},
+ {&(_tg__ZTV6dd1450__7ee51450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee51450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee51450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee51450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51450[];
+extern VTBL_ENTRY _ZTV7ee51450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51450[];
+static VTBL_ENTRY alt_thunk_names201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514503barEv,_ZTv0_n16_N7ee514503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514503barEv,_ZThn16_N7ee514503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51450 = { "ee51450", // class name
+ bases_ee51450, 4,
+ &(vtc_ee51450[0]), // expected_vtbl_contents
+ &(vtt_ee51450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51450),15, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61450 : dd1450 {
+ int e;
+ virtual void foo(); // _ZN7ee614503fooEv
+ virtual void bar(); // _ZN7ee614503barEv
+ ~ee61450(); // tgen
+ ee61450(); // tgen
+};
+//SIG(1 ee61450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61450 ::foo(){vfunc_called(this, "_ZN7ee614503fooEv");}
+void ee61450 ::bar(){vfunc_called(this, "_ZN7ee614503barEv");}
+ee61450 ::~ee61450(){ note_dtor("ee61450", this);} // tgen
+ee61450 ::ee61450(){ note_ctor("ee61450", this);} // tgen
+
+static void Test_ee61450()
+{
+ extern Class_Descriptor cd_ee61450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61450, buf);
+ ee61450 *dp, &lv = *(dp=new (buf) ee61450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee61450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee61450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(16,12), "ee61450");
+ check_base_class_offset(lv, (dd1450*), 0, "ee61450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61450.e");
+ test_class_info(&lv, &cd_ee61450);
+ dp->~ee61450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61450(Test_ee61450, "ee61450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61450C1Ev();
+extern void _ZN7ee61450D1Ev();
+Name_Map name_map_ee61450[] = {
+ NSPAIR(_ZN7ee61450C1Ev),
+ NSPAIR(_ZN7ee61450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee61450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61450[];
+extern void _ZN7ee614503fooEv();
+extern void _ZN7ee614503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee614503barEv,_ZTv0_n16_N7ee614503barEv)();
+extern void ABISELECT(_ZThn16_N7ee614503barEv,_ZThn12_N7ee614503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61450[0]),
+ (VTBL_ENTRY)&_ZN7ee614503fooEv,
+ (VTBL_ENTRY)&_ZN7ee614503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614503barEv,_ZTv0_n16_N7ee614503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee61450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee61450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee61450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee61450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61450[] = {
+ {&(_ZTV7ee61450[4]), 4,11},
+ {&(_tg__ZTV6dd1450__7ee61450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee61450[4]), 4,5},
+ {&(_ZTV7ee61450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee61450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee61450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61450[];
+extern VTBL_ENTRY _ZTV7ee61450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61450[];
+static VTBL_ENTRY alt_thunk_names202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614503barEv,_ZTv0_n16_N7ee614503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614503barEv,_ZThn12_N7ee614503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61450 = { "ee61450", // class name
+ bases_ee61450, 4,
+ &(vtc_ee61450[0]), // expected_vtbl_contents
+ &(vtt_ee61450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71450 : virtual dd1450 {
+ int e;
+ virtual void foo(); // _ZN7ee714503fooEv
+ virtual void bar(); // _ZN7ee714503barEv
+ ~ee71450(); // tgen
+ ee71450(); // tgen
+};
+//SIG(1 ee71450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71450 ::foo(){vfunc_called(this, "_ZN7ee714503fooEv");}
+void ee71450 ::bar(){vfunc_called(this, "_ZN7ee714503barEv");}
+ee71450 ::~ee71450(){ note_dtor("ee71450", this);} // tgen
+ee71450 ::ee71450(){ note_ctor("ee71450", this);} // tgen
+
+static void Test_ee71450()
+{
+ extern Class_Descriptor cd_ee71450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71450, buf);
+ ee71450 *dp, &lv = *(dp=new (buf) ee71450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee71450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee71450");
+ check_base_class_offset(lv, (cc450*)(dd1450*), ABISELECT(32,16), "ee71450");
+ check_base_class_offset(lv, (dd1450*), ABISELECT(16,8), "ee71450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71450.e");
+ test_class_info(&lv, &cd_ee71450);
+ dp->~ee71450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71450(Test_ee71450, "ee71450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71450C1Ev();
+extern void _ZN7ee71450D1Ev();
+Name_Map name_map_ee71450[] = {
+ NSPAIR(_ZN7ee71450C1Ev),
+ NSPAIR(_ZN7ee71450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd1450;
+extern VTBL_ENTRY _ZTI6dd1450[];
+extern VTBL_ENTRY _ZTV6dd1450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1450[];
+static Base_Class bases_ee71450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1450, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71450[];
+extern void _ZN7ee714503fooEv();
+extern void _ZN7ee714503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee714503barEv,_ZTv0_n16_N7ee714503barEv)();
+extern void ABISELECT(_ZThn32_N7ee714503barEv,_ZThn16_N7ee714503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71450[0]),
+ (VTBL_ENTRY)&_ZN7ee714503fooEv,
+ (VTBL_ENTRY)&_ZN7ee714503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71450[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714503barEv,_ZTv0_n16_N7ee714503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71450[];
+static VTBL_ENTRY _tg__ZTV6dd1450__7ee71450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd1450__7ee71450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee71450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee71450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71450[] = {
+ {&(_ZTV7ee71450[5]), 5,16},
+ {&(_ZTV7ee71450[11]), 11,16},
+ {&(_ZTV7ee71450[15]), 15,16},
+ {&(_tg__ZTV6dd1450__7ee71450[4]), 4,4},
+ {&(_tg__ZTV5cc450__6dd1450__7ee71450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee71450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee71450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71450[];
+extern VTBL_ENTRY _ZTV7ee71450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71450[];
+static VTBL_ENTRY alt_thunk_names203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714503barEv,_ZTv0_n16_N7ee714503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714503barEv,_ZThn16_N7ee714503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71450 = { "ee71450", // class name
+ bases_ee71450, 4,
+ &(vtc_ee71450[0]), // expected_vtbl_contents
+ &(vtt_ee71450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71450),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2450 : cc450 {
+ int d;
+ virtual void foo(); // _ZN6dd24503fooEv
+ ~dd2450(); // tgen
+ dd2450(); // tgen
+};
+//SIG(-1 dd2450) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2450 ::foo(){vfunc_called(this, "_ZN6dd24503fooEv");}
+dd2450 ::~dd2450(){ note_dtor("dd2450", this);} // tgen
+dd2450 ::dd2450(){ note_ctor("dd2450", this);} // tgen
+
+static void Test_dd2450()
+{
+ extern Class_Descriptor cd_dd2450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2450, buf);
+ dd2450 *dp, &lv = *(dp=new (buf) dd2450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(20,16), "dd2450");
+ check_base_class_offset(lv, (bb50*)(cc450*), 0, "dd2450");
+ check_base_class_offset(lv, (cc450*), 0, "dd2450");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2450.d");
+ test_class_info(&lv, &cd_dd2450);
+ dp->~dd2450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2450(Test_dd2450, "dd2450", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2450C1Ev();
+extern void _ZN6dd2450D1Ev();
+Name_Map name_map_dd2450[] = {
+ NSPAIR(_ZN6dd2450C1Ev),
+ NSPAIR(_ZN6dd2450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd2450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY vtc_dd2450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd2450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd2450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2450[] = {
+ {&(_ZTV6dd2450[3]), 3,5},
+ {&(_tg__ZTV5cc450__6dd2450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd2450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+Class_Descriptor cd_dd2450 = { "dd2450", // class name
+ bases_dd2450, 3,
+ &(vtc_dd2450[0]), // expected_vtbl_contents
+ &(vtt_dd2450[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2450),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02450 : dd2450 {
+ int e;
+ ~ee02450(); // tgen
+ ee02450(); // tgen
+};
+//SIG(1 ee02450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02450 ::~ee02450(){ note_dtor("ee02450", this);} // tgen
+ee02450 ::ee02450(){ note_ctor("ee02450", this);} // tgen
+
+static void Test_ee02450()
+{
+ extern Class_Descriptor cd_ee02450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02450, buf);
+ ee02450 *dp, &lv = *(dp=new (buf) ee02450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(24,20), "ee02450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), 0, "ee02450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), 0, "ee02450");
+ check_base_class_offset(lv, (dd2450*), 0, "ee02450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02450.e");
+ test_class_info(&lv, &cd_ee02450);
+ dp->~ee02450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02450(Test_ee02450, "ee02450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02450C1Ev();
+extern void _ZN7ee02450D1Ev();
+Name_Map name_map_ee02450[] = {
+ NSPAIR(_ZN7ee02450C1Ev),
+ NSPAIR(_ZN7ee02450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee02450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY vtc_ee02450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee02450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee02450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee02450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02450[] = {
+ {&(_ZTV7ee02450[3]), 3,5},
+ {&(_tg__ZTV6dd2450__7ee02450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee02450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee02450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02450[];
+extern VTBL_ENTRY _ZTV7ee02450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02450[];
+Class_Descriptor cd_ee02450 = { "ee02450", // class name
+ bases_ee02450, 4,
+ &(vtc_ee02450[0]), // expected_vtbl_contents
+ &(vtt_ee02450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12450 : virtual dd2450 {
+ int e;
+ ~ee12450(); // tgen
+ ee12450(); // tgen
+};
+//SIG(1 ee12450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12450 ::~ee12450(){ note_dtor("ee12450", this);} // tgen
+ee12450 ::ee12450(){ note_ctor("ee12450", this);} // tgen
+
+static void Test_ee12450()
+{
+ extern Class_Descriptor cd_ee12450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12450, buf);
+ ee12450 *dp, &lv = *(dp=new (buf) ee12450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(36,24), "ee12450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), ABISELECT(16,8), "ee12450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), ABISELECT(16,8), "ee12450");
+ check_base_class_offset(lv, (dd2450*), ABISELECT(16,8), "ee12450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12450.e");
+ test_class_info(&lv, &cd_ee12450);
+ dp->~ee12450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12450(Test_ee12450, "ee12450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12450C1Ev();
+extern void _ZN7ee12450D1Ev();
+Name_Map name_map_ee12450[] = {
+ NSPAIR(_ZN7ee12450C1Ev),
+ NSPAIR(_ZN7ee12450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee12450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY vtc_ee12450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12450[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee12450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee12450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee12450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12450[] = {
+ {&(_ZTV7ee12450[4]), 4,11},
+ {&(_ZTV7ee12450[9]), 9,11},
+ {&(_tg__ZTV6dd2450__7ee12450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee12450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee12450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12450[];
+extern VTBL_ENTRY _ZTV7ee12450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12450[];
+Class_Descriptor cd_ee12450 = { "ee12450", // class name
+ bases_ee12450, 4,
+ &(vtc_ee12450[0]), // expected_vtbl_contents
+ &(vtt_ee12450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22450 : dd2450 {
+ int e;
+ virtual void foo(); // _ZN7ee224503fooEv
+ ~ee22450(); // tgen
+ ee22450(); // tgen
+};
+//SIG(1 ee22450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22450 ::foo(){vfunc_called(this, "_ZN7ee224503fooEv");}
+ee22450 ::~ee22450(){ note_dtor("ee22450", this);} // tgen
+ee22450 ::ee22450(){ note_ctor("ee22450", this);} // tgen
+
+static void Test_ee22450()
+{
+ extern Class_Descriptor cd_ee22450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22450, buf);
+ ee22450 *dp, &lv = *(dp=new (buf) ee22450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(24,20), "ee22450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), 0, "ee22450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), 0, "ee22450");
+ check_base_class_offset(lv, (dd2450*), 0, "ee22450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22450.e");
+ test_class_info(&lv, &cd_ee22450);
+ dp->~ee22450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22450(Test_ee22450, "ee22450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22450C1Ev();
+extern void _ZN7ee22450D1Ev();
+Name_Map name_map_ee22450[] = {
+ NSPAIR(_ZN7ee22450C1Ev),
+ NSPAIR(_ZN7ee22450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee22450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN7ee224503fooEv();
+static VTBL_ENTRY vtc_ee22450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN7ee224503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee22450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee22450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee22450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22450[] = {
+ {&(_ZTV7ee22450[3]), 3,5},
+ {&(_tg__ZTV6dd2450__7ee22450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee22450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee22450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22450[];
+extern VTBL_ENTRY _ZTV7ee22450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22450[];
+Class_Descriptor cd_ee22450 = { "ee22450", // class name
+ bases_ee22450, 4,
+ &(vtc_ee22450[0]), // expected_vtbl_contents
+ &(vtt_ee22450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32450 : virtual dd2450 {
+ int e;
+ virtual void foo(); // _ZN7ee324503fooEv
+ ~ee32450(); // tgen
+ ee32450(); // tgen
+};
+//SIG(1 ee32450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32450 ::foo(){vfunc_called(this, "_ZN7ee324503fooEv");}
+ee32450 ::~ee32450(){ note_dtor("ee32450", this);} // tgen
+ee32450 ::ee32450(){ note_ctor("ee32450", this);} // tgen
+
+static void Test_ee32450()
+{
+ extern Class_Descriptor cd_ee32450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32450, buf);
+ ee32450 *dp, &lv = *(dp=new (buf) ee32450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(36,24), "ee32450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), ABISELECT(16,8), "ee32450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), ABISELECT(16,8), "ee32450");
+ check_base_class_offset(lv, (dd2450*), ABISELECT(16,8), "ee32450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32450.e");
+ test_class_info(&lv, &cd_ee32450);
+ dp->~ee32450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32450(Test_ee32450, "ee32450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32450C1Ev();
+extern void _ZN7ee32450D1Ev();
+Name_Map name_map_ee32450[] = {
+ NSPAIR(_ZN7ee32450C1Ev),
+ NSPAIR(_ZN7ee32450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee32450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32450[];
+extern void _ZN7ee324503fooEv();
+extern void _ZN5cc4503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee324503fooEv,_ZTv0_n20_N7ee324503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324503fooEv,_ZThn8_N7ee324503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32450[0]),
+ (VTBL_ENTRY)&_ZN7ee324503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee324503fooEv,_ZTv0_n20_N7ee324503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee32450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee32450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee32450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32450[] = {
+ {&(_ZTV7ee32450[4]), 4,12},
+ {&(_ZTV7ee32450[10]), 10,12},
+ {&(_tg__ZTV6dd2450__7ee32450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee32450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee32450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32450[];
+extern VTBL_ENTRY _ZTV7ee32450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32450[];
+static VTBL_ENTRY alt_thunk_names204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee324503fooEv,_ZTv0_n20_N7ee324503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324503fooEv,_ZThn8_N7ee324503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32450 = { "ee32450", // class name
+ bases_ee32450, 4,
+ &(vtc_ee32450[0]), // expected_vtbl_contents
+ &(vtt_ee32450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32450),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42450 : dd2450 {
+ int e;
+ virtual void bar(); // _ZN7ee424503barEv
+ ~ee42450(); // tgen
+ ee42450(); // tgen
+};
+//SIG(1 ee42450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42450 ::bar(){vfunc_called(this, "_ZN7ee424503barEv");}
+ee42450 ::~ee42450(){ note_dtor("ee42450", this);} // tgen
+ee42450 ::ee42450(){ note_ctor("ee42450", this);} // tgen
+
+static void Test_ee42450()
+{
+ extern Class_Descriptor cd_ee42450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42450, buf);
+ ee42450 *dp, &lv = *(dp=new (buf) ee42450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(24,20), "ee42450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), 0, "ee42450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), 0, "ee42450");
+ check_base_class_offset(lv, (dd2450*), 0, "ee42450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42450.e");
+ test_class_info(&lv, &cd_ee42450);
+ dp->~ee42450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42450(Test_ee42450, "ee42450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42450C1Ev();
+extern void _ZN7ee42450D1Ev();
+Name_Map name_map_ee42450[] = {
+ NSPAIR(_ZN7ee42450C1Ev),
+ NSPAIR(_ZN7ee42450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee42450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42450[];
+extern void _ZN7ee424503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY vtc_ee42450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42450[0]),
+ (VTBL_ENTRY)&_ZN7ee424503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee42450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee42450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee42450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee42450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42450[] = {
+ {&(_ZTV7ee42450[3]), 3,5},
+ {&(_tg__ZTV6dd2450__7ee42450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee42450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee42450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42450[];
+extern VTBL_ENTRY _ZTV7ee42450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42450[];
+Class_Descriptor cd_ee42450 = { "ee42450", // class name
+ bases_ee42450, 4,
+ &(vtc_ee42450[0]), // expected_vtbl_contents
+ &(vtt_ee42450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52450 : virtual dd2450 {
+ int e;
+ virtual void bar(); // _ZN7ee524503barEv
+ ~ee52450(); // tgen
+ ee52450(); // tgen
+};
+//SIG(1 ee52450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52450 ::bar(){vfunc_called(this, "_ZN7ee524503barEv");}
+ee52450 ::~ee52450(){ note_dtor("ee52450", this);} // tgen
+ee52450 ::ee52450(){ note_ctor("ee52450", this);} // tgen
+
+static void Test_ee52450()
+{
+ extern Class_Descriptor cd_ee52450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52450, buf);
+ ee52450 *dp, &lv = *(dp=new (buf) ee52450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(36,24), "ee52450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), ABISELECT(16,8), "ee52450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), ABISELECT(16,8), "ee52450");
+ check_base_class_offset(lv, (dd2450*), ABISELECT(16,8), "ee52450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52450.e");
+ test_class_info(&lv, &cd_ee52450);
+ dp->~ee52450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52450(Test_ee52450, "ee52450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52450C1Ev();
+extern void _ZN7ee52450D1Ev();
+Name_Map name_map_ee52450[] = {
+ NSPAIR(_ZN7ee52450C1Ev),
+ NSPAIR(_ZN7ee52450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee52450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52450[];
+extern void _ZN7ee524503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524503barEv,_ZTv0_n16_N7ee524503barEv)();
+extern void ABISELECT(_ZThn16_N7ee524503barEv,_ZThn8_N7ee524503barEv)() __attribute__((weak));
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY vtc_ee52450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52450[0]),
+ (VTBL_ENTRY)&_ZN7ee524503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524503barEv,_ZTv0_n16_N7ee524503barEv),
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee52450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee52450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee52450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52450[] = {
+ {&(_ZTV7ee52450[4]), 4,12},
+ {&(_ZTV7ee52450[10]), 10,12},
+ {&(_tg__ZTV6dd2450__7ee52450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee52450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee52450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52450[];
+extern VTBL_ENTRY _ZTV7ee52450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52450[];
+static VTBL_ENTRY alt_thunk_names205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524503barEv,_ZTv0_n16_N7ee524503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524503barEv,_ZThn8_N7ee524503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52450 = { "ee52450", // class name
+ bases_ee52450, 4,
+ &(vtc_ee52450[0]), // expected_vtbl_contents
+ &(vtt_ee52450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52450),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62450 : dd2450 {
+ int e;
+ virtual void foo(); // _ZN7ee624503fooEv
+ virtual void bar(); // _ZN7ee624503barEv
+ ~ee62450(); // tgen
+ ee62450(); // tgen
+};
+//SIG(1 ee62450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62450 ::foo(){vfunc_called(this, "_ZN7ee624503fooEv");}
+void ee62450 ::bar(){vfunc_called(this, "_ZN7ee624503barEv");}
+ee62450 ::~ee62450(){ note_dtor("ee62450", this);} // tgen
+ee62450 ::ee62450(){ note_ctor("ee62450", this);} // tgen
+
+static void Test_ee62450()
+{
+ extern Class_Descriptor cd_ee62450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62450, buf);
+ ee62450 *dp, &lv = *(dp=new (buf) ee62450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(24,20), "ee62450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), 0, "ee62450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), 0, "ee62450");
+ check_base_class_offset(lv, (dd2450*), 0, "ee62450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62450.e");
+ test_class_info(&lv, &cd_ee62450);
+ dp->~ee62450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62450(Test_ee62450, "ee62450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62450C1Ev();
+extern void _ZN7ee62450D1Ev();
+Name_Map name_map_ee62450[] = {
+ NSPAIR(_ZN7ee62450C1Ev),
+ NSPAIR(_ZN7ee62450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee62450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62450[];
+extern void _ZN7ee624503barEv();
+extern void _ZN7ee624503fooEv();
+static VTBL_ENTRY vtc_ee62450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62450[0]),
+ (VTBL_ENTRY)&_ZN7ee624503barEv,
+ (VTBL_ENTRY)&_ZN7ee624503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee62450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee62450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee62450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee62450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62450[] = {
+ {&(_ZTV7ee62450[3]), 3,5},
+ {&(_tg__ZTV6dd2450__7ee62450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee62450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee62450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62450[];
+extern VTBL_ENTRY _ZTV7ee62450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62450[];
+Class_Descriptor cd_ee62450 = { "ee62450", // class name
+ bases_ee62450, 4,
+ &(vtc_ee62450[0]), // expected_vtbl_contents
+ &(vtt_ee62450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72450 : virtual dd2450 {
+ int e;
+ virtual void foo(); // _ZN7ee724503fooEv
+ virtual void bar(); // _ZN7ee724503barEv
+ ~ee72450(); // tgen
+ ee72450(); // tgen
+};
+//SIG(1 ee72450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72450 ::foo(){vfunc_called(this, "_ZN7ee724503fooEv");}
+void ee72450 ::bar(){vfunc_called(this, "_ZN7ee724503barEv");}
+ee72450 ::~ee72450(){ note_dtor("ee72450", this);} // tgen
+ee72450 ::ee72450(){ note_ctor("ee72450", this);} // tgen
+
+static void Test_ee72450()
+{
+ extern Class_Descriptor cd_ee72450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72450, buf);
+ ee72450 *dp, &lv = *(dp=new (buf) ee72450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd2450*), ABISELECT(36,24), "ee72450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd2450*), ABISELECT(16,8), "ee72450");
+ check_base_class_offset(lv, (cc450*)(dd2450*), ABISELECT(16,8), "ee72450");
+ check_base_class_offset(lv, (dd2450*), ABISELECT(16,8), "ee72450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72450.e");
+ test_class_info(&lv, &cd_ee72450);
+ dp->~ee72450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72450(Test_ee72450, "ee72450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72450C1Ev();
+extern void _ZN7ee72450D1Ev();
+Name_Map name_map_ee72450[] = {
+ NSPAIR(_ZN7ee72450C1Ev),
+ NSPAIR(_ZN7ee72450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd2450;
+extern VTBL_ENTRY _ZTI6dd2450[];
+extern VTBL_ENTRY _ZTV6dd2450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2450[];
+static Base_Class bases_ee72450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72450[];
+extern void _ZN7ee724503fooEv();
+extern void _ZN7ee724503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee724503barEv,_ZTv0_n16_N7ee724503barEv)();
+extern void ABISELECT(_ZThn16_N7ee724503barEv,_ZThn8_N7ee724503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee724503fooEv,_ZTv0_n20_N7ee724503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724503fooEv,_ZThn8_N7ee724503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72450[0]),
+ (VTBL_ENTRY)&_ZN7ee724503fooEv,
+ (VTBL_ENTRY)&_ZN7ee724503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724503barEv,_ZTv0_n16_N7ee724503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee724503fooEv,_ZTv0_n20_N7ee724503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72450[];
+extern void _ZN5cc4503barEv();
+extern void _ZN6dd24503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2450__7ee72450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+ (VTBL_ENTRY)&_ZN6dd24503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd2450__7ee72450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd2450__7ee72450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72450[] = {
+ {&(_ZTV7ee72450[4]), 4,13},
+ {&(_ZTV7ee72450[11]), 11,13},
+ {&(_tg__ZTV6dd2450__7ee72450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd2450__7ee72450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd2450__7ee72450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72450[];
+extern VTBL_ENTRY _ZTV7ee72450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72450[];
+static VTBL_ENTRY alt_thunk_names206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee724503fooEv,_ZTv0_n20_N7ee724503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724503fooEv,_ZThn8_N7ee724503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724503barEv,_ZTv0_n16_N7ee724503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724503barEv,_ZThn8_N7ee724503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72450 = { "ee72450", // class name
+ bases_ee72450, 4,
+ &(vtc_ee72450[0]), // expected_vtbl_contents
+ &(vtt_ee72450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72450),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3450 : virtual cc450 {
+ int d;
+ virtual void foo(); // _ZN6dd34503fooEv
+ ~dd3450(); // tgen
+ dd3450(); // tgen
+};
+//SIG(-1 dd3450) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3450 ::foo(){vfunc_called(this, "_ZN6dd34503fooEv");}
+dd3450 ::~dd3450(){ note_dtor("dd3450", this);} // tgen
+dd3450 ::dd3450(){ note_ctor("dd3450", this);} // tgen
+
+static void Test_dd3450()
+{
+ extern Class_Descriptor cd_dd3450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3450, buf);
+ dd3450 *dp, &lv = *(dp=new (buf) dd3450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,20), "dd3450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,8), "dd3450");
+ check_base_class_offset(lv, (cc450*), ABISELECT(16,8), "dd3450");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3450.d");
+ test_class_info(&lv, &cd_dd3450);
+ dp->~dd3450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3450(Test_dd3450, "dd3450", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3450C1Ev();
+extern void _ZN6dd3450D1Ev();
+Name_Map name_map_dd3450[] = {
+ NSPAIR(_ZN6dd3450C1Ev),
+ NSPAIR(_ZN6dd3450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd3450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern void _ZN6dd34503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_dd3450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd3450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3450[] = {
+ {&(_ZTV6dd3450[4]), 4,10},
+ {&(_ZTV6dd3450[9]), 9,10},
+ {&(_tg__ZTV5cc450__6dd3450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd3450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+Class_Descriptor cd_dd3450 = { "dd3450", // class name
+ bases_dd3450, 3,
+ &(vtc_dd3450[0]), // expected_vtbl_contents
+ &(vtt_dd3450[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3450),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03450 : dd3450 {
+ int e;
+ ~ee03450(); // tgen
+ ee03450(); // tgen
+};
+//SIG(1 ee03450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03450 ::~ee03450(){ note_dtor("ee03450", this);} // tgen
+ee03450 ::ee03450(){ note_ctor("ee03450", this);} // tgen
+
+static void Test_ee03450()
+{
+ extern Class_Descriptor cd_ee03450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03450, buf);
+ ee03450 *dp, &lv = *(dp=new (buf) ee03450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee03450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee03450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(16,12), "ee03450");
+ check_base_class_offset(lv, (dd3450*), 0, "ee03450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03450.e");
+ test_class_info(&lv, &cd_ee03450);
+ dp->~ee03450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03450(Test_ee03450, "ee03450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03450C1Ev();
+extern void _ZN7ee03450D1Ev();
+Name_Map name_map_ee03450[] = {
+ NSPAIR(_ZN7ee03450C1Ev),
+ NSPAIR(_ZN7ee03450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee03450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03450[];
+extern void _ZN6dd34503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee03450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee03450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee03450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee03450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee03450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee03450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03450[] = {
+ {&(_ZTV7ee03450[4]), 4,10},
+ {&(_tg__ZTV6dd3450__7ee03450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee03450[4]), 4,5},
+ {&(_ZTV7ee03450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee03450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee03450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03450[];
+extern VTBL_ENTRY _ZTV7ee03450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03450[];
+Class_Descriptor cd_ee03450 = { "ee03450", // class name
+ bases_ee03450, 4,
+ &(vtc_ee03450[0]), // expected_vtbl_contents
+ &(vtt_ee03450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13450 : virtual dd3450 {
+ int e;
+ ~ee13450(); // tgen
+ ee13450(); // tgen
+};
+//SIG(1 ee13450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13450 ::~ee13450(){ note_dtor("ee13450", this);} // tgen
+ee13450 ::ee13450(){ note_ctor("ee13450", this);} // tgen
+
+static void Test_ee13450()
+{
+ extern Class_Descriptor cd_ee13450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13450, buf);
+ ee13450 *dp, &lv = *(dp=new (buf) ee13450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee13450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee13450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(32,16), "ee13450");
+ check_base_class_offset(lv, (dd3450*), ABISELECT(16,8), "ee13450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13450.e");
+ test_class_info(&lv, &cd_ee13450);
+ dp->~ee13450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13450(Test_ee13450, "ee13450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13450C1Ev();
+extern void _ZN7ee13450D1Ev();
+Name_Map name_map_ee13450[] = {
+ NSPAIR(_ZN7ee13450C1Ev),
+ NSPAIR(_ZN7ee13450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee13450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee13450[];
+extern void _ZN6dd34503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee13450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13450[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee13450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee13450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee13450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee13450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee13450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13450[] = {
+ {&(_ZTV7ee13450[5]), 5,16},
+ {&(_ZTV7ee13450[10]), 10,16},
+ {&(_ZTV7ee13450[15]), 15,16},
+ {&(_tg__ZTV6dd3450__7ee13450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee13450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee13450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee13450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13450[];
+extern VTBL_ENTRY _ZTV7ee13450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13450[];
+Class_Descriptor cd_ee13450 = { "ee13450", // class name
+ bases_ee13450, 4,
+ &(vtc_ee13450[0]), // expected_vtbl_contents
+ &(vtt_ee13450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13450),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23450 : dd3450 {
+ int e;
+ virtual void foo(); // _ZN7ee234503fooEv
+ ~ee23450(); // tgen
+ ee23450(); // tgen
+};
+//SIG(1 ee23450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23450 ::foo(){vfunc_called(this, "_ZN7ee234503fooEv");}
+ee23450 ::~ee23450(){ note_dtor("ee23450", this);} // tgen
+ee23450 ::ee23450(){ note_ctor("ee23450", this);} // tgen
+
+static void Test_ee23450()
+{
+ extern Class_Descriptor cd_ee23450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23450, buf);
+ ee23450 *dp, &lv = *(dp=new (buf) ee23450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee23450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee23450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(16,12), "ee23450");
+ check_base_class_offset(lv, (dd3450*), 0, "ee23450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23450.e");
+ test_class_info(&lv, &cd_ee23450);
+ dp->~ee23450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23450(Test_ee23450, "ee23450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23450C1Ev();
+extern void _ZN7ee23450D1Ev();
+Name_Map name_map_ee23450[] = {
+ NSPAIR(_ZN7ee23450C1Ev),
+ NSPAIR(_ZN7ee23450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee23450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23450[];
+extern void _ZN7ee234503fooEv();
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee23450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23450[0]),
+ (VTBL_ENTRY)&_ZN7ee234503fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee23450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee23450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee23450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee23450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee23450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23450[] = {
+ {&(_ZTV7ee23450[4]), 4,10},
+ {&(_tg__ZTV6dd3450__7ee23450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee23450[4]), 4,5},
+ {&(_ZTV7ee23450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee23450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee23450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23450[];
+extern VTBL_ENTRY _ZTV7ee23450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23450[];
+Class_Descriptor cd_ee23450 = { "ee23450", // class name
+ bases_ee23450, 4,
+ &(vtc_ee23450[0]), // expected_vtbl_contents
+ &(vtt_ee23450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33450 : virtual dd3450 {
+ int e;
+ virtual void foo(); // _ZN7ee334503fooEv
+ ~ee33450(); // tgen
+ ee33450(); // tgen
+};
+//SIG(1 ee33450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33450 ::foo(){vfunc_called(this, "_ZN7ee334503fooEv");}
+ee33450 ::~ee33450(){ note_dtor("ee33450", this);} // tgen
+ee33450 ::ee33450(){ note_ctor("ee33450", this);} // tgen
+
+static void Test_ee33450()
+{
+ extern Class_Descriptor cd_ee33450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33450, buf);
+ ee33450 *dp, &lv = *(dp=new (buf) ee33450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee33450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee33450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(32,16), "ee33450");
+ check_base_class_offset(lv, (dd3450*), ABISELECT(16,8), "ee33450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33450.e");
+ test_class_info(&lv, &cd_ee33450);
+ dp->~ee33450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33450(Test_ee33450, "ee33450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33450C1Ev();
+extern void _ZN7ee33450D1Ev();
+Name_Map name_map_ee33450[] = {
+ NSPAIR(_ZN7ee33450C1Ev),
+ NSPAIR(_ZN7ee33450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee33450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee33450[];
+extern void _ZN7ee334503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee334503fooEv,_ZTv0_n20_N7ee334503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334503fooEv,_ZThn8_N7ee334503fooEv)() __attribute__((weak));
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY vtc_ee33450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33450[0]),
+ (VTBL_ENTRY)&_ZN7ee334503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee334503fooEv,_ZTv0_n20_N7ee334503fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee33450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee33450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee33450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee33450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee33450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33450[] = {
+ {&(_ZTV7ee33450[5]), 5,17},
+ {&(_ZTV7ee33450[11]), 11,17},
+ {&(_ZTV7ee33450[16]), 16,17},
+ {&(_tg__ZTV6dd3450__7ee33450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee33450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee33450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee33450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33450[];
+extern VTBL_ENTRY _ZTV7ee33450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33450[];
+static VTBL_ENTRY alt_thunk_names207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee334503fooEv,_ZTv0_n20_N7ee334503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334503fooEv,_ZThn8_N7ee334503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33450 = { "ee33450", // class name
+ bases_ee33450, 4,
+ &(vtc_ee33450[0]), // expected_vtbl_contents
+ &(vtt_ee33450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33450),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43450 : dd3450 {
+ int e;
+ virtual void bar(); // _ZN7ee434503barEv
+ ~ee43450(); // tgen
+ ee43450(); // tgen
+};
+//SIG(1 ee43450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43450 ::bar(){vfunc_called(this, "_ZN7ee434503barEv");}
+ee43450 ::~ee43450(){ note_dtor("ee43450", this);} // tgen
+ee43450 ::ee43450(){ note_ctor("ee43450", this);} // tgen
+
+static void Test_ee43450()
+{
+ extern Class_Descriptor cd_ee43450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43450, buf);
+ ee43450 *dp, &lv = *(dp=new (buf) ee43450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee43450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee43450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(16,12), "ee43450");
+ check_base_class_offset(lv, (dd3450*), 0, "ee43450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43450.e");
+ test_class_info(&lv, &cd_ee43450);
+ dp->~ee43450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43450(Test_ee43450, "ee43450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43450C1Ev();
+extern void _ZN7ee43450D1Ev();
+Name_Map name_map_ee43450[] = {
+ NSPAIR(_ZN7ee43450C1Ev),
+ NSPAIR(_ZN7ee43450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee43450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43450[];
+extern void _ZN6dd34503fooEv();
+extern void _ZN7ee434503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee434503barEv,_ZTv0_n16_N7ee434503barEv)();
+extern void ABISELECT(_ZThn16_N7ee434503barEv,_ZThn12_N7ee434503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+ (VTBL_ENTRY)&_ZN7ee434503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434503barEv,_ZTv0_n16_N7ee434503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee43450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee43450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee43450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee43450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43450[] = {
+ {&(_ZTV7ee43450[4]), 4,11},
+ {&(_tg__ZTV6dd3450__7ee43450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee43450[4]), 4,5},
+ {&(_ZTV7ee43450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee43450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee43450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43450[];
+extern VTBL_ENTRY _ZTV7ee43450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43450[];
+static VTBL_ENTRY alt_thunk_names208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434503barEv,_ZTv0_n16_N7ee434503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434503barEv,_ZThn12_N7ee434503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43450 = { "ee43450", // class name
+ bases_ee43450, 4,
+ &(vtc_ee43450[0]), // expected_vtbl_contents
+ &(vtt_ee43450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53450 : virtual dd3450 {
+ int e;
+ virtual void bar(); // _ZN7ee534503barEv
+ ~ee53450(); // tgen
+ ee53450(); // tgen
+};
+//SIG(1 ee53450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53450 ::bar(){vfunc_called(this, "_ZN7ee534503barEv");}
+ee53450 ::~ee53450(){ note_dtor("ee53450", this);} // tgen
+ee53450 ::ee53450(){ note_ctor("ee53450", this);} // tgen
+
+static void Test_ee53450()
+{
+ extern Class_Descriptor cd_ee53450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53450, buf);
+ ee53450 *dp, &lv = *(dp=new (buf) ee53450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee53450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee53450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(32,16), "ee53450");
+ check_base_class_offset(lv, (dd3450*), ABISELECT(16,8), "ee53450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53450.e");
+ test_class_info(&lv, &cd_ee53450);
+ dp->~ee53450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53450(Test_ee53450, "ee53450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53450C1Ev();
+extern void _ZN7ee53450D1Ev();
+Name_Map name_map_ee53450[] = {
+ NSPAIR(_ZN7ee53450C1Ev),
+ NSPAIR(_ZN7ee53450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee53450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee53450[];
+extern void _ZN7ee534503barEv();
+extern void _ZN6dd34503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee534503barEv,_ZTv0_n16_N7ee534503barEv)();
+extern void ABISELECT(_ZThn32_N7ee534503barEv,_ZThn16_N7ee534503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53450[0]),
+ (VTBL_ENTRY)&_ZN7ee534503barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534503barEv,_ZTv0_n16_N7ee534503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee53450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee53450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee53450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee53450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53450[] = {
+ {&(_ZTV7ee53450[5]), 5,17},
+ {&(_ZTV7ee53450[11]), 11,17},
+ {&(_ZTV7ee53450[16]), 16,17},
+ {&(_tg__ZTV6dd3450__7ee53450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee53450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee53450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee53450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53450[];
+extern VTBL_ENTRY _ZTV7ee53450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53450[];
+static VTBL_ENTRY alt_thunk_names209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534503barEv,_ZTv0_n16_N7ee534503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534503barEv,_ZThn16_N7ee534503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53450 = { "ee53450", // class name
+ bases_ee53450, 4,
+ &(vtc_ee53450[0]), // expected_vtbl_contents
+ &(vtt_ee53450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53450),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63450 : dd3450 {
+ int e;
+ virtual void foo(); // _ZN7ee634503fooEv
+ virtual void bar(); // _ZN7ee634503barEv
+ ~ee63450(); // tgen
+ ee63450(); // tgen
+};
+//SIG(1 ee63450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63450 ::foo(){vfunc_called(this, "_ZN7ee634503fooEv");}
+void ee63450 ::bar(){vfunc_called(this, "_ZN7ee634503barEv");}
+ee63450 ::~ee63450(){ note_dtor("ee63450", this);} // tgen
+ee63450 ::ee63450(){ note_ctor("ee63450", this);} // tgen
+
+static void Test_ee63450()
+{
+ extern Class_Descriptor cd_ee63450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63450, buf);
+ ee63450 *dp, &lv = *(dp=new (buf) ee63450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee63450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee63450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(16,12), "ee63450");
+ check_base_class_offset(lv, (dd3450*), 0, "ee63450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63450.e");
+ test_class_info(&lv, &cd_ee63450);
+ dp->~ee63450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63450(Test_ee63450, "ee63450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63450C1Ev();
+extern void _ZN7ee63450D1Ev();
+Name_Map name_map_ee63450[] = {
+ NSPAIR(_ZN7ee63450C1Ev),
+ NSPAIR(_ZN7ee63450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee63450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63450[];
+extern void _ZN7ee634503fooEv();
+extern void _ZN7ee634503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee634503barEv,_ZTv0_n16_N7ee634503barEv)();
+extern void ABISELECT(_ZThn16_N7ee634503barEv,_ZThn12_N7ee634503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63450[0]),
+ (VTBL_ENTRY)&_ZN7ee634503fooEv,
+ (VTBL_ENTRY)&_ZN7ee634503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634503barEv,_ZTv0_n16_N7ee634503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee63450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee63450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee63450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee63450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63450[] = {
+ {&(_ZTV7ee63450[4]), 4,11},
+ {&(_tg__ZTV6dd3450__7ee63450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee63450[4]), 4,5},
+ {&(_ZTV7ee63450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee63450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee63450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63450[];
+extern VTBL_ENTRY _ZTV7ee63450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63450[];
+static VTBL_ENTRY alt_thunk_names210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634503barEv,_ZTv0_n16_N7ee634503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634503barEv,_ZThn12_N7ee634503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63450 = { "ee63450", // class name
+ bases_ee63450, 4,
+ &(vtc_ee63450[0]), // expected_vtbl_contents
+ &(vtt_ee63450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73450 : virtual dd3450 {
+ int e;
+ virtual void foo(); // _ZN7ee734503fooEv
+ virtual void bar(); // _ZN7ee734503barEv
+ ~ee73450(); // tgen
+ ee73450(); // tgen
+};
+//SIG(1 ee73450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73450 ::foo(){vfunc_called(this, "_ZN7ee734503fooEv");}
+void ee73450 ::bar(){vfunc_called(this, "_ZN7ee734503barEv");}
+ee73450 ::~ee73450(){ note_dtor("ee73450", this);} // tgen
+ee73450 ::ee73450(){ note_ctor("ee73450", this);} // tgen
+
+static void Test_ee73450()
+{
+ extern Class_Descriptor cd_ee73450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73450, buf);
+ ee73450 *dp, &lv = *(dp=new (buf) ee73450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee73450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee73450");
+ check_base_class_offset(lv, (cc450*)(dd3450*), ABISELECT(32,16), "ee73450");
+ check_base_class_offset(lv, (dd3450*), ABISELECT(16,8), "ee73450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73450.e");
+ test_class_info(&lv, &cd_ee73450);
+ dp->~ee73450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73450(Test_ee73450, "ee73450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73450C1Ev();
+extern void _ZN7ee73450D1Ev();
+Name_Map name_map_ee73450[] = {
+ NSPAIR(_ZN7ee73450C1Ev),
+ NSPAIR(_ZN7ee73450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd3450;
+extern VTBL_ENTRY _ZTI6dd3450[];
+extern VTBL_ENTRY _ZTV6dd3450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3450[];
+static Base_Class bases_ee73450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3450, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73450[];
+extern void _ZN7ee734503fooEv();
+extern void _ZN7ee734503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee734503fooEv,_ZTv0_n20_N7ee734503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734503fooEv,_ZThn8_N7ee734503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734503barEv,_ZTv0_n16_N7ee734503barEv)();
+extern void ABISELECT(_ZThn32_N7ee734503barEv,_ZThn16_N7ee734503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73450[0]),
+ (VTBL_ENTRY)&_ZN7ee734503fooEv,
+ (VTBL_ENTRY)&_ZN7ee734503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee734503fooEv,_ZTv0_n20_N7ee734503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734503barEv,_ZTv0_n16_N7ee734503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73450[];
+extern void _ZN6dd34503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3450__7ee73450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN6dd34503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd3450__7ee73450[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee73450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee73450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73450[] = {
+ {&(_ZTV7ee73450[5]), 5,18},
+ {&(_ZTV7ee73450[12]), 12,18},
+ {&(_ZTV7ee73450[17]), 17,18},
+ {&(_tg__ZTV6dd3450__7ee73450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd3450__7ee73450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee73450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee73450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73450[];
+extern VTBL_ENTRY _ZTV7ee73450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73450[];
+static VTBL_ENTRY alt_thunk_names211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734503barEv,_ZTv0_n16_N7ee734503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734503barEv,_ZThn16_N7ee734503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee734503fooEv,_ZTv0_n20_N7ee734503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734503fooEv,_ZThn8_N7ee734503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73450 = { "ee73450", // class name
+ bases_ee73450, 4,
+ &(vtc_ee73450[0]), // expected_vtbl_contents
+ &(vtt_ee73450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73450),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4450 : cc450 {
+ int d;
+ virtual void bar(); // _ZN6dd44503barEv
+ ~dd4450(); // tgen
+ dd4450(); // tgen
+};
+//SIG(-1 dd4450) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4450 ::bar(){vfunc_called(this, "_ZN6dd44503barEv");}
+dd4450 ::~dd4450(){ note_dtor("dd4450", this);} // tgen
+dd4450 ::dd4450(){ note_ctor("dd4450", this);} // tgen
+
+static void Test_dd4450()
+{
+ extern Class_Descriptor cd_dd4450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4450, buf);
+ dd4450 *dp, &lv = *(dp=new (buf) dd4450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(20,16), "dd4450");
+ check_base_class_offset(lv, (bb50*)(cc450*), 0, "dd4450");
+ check_base_class_offset(lv, (cc450*), 0, "dd4450");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4450.d");
+ test_class_info(&lv, &cd_dd4450);
+ dp->~dd4450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4450(Test_dd4450, "dd4450", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4450C1Ev();
+extern void _ZN6dd4450D1Ev();
+Name_Map name_map_dd4450[] = {
+ NSPAIR(_ZN6dd4450C1Ev),
+ NSPAIR(_ZN6dd4450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd4450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY vtc_dd4450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd4450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd4450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4450[] = {
+ {&(_ZTV6dd4450[3]), 3,4},
+ {&(_tg__ZTV5cc450__6dd4450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd4450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+Class_Descriptor cd_dd4450 = { "dd4450", // class name
+ bases_dd4450, 3,
+ &(vtc_dd4450[0]), // expected_vtbl_contents
+ &(vtt_dd4450[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4450),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04450 : dd4450 {
+ int e;
+ ~ee04450(); // tgen
+ ee04450(); // tgen
+};
+//SIG(1 ee04450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04450 ::~ee04450(){ note_dtor("ee04450", this);} // tgen
+ee04450 ::ee04450(){ note_ctor("ee04450", this);} // tgen
+
+static void Test_ee04450()
+{
+ extern Class_Descriptor cd_ee04450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04450, buf);
+ ee04450 *dp, &lv = *(dp=new (buf) ee04450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(24,20), "ee04450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), 0, "ee04450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), 0, "ee04450");
+ check_base_class_offset(lv, (dd4450*), 0, "ee04450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04450.e");
+ test_class_info(&lv, &cd_ee04450);
+ dp->~ee04450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04450(Test_ee04450, "ee04450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04450C1Ev();
+extern void _ZN7ee04450D1Ev();
+Name_Map name_map_ee04450[] = {
+ NSPAIR(_ZN7ee04450C1Ev),
+ NSPAIR(_ZN7ee04450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee04450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY vtc_ee04450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee04450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee04450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee04450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee04450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04450[] = {
+ {&(_ZTV7ee04450[3]), 3,4},
+ {&(_tg__ZTV6dd4450__7ee04450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee04450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee04450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04450[];
+extern VTBL_ENTRY _ZTV7ee04450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04450[];
+Class_Descriptor cd_ee04450 = { "ee04450", // class name
+ bases_ee04450, 4,
+ &(vtc_ee04450[0]), // expected_vtbl_contents
+ &(vtt_ee04450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14450 : virtual dd4450 {
+ int e;
+ ~ee14450(); // tgen
+ ee14450(); // tgen
+};
+//SIG(1 ee14450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14450 ::~ee14450(){ note_dtor("ee14450", this);} // tgen
+ee14450 ::ee14450(){ note_ctor("ee14450", this);} // tgen
+
+static void Test_ee14450()
+{
+ extern Class_Descriptor cd_ee14450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14450, buf);
+ ee14450 *dp, &lv = *(dp=new (buf) ee14450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(36,24), "ee14450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), ABISELECT(16,8), "ee14450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), ABISELECT(16,8), "ee14450");
+ check_base_class_offset(lv, (dd4450*), ABISELECT(16,8), "ee14450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14450.e");
+ test_class_info(&lv, &cd_ee14450);
+ dp->~ee14450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14450(Test_ee14450, "ee14450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14450C1Ev();
+extern void _ZN7ee14450D1Ev();
+Name_Map name_map_ee14450[] = {
+ NSPAIR(_ZN7ee14450C1Ev),
+ NSPAIR(_ZN7ee14450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee14450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY vtc_ee14450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14450[0]),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee14450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee14450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee14450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee14450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14450[] = {
+ {&(_ZTV7ee14450[4]), 4,9},
+ {&(_ZTV7ee14450[8]), 8,9},
+ {&(_tg__ZTV6dd4450__7ee14450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee14450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee14450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14450[];
+extern VTBL_ENTRY _ZTV7ee14450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14450[];
+Class_Descriptor cd_ee14450 = { "ee14450", // class name
+ bases_ee14450, 4,
+ &(vtc_ee14450[0]), // expected_vtbl_contents
+ &(vtt_ee14450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14450),9, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24450 : dd4450 {
+ int e;
+ virtual void foo(); // _ZN7ee244503fooEv
+ ~ee24450(); // tgen
+ ee24450(); // tgen
+};
+//SIG(1 ee24450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24450 ::foo(){vfunc_called(this, "_ZN7ee244503fooEv");}
+ee24450 ::~ee24450(){ note_dtor("ee24450", this);} // tgen
+ee24450 ::ee24450(){ note_ctor("ee24450", this);} // tgen
+
+static void Test_ee24450()
+{
+ extern Class_Descriptor cd_ee24450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24450, buf);
+ ee24450 *dp, &lv = *(dp=new (buf) ee24450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(24,20), "ee24450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), 0, "ee24450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), 0, "ee24450");
+ check_base_class_offset(lv, (dd4450*), 0, "ee24450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24450.e");
+ test_class_info(&lv, &cd_ee24450);
+ dp->~ee24450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24450(Test_ee24450, "ee24450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24450C1Ev();
+extern void _ZN7ee24450D1Ev();
+Name_Map name_map_ee24450[] = {
+ NSPAIR(_ZN7ee24450C1Ev),
+ NSPAIR(_ZN7ee24450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee24450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24450[];
+extern void _ZN6dd44503barEv();
+extern void _ZN7ee244503fooEv();
+static VTBL_ENTRY vtc_ee24450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+ (VTBL_ENTRY)&_ZN7ee244503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee24450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee24450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee24450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24450[] = {
+ {&(_ZTV7ee24450[3]), 3,5},
+ {&(_tg__ZTV6dd4450__7ee24450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee24450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee24450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24450[];
+extern VTBL_ENTRY _ZTV7ee24450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24450[];
+Class_Descriptor cd_ee24450 = { "ee24450", // class name
+ bases_ee24450, 4,
+ &(vtc_ee24450[0]), // expected_vtbl_contents
+ &(vtt_ee24450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34450 : virtual dd4450 {
+ int e;
+ virtual void foo(); // _ZN7ee344503fooEv
+ ~ee34450(); // tgen
+ ee34450(); // tgen
+};
+//SIG(1 ee34450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34450 ::foo(){vfunc_called(this, "_ZN7ee344503fooEv");}
+ee34450 ::~ee34450(){ note_dtor("ee34450", this);} // tgen
+ee34450 ::ee34450(){ note_ctor("ee34450", this);} // tgen
+
+static void Test_ee34450()
+{
+ extern Class_Descriptor cd_ee34450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34450, buf);
+ ee34450 *dp, &lv = *(dp=new (buf) ee34450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(36,24), "ee34450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), ABISELECT(16,8), "ee34450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), ABISELECT(16,8), "ee34450");
+ check_base_class_offset(lv, (dd4450*), ABISELECT(16,8), "ee34450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34450.e");
+ test_class_info(&lv, &cd_ee34450);
+ dp->~ee34450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34450(Test_ee34450, "ee34450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34450C1Ev();
+extern void _ZN7ee34450D1Ev();
+Name_Map name_map_ee34450[] = {
+ NSPAIR(_ZN7ee34450C1Ev),
+ NSPAIR(_ZN7ee34450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee34450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34450[];
+extern void _ZN7ee344503fooEv();
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY vtc_ee34450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34450[0]),
+ (VTBL_ENTRY)&_ZN7ee344503fooEv,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee34450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee34450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee34450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee34450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34450[] = {
+ {&(_ZTV7ee34450[4]), 4,10},
+ {&(_ZTV7ee34450[9]), 9,10},
+ {&(_tg__ZTV6dd4450__7ee34450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee34450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee34450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34450[];
+extern VTBL_ENTRY _ZTV7ee34450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34450[];
+Class_Descriptor cd_ee34450 = { "ee34450", // class name
+ bases_ee34450, 4,
+ &(vtc_ee34450[0]), // expected_vtbl_contents
+ &(vtt_ee34450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44450 : dd4450 {
+ int e;
+ virtual void bar(); // _ZN7ee444503barEv
+ ~ee44450(); // tgen
+ ee44450(); // tgen
+};
+//SIG(1 ee44450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44450 ::bar(){vfunc_called(this, "_ZN7ee444503barEv");}
+ee44450 ::~ee44450(){ note_dtor("ee44450", this);} // tgen
+ee44450 ::ee44450(){ note_ctor("ee44450", this);} // tgen
+
+static void Test_ee44450()
+{
+ extern Class_Descriptor cd_ee44450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44450, buf);
+ ee44450 *dp, &lv = *(dp=new (buf) ee44450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(24,20), "ee44450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), 0, "ee44450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), 0, "ee44450");
+ check_base_class_offset(lv, (dd4450*), 0, "ee44450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44450.e");
+ test_class_info(&lv, &cd_ee44450);
+ dp->~ee44450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44450(Test_ee44450, "ee44450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44450C1Ev();
+extern void _ZN7ee44450D1Ev();
+Name_Map name_map_ee44450[] = {
+ NSPAIR(_ZN7ee44450C1Ev),
+ NSPAIR(_ZN7ee44450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee44450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44450[];
+extern void _ZN7ee444503barEv();
+static VTBL_ENTRY vtc_ee44450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44450[0]),
+ (VTBL_ENTRY)&_ZN7ee444503barEv,
+};
+extern VTBL_ENTRY _ZTV7ee44450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee44450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee44450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee44450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44450[] = {
+ {&(_ZTV7ee44450[3]), 3,4},
+ {&(_tg__ZTV6dd4450__7ee44450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee44450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee44450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44450[];
+extern VTBL_ENTRY _ZTV7ee44450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44450[];
+Class_Descriptor cd_ee44450 = { "ee44450", // class name
+ bases_ee44450, 4,
+ &(vtc_ee44450[0]), // expected_vtbl_contents
+ &(vtt_ee44450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44450),4, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54450 : virtual dd4450 {
+ int e;
+ virtual void bar(); // _ZN7ee544503barEv
+ ~ee54450(); // tgen
+ ee54450(); // tgen
+};
+//SIG(1 ee54450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54450 ::bar(){vfunc_called(this, "_ZN7ee544503barEv");}
+ee54450 ::~ee54450(){ note_dtor("ee54450", this);} // tgen
+ee54450 ::ee54450(){ note_ctor("ee54450", this);} // tgen
+
+static void Test_ee54450()
+{
+ extern Class_Descriptor cd_ee54450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54450, buf);
+ ee54450 *dp, &lv = *(dp=new (buf) ee54450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(36,24), "ee54450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), ABISELECT(16,8), "ee54450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), ABISELECT(16,8), "ee54450");
+ check_base_class_offset(lv, (dd4450*), ABISELECT(16,8), "ee54450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54450.e");
+ test_class_info(&lv, &cd_ee54450);
+ dp->~ee54450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54450(Test_ee54450, "ee54450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54450C1Ev();
+extern void _ZN7ee54450D1Ev();
+Name_Map name_map_ee54450[] = {
+ NSPAIR(_ZN7ee54450C1Ev),
+ NSPAIR(_ZN7ee54450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee54450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54450[];
+extern void _ZN7ee544503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544503barEv,_ZTv0_n16_N7ee544503barEv)();
+extern void ABISELECT(_ZThn16_N7ee544503barEv,_ZThn8_N7ee544503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54450[0]),
+ (VTBL_ENTRY)&_ZN7ee544503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544503barEv,_ZTv0_n16_N7ee544503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee54450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee54450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee54450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54450[] = {
+ {&(_ZTV7ee54450[4]), 4,10},
+ {&(_ZTV7ee54450[9]), 9,10},
+ {&(_tg__ZTV6dd4450__7ee54450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee54450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee54450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54450[];
+extern VTBL_ENTRY _ZTV7ee54450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54450[];
+static VTBL_ENTRY alt_thunk_names212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544503barEv,_ZTv0_n16_N7ee544503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544503barEv,_ZThn8_N7ee544503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54450 = { "ee54450", // class name
+ bases_ee54450, 4,
+ &(vtc_ee54450[0]), // expected_vtbl_contents
+ &(vtt_ee54450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64450 : dd4450 {
+ int e;
+ virtual void foo(); // _ZN7ee644503fooEv
+ virtual void bar(); // _ZN7ee644503barEv
+ ~ee64450(); // tgen
+ ee64450(); // tgen
+};
+//SIG(1 ee64450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64450 ::foo(){vfunc_called(this, "_ZN7ee644503fooEv");}
+void ee64450 ::bar(){vfunc_called(this, "_ZN7ee644503barEv");}
+ee64450 ::~ee64450(){ note_dtor("ee64450", this);} // tgen
+ee64450 ::ee64450(){ note_ctor("ee64450", this);} // tgen
+
+static void Test_ee64450()
+{
+ extern Class_Descriptor cd_ee64450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64450, buf);
+ ee64450 *dp, &lv = *(dp=new (buf) ee64450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(24,20), "ee64450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), 0, "ee64450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), 0, "ee64450");
+ check_base_class_offset(lv, (dd4450*), 0, "ee64450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64450.e");
+ test_class_info(&lv, &cd_ee64450);
+ dp->~ee64450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64450(Test_ee64450, "ee64450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64450C1Ev();
+extern void _ZN7ee64450D1Ev();
+Name_Map name_map_ee64450[] = {
+ NSPAIR(_ZN7ee64450C1Ev),
+ NSPAIR(_ZN7ee64450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee64450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64450[];
+extern void _ZN7ee644503barEv();
+extern void _ZN7ee644503fooEv();
+static VTBL_ENTRY vtc_ee64450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64450[0]),
+ (VTBL_ENTRY)&_ZN7ee644503barEv,
+ (VTBL_ENTRY)&_ZN7ee644503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee64450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee64450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee64450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64450[] = {
+ {&(_ZTV7ee64450[3]), 3,5},
+ {&(_tg__ZTV6dd4450__7ee64450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee64450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee64450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64450[];
+extern VTBL_ENTRY _ZTV7ee64450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64450[];
+Class_Descriptor cd_ee64450 = { "ee64450", // class name
+ bases_ee64450, 4,
+ &(vtc_ee64450[0]), // expected_vtbl_contents
+ &(vtt_ee64450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74450 : virtual dd4450 {
+ int e;
+ virtual void foo(); // _ZN7ee744503fooEv
+ virtual void bar(); // _ZN7ee744503barEv
+ ~ee74450(); // tgen
+ ee74450(); // tgen
+};
+//SIG(1 ee74450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74450 ::foo(){vfunc_called(this, "_ZN7ee744503fooEv");}
+void ee74450 ::bar(){vfunc_called(this, "_ZN7ee744503barEv");}
+ee74450 ::~ee74450(){ note_dtor("ee74450", this);} // tgen
+ee74450 ::ee74450(){ note_ctor("ee74450", this);} // tgen
+
+static void Test_ee74450()
+{
+ extern Class_Descriptor cd_ee74450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74450, buf);
+ ee74450 *dp, &lv = *(dp=new (buf) ee74450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd4450*), ABISELECT(36,24), "ee74450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd4450*), ABISELECT(16,8), "ee74450");
+ check_base_class_offset(lv, (cc450*)(dd4450*), ABISELECT(16,8), "ee74450");
+ check_base_class_offset(lv, (dd4450*), ABISELECT(16,8), "ee74450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74450.e");
+ test_class_info(&lv, &cd_ee74450);
+ dp->~ee74450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74450(Test_ee74450, "ee74450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74450C1Ev();
+extern void _ZN7ee74450D1Ev();
+Name_Map name_map_ee74450[] = {
+ NSPAIR(_ZN7ee74450C1Ev),
+ NSPAIR(_ZN7ee74450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd4450;
+extern VTBL_ENTRY _ZTI6dd4450[];
+extern VTBL_ENTRY _ZTV6dd4450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4450[];
+static Base_Class bases_ee74450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4450, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74450[];
+extern void _ZN7ee744503fooEv();
+extern void _ZN7ee744503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee744503barEv,_ZTv0_n16_N7ee744503barEv)();
+extern void ABISELECT(_ZThn16_N7ee744503barEv,_ZThn8_N7ee744503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74450[0]),
+ (VTBL_ENTRY)&_ZN7ee744503fooEv,
+ (VTBL_ENTRY)&_ZN7ee744503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744503barEv,_ZTv0_n16_N7ee744503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74450[];
+extern void _ZN6dd44503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4450__7ee74450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4450[0]),
+ (VTBL_ENTRY)&_ZN6dd44503barEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd4450__7ee74450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd4450__7ee74450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74450[] = {
+ {&(_ZTV7ee74450[4]), 4,11},
+ {&(_ZTV7ee74450[10]), 10,11},
+ {&(_tg__ZTV6dd4450__7ee74450[3]), 3,4},
+ {&(_tg__ZTV5cc4506dd4450__7ee74450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd4450__7ee74450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74450[];
+extern VTBL_ENTRY _ZTV7ee74450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74450[];
+static VTBL_ENTRY alt_thunk_names213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744503barEv,_ZTv0_n16_N7ee744503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744503barEv,_ZThn8_N7ee744503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74450 = { "ee74450", // class name
+ bases_ee74450, 4,
+ &(vtc_ee74450[0]), // expected_vtbl_contents
+ &(vtt_ee74450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5450 : virtual cc450 {
+ int d;
+ virtual void bar(); // _ZN6dd54503barEv
+ ~dd5450(); // tgen
+ dd5450(); // tgen
+};
+//SIG(-1 dd5450) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5450 ::bar(){vfunc_called(this, "_ZN6dd54503barEv");}
+dd5450 ::~dd5450(){ note_dtor("dd5450", this);} // tgen
+dd5450 ::dd5450(){ note_ctor("dd5450", this);} // tgen
+
+static void Test_dd5450()
+{
+ extern Class_Descriptor cd_dd5450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5450, buf);
+ dd5450 *dp, &lv = *(dp=new (buf) dd5450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,20), "dd5450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,8), "dd5450");
+ check_base_class_offset(lv, (cc450*), ABISELECT(16,8), "dd5450");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5450.d");
+ test_class_info(&lv, &cd_dd5450);
+ dp->~dd5450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5450(Test_dd5450, "dd5450", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5450C1Ev();
+extern void _ZN6dd5450D1Ev();
+Name_Map name_map_dd5450[] = {
+ NSPAIR(_ZN6dd5450C1Ev),
+ NSPAIR(_ZN6dd5450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd5450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern void _ZN6dd54503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd5450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5450[] = {
+ {&(_ZTV6dd5450[4]), 4,10},
+ {&(_ZTV6dd5450[9]), 9,10},
+ {&(_tg__ZTV5cc450__6dd5450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd5450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static VTBL_ENTRY alt_thunk_names214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5450 = { "dd5450", // class name
+ bases_dd5450, 3,
+ &(vtc_dd5450[0]), // expected_vtbl_contents
+ &(vtt_dd5450[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5450),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05450 : dd5450 {
+ int e;
+ ~ee05450(); // tgen
+ ee05450(); // tgen
+};
+//SIG(1 ee05450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05450 ::~ee05450(){ note_dtor("ee05450", this);} // tgen
+ee05450 ::ee05450(){ note_ctor("ee05450", this);} // tgen
+
+static void Test_ee05450()
+{
+ extern Class_Descriptor cd_ee05450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05450, buf);
+ ee05450 *dp, &lv = *(dp=new (buf) ee05450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee05450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee05450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(16,12), "ee05450");
+ check_base_class_offset(lv, (dd5450*), 0, "ee05450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05450.e");
+ test_class_info(&lv, &cd_ee05450);
+ dp->~ee05450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05450(Test_ee05450, "ee05450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05450C1Ev();
+extern void _ZN7ee05450D1Ev();
+Name_Map name_map_ee05450[] = {
+ NSPAIR(_ZN7ee05450C1Ev),
+ NSPAIR(_ZN7ee05450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee05450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05450[];
+extern void _ZN6dd54503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee05450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee05450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee05450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee05450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05450[] = {
+ {&(_ZTV7ee05450[4]), 4,10},
+ {&(_tg__ZTV6dd5450__7ee05450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee05450[4]), 4,5},
+ {&(_ZTV7ee05450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee05450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee05450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05450[];
+extern VTBL_ENTRY _ZTV7ee05450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05450[];
+static VTBL_ENTRY alt_thunk_names215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05450 = { "ee05450", // class name
+ bases_ee05450, 4,
+ &(vtc_ee05450[0]), // expected_vtbl_contents
+ &(vtt_ee05450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15450 : virtual dd5450 {
+ int e;
+ ~ee15450(); // tgen
+ ee15450(); // tgen
+};
+//SIG(1 ee15450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15450 ::~ee15450(){ note_dtor("ee15450", this);} // tgen
+ee15450 ::ee15450(){ note_ctor("ee15450", this);} // tgen
+
+static void Test_ee15450()
+{
+ extern Class_Descriptor cd_ee15450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15450, buf);
+ ee15450 *dp, &lv = *(dp=new (buf) ee15450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee15450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee15450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(32,16), "ee15450");
+ check_base_class_offset(lv, (dd5450*), ABISELECT(16,8), "ee15450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15450.e");
+ test_class_info(&lv, &cd_ee15450);
+ dp->~ee15450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15450(Test_ee15450, "ee15450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15450C1Ev();
+extern void _ZN7ee15450D1Ev();
+Name_Map name_map_ee15450[] = {
+ NSPAIR(_ZN7ee15450C1Ev),
+ NSPAIR(_ZN7ee15450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee15450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee15450[];
+extern void _ZN6dd54503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15450[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee15450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee15450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee15450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee15450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15450[] = {
+ {&(_ZTV7ee15450[5]), 5,16},
+ {&(_ZTV7ee15450[10]), 10,16},
+ {&(_ZTV7ee15450[15]), 15,16},
+ {&(_tg__ZTV6dd5450__7ee15450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee15450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee15450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee15450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15450[];
+extern VTBL_ENTRY _ZTV7ee15450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15450[];
+static VTBL_ENTRY alt_thunk_names216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15450 = { "ee15450", // class name
+ bases_ee15450, 4,
+ &(vtc_ee15450[0]), // expected_vtbl_contents
+ &(vtt_ee15450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15450),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25450 : dd5450 {
+ int e;
+ virtual void foo(); // _ZN7ee254503fooEv
+ ~ee25450(); // tgen
+ ee25450(); // tgen
+};
+//SIG(1 ee25450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25450 ::foo(){vfunc_called(this, "_ZN7ee254503fooEv");}
+ee25450 ::~ee25450(){ note_dtor("ee25450", this);} // tgen
+ee25450 ::ee25450(){ note_ctor("ee25450", this);} // tgen
+
+static void Test_ee25450()
+{
+ extern Class_Descriptor cd_ee25450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25450, buf);
+ ee25450 *dp, &lv = *(dp=new (buf) ee25450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee25450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee25450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(16,12), "ee25450");
+ check_base_class_offset(lv, (dd5450*), 0, "ee25450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25450.e");
+ test_class_info(&lv, &cd_ee25450);
+ dp->~ee25450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25450(Test_ee25450, "ee25450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25450C1Ev();
+extern void _ZN7ee25450D1Ev();
+Name_Map name_map_ee25450[] = {
+ NSPAIR(_ZN7ee25450C1Ev),
+ NSPAIR(_ZN7ee25450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee25450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25450[];
+extern void _ZN6dd54503barEv();
+extern void _ZN7ee254503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+ (VTBL_ENTRY)&_ZN7ee254503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee25450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee25450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee25450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee25450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25450[] = {
+ {&(_ZTV7ee25450[4]), 4,11},
+ {&(_tg__ZTV6dd5450__7ee25450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee25450[4]), 4,5},
+ {&(_ZTV7ee25450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee25450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee25450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25450[];
+extern VTBL_ENTRY _ZTV7ee25450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25450[];
+static VTBL_ENTRY alt_thunk_names217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25450 = { "ee25450", // class name
+ bases_ee25450, 4,
+ &(vtc_ee25450[0]), // expected_vtbl_contents
+ &(vtt_ee25450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35450 : virtual dd5450 {
+ int e;
+ virtual void foo(); // _ZN7ee354503fooEv
+ ~ee35450(); // tgen
+ ee35450(); // tgen
+};
+//SIG(1 ee35450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35450 ::foo(){vfunc_called(this, "_ZN7ee354503fooEv");}
+ee35450 ::~ee35450(){ note_dtor("ee35450", this);} // tgen
+ee35450 ::ee35450(){ note_ctor("ee35450", this);} // tgen
+
+static void Test_ee35450()
+{
+ extern Class_Descriptor cd_ee35450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35450, buf);
+ ee35450 *dp, &lv = *(dp=new (buf) ee35450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee35450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee35450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(32,16), "ee35450");
+ check_base_class_offset(lv, (dd5450*), ABISELECT(16,8), "ee35450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35450.e");
+ test_class_info(&lv, &cd_ee35450);
+ dp->~ee35450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35450(Test_ee35450, "ee35450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35450C1Ev();
+extern void _ZN7ee35450D1Ev();
+Name_Map name_map_ee35450[] = {
+ NSPAIR(_ZN7ee35450C1Ev),
+ NSPAIR(_ZN7ee35450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee35450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee35450[];
+extern void _ZN7ee354503fooEv();
+extern void _ZN6dd54503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35450[0]),
+ (VTBL_ENTRY)&_ZN7ee354503fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee35450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee35450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee35450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee35450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35450[] = {
+ {&(_ZTV7ee35450[5]), 5,17},
+ {&(_ZTV7ee35450[11]), 11,17},
+ {&(_ZTV7ee35450[16]), 16,17},
+ {&(_tg__ZTV6dd5450__7ee35450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee35450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee35450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee35450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35450[];
+extern VTBL_ENTRY _ZTV7ee35450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35450[];
+static VTBL_ENTRY alt_thunk_names218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35450 = { "ee35450", // class name
+ bases_ee35450, 4,
+ &(vtc_ee35450[0]), // expected_vtbl_contents
+ &(vtt_ee35450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35450),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45450 : dd5450 {
+ int e;
+ virtual void bar(); // _ZN7ee454503barEv
+ ~ee45450(); // tgen
+ ee45450(); // tgen
+};
+//SIG(1 ee45450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45450 ::bar(){vfunc_called(this, "_ZN7ee454503barEv");}
+ee45450 ::~ee45450(){ note_dtor("ee45450", this);} // tgen
+ee45450 ::ee45450(){ note_ctor("ee45450", this);} // tgen
+
+static void Test_ee45450()
+{
+ extern Class_Descriptor cd_ee45450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45450, buf);
+ ee45450 *dp, &lv = *(dp=new (buf) ee45450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee45450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee45450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(16,12), "ee45450");
+ check_base_class_offset(lv, (dd5450*), 0, "ee45450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45450.e");
+ test_class_info(&lv, &cd_ee45450);
+ dp->~ee45450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45450(Test_ee45450, "ee45450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45450C1Ev();
+extern void _ZN7ee45450D1Ev();
+Name_Map name_map_ee45450[] = {
+ NSPAIR(_ZN7ee45450C1Ev),
+ NSPAIR(_ZN7ee45450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee45450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45450[];
+extern void _ZN7ee454503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454503barEv,_ZTv0_n16_N7ee454503barEv)();
+extern void ABISELECT(_ZThn16_N7ee454503barEv,_ZThn12_N7ee454503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45450[0]),
+ (VTBL_ENTRY)&_ZN7ee454503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454503barEv,_ZTv0_n16_N7ee454503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee45450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee45450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee45450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee45450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45450[] = {
+ {&(_ZTV7ee45450[4]), 4,10},
+ {&(_tg__ZTV6dd5450__7ee45450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee45450[4]), 4,5},
+ {&(_ZTV7ee45450[9]), 9,10},
+ {&(_tg__ZTV5cc450__7ee45450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee45450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45450[];
+extern VTBL_ENTRY _ZTV7ee45450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45450[];
+static VTBL_ENTRY alt_thunk_names219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454503barEv,_ZTv0_n16_N7ee454503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454503barEv,_ZThn12_N7ee454503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45450 = { "ee45450", // class name
+ bases_ee45450, 4,
+ &(vtc_ee45450[0]), // expected_vtbl_contents
+ &(vtt_ee45450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45450),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55450 : virtual dd5450 {
+ int e;
+ virtual void bar(); // _ZN7ee554503barEv
+ ~ee55450(); // tgen
+ ee55450(); // tgen
+};
+//SIG(1 ee55450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55450 ::bar(){vfunc_called(this, "_ZN7ee554503barEv");}
+ee55450 ::~ee55450(){ note_dtor("ee55450", this);} // tgen
+ee55450 ::ee55450(){ note_ctor("ee55450", this);} // tgen
+
+static void Test_ee55450()
+{
+ extern Class_Descriptor cd_ee55450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55450, buf);
+ ee55450 *dp, &lv = *(dp=new (buf) ee55450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee55450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee55450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(32,16), "ee55450");
+ check_base_class_offset(lv, (dd5450*), ABISELECT(16,8), "ee55450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55450.e");
+ test_class_info(&lv, &cd_ee55450);
+ dp->~ee55450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55450(Test_ee55450, "ee55450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55450C1Ev();
+extern void _ZN7ee55450D1Ev();
+Name_Map name_map_ee55450[] = {
+ NSPAIR(_ZN7ee55450C1Ev),
+ NSPAIR(_ZN7ee55450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee55450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee55450[];
+extern void _ZN7ee554503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee554503barEv,_ZTv0_n20_N7ee554503barEv)();
+extern void ABISELECT(_ZThn16_N7ee554503barEv,_ZThn8_N7ee554503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee554503barEv,_ZTv0_n16_N7ee554503barEv)();
+extern void ABISELECT(_ZThn32_N7ee554503barEv,_ZThn16_N7ee554503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55450[0]),
+ (VTBL_ENTRY)&_ZN7ee554503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee554503barEv,_ZTv0_n20_N7ee554503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554503barEv,_ZTv0_n16_N7ee554503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee55450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee55450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee55450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee55450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55450[] = {
+ {&(_ZTV7ee55450[5]), 5,17},
+ {&(_ZTV7ee55450[11]), 11,17},
+ {&(_ZTV7ee55450[16]), 16,17},
+ {&(_tg__ZTV6dd5450__7ee55450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee55450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee55450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee55450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55450[];
+extern VTBL_ENTRY _ZTV7ee55450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55450[];
+static VTBL_ENTRY alt_thunk_names220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554503barEv,_ZTv0_n16_N7ee554503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554503barEv,_ZThn16_N7ee554503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee554503barEv,_ZTv0_n20_N7ee554503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554503barEv,_ZThn8_N7ee554503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55450 = { "ee55450", // class name
+ bases_ee55450, 4,
+ &(vtc_ee55450[0]), // expected_vtbl_contents
+ &(vtt_ee55450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55450),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65450 : dd5450 {
+ int e;
+ virtual void foo(); // _ZN7ee654503fooEv
+ virtual void bar(); // _ZN7ee654503barEv
+ ~ee65450(); // tgen
+ ee65450(); // tgen
+};
+//SIG(1 ee65450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65450 ::foo(){vfunc_called(this, "_ZN7ee654503fooEv");}
+void ee65450 ::bar(){vfunc_called(this, "_ZN7ee654503barEv");}
+ee65450 ::~ee65450(){ note_dtor("ee65450", this);} // tgen
+ee65450 ::ee65450(){ note_ctor("ee65450", this);} // tgen
+
+static void Test_ee65450()
+{
+ extern Class_Descriptor cd_ee65450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65450, buf);
+ ee65450 *dp, &lv = *(dp=new (buf) ee65450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee65450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee65450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(16,12), "ee65450");
+ check_base_class_offset(lv, (dd5450*), 0, "ee65450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65450.e");
+ test_class_info(&lv, &cd_ee65450);
+ dp->~ee65450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65450(Test_ee65450, "ee65450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65450C1Ev();
+extern void _ZN7ee65450D1Ev();
+Name_Map name_map_ee65450[] = {
+ NSPAIR(_ZN7ee65450C1Ev),
+ NSPAIR(_ZN7ee65450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee65450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65450[];
+extern void _ZN7ee654503barEv();
+extern void _ZN7ee654503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee654503barEv,_ZTv0_n16_N7ee654503barEv)();
+extern void ABISELECT(_ZThn16_N7ee654503barEv,_ZThn12_N7ee654503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65450[0]),
+ (VTBL_ENTRY)&_ZN7ee654503barEv,
+ (VTBL_ENTRY)&_ZN7ee654503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654503barEv,_ZTv0_n16_N7ee654503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee65450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee65450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee65450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee65450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65450[] = {
+ {&(_ZTV7ee65450[4]), 4,11},
+ {&(_tg__ZTV6dd5450__7ee65450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee65450[4]), 4,5},
+ {&(_ZTV7ee65450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee65450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee65450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65450[];
+extern VTBL_ENTRY _ZTV7ee65450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65450[];
+static VTBL_ENTRY alt_thunk_names221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn12_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654503barEv,_ZTv0_n16_N7ee654503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654503barEv,_ZThn12_N7ee654503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65450 = { "ee65450", // class name
+ bases_ee65450, 4,
+ &(vtc_ee65450[0]), // expected_vtbl_contents
+ &(vtt_ee65450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75450 : virtual dd5450 {
+ int e;
+ virtual void foo(); // _ZN7ee754503fooEv
+ virtual void bar(); // _ZN7ee754503barEv
+ ~ee75450(); // tgen
+ ee75450(); // tgen
+};
+//SIG(1 ee75450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75450 ::foo(){vfunc_called(this, "_ZN7ee754503fooEv");}
+void ee75450 ::bar(){vfunc_called(this, "_ZN7ee754503barEv");}
+ee75450 ::~ee75450(){ note_dtor("ee75450", this);} // tgen
+ee75450 ::ee75450(){ note_ctor("ee75450", this);} // tgen
+
+static void Test_ee75450()
+{
+ extern Class_Descriptor cd_ee75450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75450, buf);
+ ee75450 *dp, &lv = *(dp=new (buf) ee75450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee75450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee75450");
+ check_base_class_offset(lv, (cc450*)(dd5450*), ABISELECT(32,16), "ee75450");
+ check_base_class_offset(lv, (dd5450*), ABISELECT(16,8), "ee75450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75450.e");
+ test_class_info(&lv, &cd_ee75450);
+ dp->~ee75450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75450(Test_ee75450, "ee75450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75450C1Ev();
+extern void _ZN7ee75450D1Ev();
+Name_Map name_map_ee75450[] = {
+ NSPAIR(_ZN7ee75450C1Ev),
+ NSPAIR(_ZN7ee75450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd5450;
+extern VTBL_ENTRY _ZTI6dd5450[];
+extern VTBL_ENTRY _ZTV6dd5450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5450[];
+static Base_Class bases_ee75450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5450, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75450[];
+extern void _ZN7ee754503fooEv();
+extern void _ZN7ee754503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee754503barEv,_ZTv0_n20_N7ee754503barEv)();
+extern void ABISELECT(_ZThn16_N7ee754503barEv,_ZThn8_N7ee754503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754503barEv,_ZTv0_n16_N7ee754503barEv)();
+extern void ABISELECT(_ZThn32_N7ee754503barEv,_ZThn16_N7ee754503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75450[0]),
+ (VTBL_ENTRY)&_ZN7ee754503fooEv,
+ (VTBL_ENTRY)&_ZN7ee754503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee754503barEv,_ZTv0_n20_N7ee754503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754503barEv,_ZTv0_n16_N7ee754503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75450[];
+extern void _ZN6dd54503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5450__7ee75450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&_ZN6dd54503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv)();
+extern void ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd5450__7ee75450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee75450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee75450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75450[] = {
+ {&(_ZTV7ee75450[5]), 5,18},
+ {&(_ZTV7ee75450[12]), 12,18},
+ {&(_ZTV7ee75450[17]), 17,18},
+ {&(_tg__ZTV6dd5450__7ee75450[4]), 4,5},
+ {&(_tg__ZTV5cc450__6dd5450__7ee75450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee75450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee75450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75450[];
+extern VTBL_ENTRY _ZTV7ee75450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75450[];
+static VTBL_ENTRY alt_thunk_names222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54503barEv,_ZTv0_n16_N6dd54503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54503barEv,_ZThn8_N6dd54503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754503barEv,_ZTv0_n16_N7ee754503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754503barEv,_ZThn16_N7ee754503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee754503barEv,_ZTv0_n20_N7ee754503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754503barEv,_ZThn8_N7ee754503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75450 = { "ee75450", // class name
+ bases_ee75450, 4,
+ &(vtc_ee75450[0]), // expected_vtbl_contents
+ &(vtt_ee75450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75450),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6450 : cc450 {
+ int d;
+ virtual void bar(); // _ZN6dd64503barEv
+ virtual void foo(); // _ZN6dd64503fooEv
+ ~dd6450(); // tgen
+ dd6450(); // tgen
+};
+//SIG(-1 dd6450) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6450 ::bar(){vfunc_called(this, "_ZN6dd64503barEv");}
+void dd6450 ::foo(){vfunc_called(this, "_ZN6dd64503fooEv");}
+dd6450 ::~dd6450(){ note_dtor("dd6450", this);} // tgen
+dd6450 ::dd6450(){ note_ctor("dd6450", this);} // tgen
+
+static void Test_dd6450()
+{
+ extern Class_Descriptor cd_dd6450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6450, buf);
+ dd6450 *dp, &lv = *(dp=new (buf) dd6450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(20,16), "dd6450");
+ check_base_class_offset(lv, (bb50*)(cc450*), 0, "dd6450");
+ check_base_class_offset(lv, (cc450*), 0, "dd6450");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6450.d");
+ test_class_info(&lv, &cd_dd6450);
+ dp->~dd6450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6450(Test_dd6450, "dd6450", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6450C1Ev();
+extern void _ZN6dd6450D1Ev();
+Name_Map name_map_dd6450[] = {
+ NSPAIR(_ZN6dd6450C1Ev),
+ NSPAIR(_ZN6dd6450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd6450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY vtc_dd6450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd6450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd6450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6450[] = {
+ {&(_ZTV6dd6450[3]), 3,5},
+ {&(_tg__ZTV5cc450__6dd6450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd6450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+Class_Descriptor cd_dd6450 = { "dd6450", // class name
+ bases_dd6450, 3,
+ &(vtc_dd6450[0]), // expected_vtbl_contents
+ &(vtt_dd6450[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6450),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06450 : dd6450 {
+ int e;
+ ~ee06450(); // tgen
+ ee06450(); // tgen
+};
+//SIG(1 ee06450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06450 ::~ee06450(){ note_dtor("ee06450", this);} // tgen
+ee06450 ::ee06450(){ note_ctor("ee06450", this);} // tgen
+
+static void Test_ee06450()
+{
+ extern Class_Descriptor cd_ee06450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06450, buf);
+ ee06450 *dp, &lv = *(dp=new (buf) ee06450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(24,20), "ee06450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), 0, "ee06450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), 0, "ee06450");
+ check_base_class_offset(lv, (dd6450*), 0, "ee06450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06450.e");
+ test_class_info(&lv, &cd_ee06450);
+ dp->~ee06450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06450(Test_ee06450, "ee06450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06450C1Ev();
+extern void _ZN7ee06450D1Ev();
+Name_Map name_map_ee06450[] = {
+ NSPAIR(_ZN7ee06450C1Ev),
+ NSPAIR(_ZN7ee06450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee06450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY vtc_ee06450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee06450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee06450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee06450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06450[] = {
+ {&(_ZTV7ee06450[3]), 3,5},
+ {&(_tg__ZTV6dd6450__7ee06450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee06450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee06450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06450[];
+extern VTBL_ENTRY _ZTV7ee06450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06450[];
+Class_Descriptor cd_ee06450 = { "ee06450", // class name
+ bases_ee06450, 4,
+ &(vtc_ee06450[0]), // expected_vtbl_contents
+ &(vtt_ee06450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16450 : virtual dd6450 {
+ int e;
+ ~ee16450(); // tgen
+ ee16450(); // tgen
+};
+//SIG(1 ee16450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16450 ::~ee16450(){ note_dtor("ee16450", this);} // tgen
+ee16450 ::ee16450(){ note_ctor("ee16450", this);} // tgen
+
+static void Test_ee16450()
+{
+ extern Class_Descriptor cd_ee16450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16450, buf);
+ ee16450 *dp, &lv = *(dp=new (buf) ee16450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(36,24), "ee16450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), ABISELECT(16,8), "ee16450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), ABISELECT(16,8), "ee16450");
+ check_base_class_offset(lv, (dd6450*), ABISELECT(16,8), "ee16450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16450.e");
+ test_class_info(&lv, &cd_ee16450);
+ dp->~ee16450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16450(Test_ee16450, "ee16450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16450C1Ev();
+extern void _ZN7ee16450D1Ev();
+Name_Map name_map_ee16450[] = {
+ NSPAIR(_ZN7ee16450C1Ev),
+ NSPAIR(_ZN7ee16450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee16450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY vtc_ee16450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16450[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee16450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee16450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee16450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16450[] = {
+ {&(_ZTV7ee16450[4]), 4,11},
+ {&(_ZTV7ee16450[9]), 9,11},
+ {&(_tg__ZTV6dd6450__7ee16450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee16450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee16450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16450[];
+extern VTBL_ENTRY _ZTV7ee16450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16450[];
+Class_Descriptor cd_ee16450 = { "ee16450", // class name
+ bases_ee16450, 4,
+ &(vtc_ee16450[0]), // expected_vtbl_contents
+ &(vtt_ee16450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26450 : dd6450 {
+ int e;
+ virtual void foo(); // _ZN7ee264503fooEv
+ ~ee26450(); // tgen
+ ee26450(); // tgen
+};
+//SIG(1 ee26450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26450 ::foo(){vfunc_called(this, "_ZN7ee264503fooEv");}
+ee26450 ::~ee26450(){ note_dtor("ee26450", this);} // tgen
+ee26450 ::ee26450(){ note_ctor("ee26450", this);} // tgen
+
+static void Test_ee26450()
+{
+ extern Class_Descriptor cd_ee26450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26450, buf);
+ ee26450 *dp, &lv = *(dp=new (buf) ee26450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(24,20), "ee26450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), 0, "ee26450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), 0, "ee26450");
+ check_base_class_offset(lv, (dd6450*), 0, "ee26450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26450.e");
+ test_class_info(&lv, &cd_ee26450);
+ dp->~ee26450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26450(Test_ee26450, "ee26450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26450C1Ev();
+extern void _ZN7ee26450D1Ev();
+Name_Map name_map_ee26450[] = {
+ NSPAIR(_ZN7ee26450C1Ev),
+ NSPAIR(_ZN7ee26450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee26450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN7ee264503fooEv();
+static VTBL_ENTRY vtc_ee26450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN7ee264503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee26450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee26450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee26450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26450[] = {
+ {&(_ZTV7ee26450[3]), 3,5},
+ {&(_tg__ZTV6dd6450__7ee26450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee26450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee26450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26450[];
+extern VTBL_ENTRY _ZTV7ee26450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26450[];
+Class_Descriptor cd_ee26450 = { "ee26450", // class name
+ bases_ee26450, 4,
+ &(vtc_ee26450[0]), // expected_vtbl_contents
+ &(vtt_ee26450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36450 : virtual dd6450 {
+ int e;
+ virtual void foo(); // _ZN7ee364503fooEv
+ ~ee36450(); // tgen
+ ee36450(); // tgen
+};
+//SIG(1 ee36450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36450 ::foo(){vfunc_called(this, "_ZN7ee364503fooEv");}
+ee36450 ::~ee36450(){ note_dtor("ee36450", this);} // tgen
+ee36450 ::ee36450(){ note_ctor("ee36450", this);} // tgen
+
+static void Test_ee36450()
+{
+ extern Class_Descriptor cd_ee36450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36450, buf);
+ ee36450 *dp, &lv = *(dp=new (buf) ee36450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(36,24), "ee36450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), ABISELECT(16,8), "ee36450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), ABISELECT(16,8), "ee36450");
+ check_base_class_offset(lv, (dd6450*), ABISELECT(16,8), "ee36450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36450.e");
+ test_class_info(&lv, &cd_ee36450);
+ dp->~ee36450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36450(Test_ee36450, "ee36450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36450C1Ev();
+extern void _ZN7ee36450D1Ev();
+Name_Map name_map_ee36450[] = {
+ NSPAIR(_ZN7ee36450C1Ev),
+ NSPAIR(_ZN7ee36450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee36450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36450[];
+extern void _ZN7ee364503fooEv();
+extern void _ZN6dd64503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee364503fooEv,_ZTv0_n20_N7ee364503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364503fooEv,_ZThn8_N7ee364503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36450[0]),
+ (VTBL_ENTRY)&_ZN7ee364503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee364503fooEv,_ZTv0_n20_N7ee364503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee36450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee36450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee36450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36450[] = {
+ {&(_ZTV7ee36450[4]), 4,12},
+ {&(_ZTV7ee36450[10]), 10,12},
+ {&(_tg__ZTV6dd6450__7ee36450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee36450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee36450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36450[];
+extern VTBL_ENTRY _ZTV7ee36450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36450[];
+static VTBL_ENTRY alt_thunk_names223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee364503fooEv,_ZTv0_n20_N7ee364503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364503fooEv,_ZThn8_N7ee364503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36450 = { "ee36450", // class name
+ bases_ee36450, 4,
+ &(vtc_ee36450[0]), // expected_vtbl_contents
+ &(vtt_ee36450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36450),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46450 : dd6450 {
+ int e;
+ virtual void bar(); // _ZN7ee464503barEv
+ ~ee46450(); // tgen
+ ee46450(); // tgen
+};
+//SIG(1 ee46450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46450 ::bar(){vfunc_called(this, "_ZN7ee464503barEv");}
+ee46450 ::~ee46450(){ note_dtor("ee46450", this);} // tgen
+ee46450 ::ee46450(){ note_ctor("ee46450", this);} // tgen
+
+static void Test_ee46450()
+{
+ extern Class_Descriptor cd_ee46450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46450, buf);
+ ee46450 *dp, &lv = *(dp=new (buf) ee46450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(24,20), "ee46450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), 0, "ee46450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), 0, "ee46450");
+ check_base_class_offset(lv, (dd6450*), 0, "ee46450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46450.e");
+ test_class_info(&lv, &cd_ee46450);
+ dp->~ee46450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46450(Test_ee46450, "ee46450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46450C1Ev();
+extern void _ZN7ee46450D1Ev();
+Name_Map name_map_ee46450[] = {
+ NSPAIR(_ZN7ee46450C1Ev),
+ NSPAIR(_ZN7ee46450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee46450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46450[];
+extern void _ZN7ee464503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY vtc_ee46450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46450[0]),
+ (VTBL_ENTRY)&_ZN7ee464503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee46450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee46450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee46450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46450[] = {
+ {&(_ZTV7ee46450[3]), 3,5},
+ {&(_tg__ZTV6dd6450__7ee46450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee46450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee46450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46450[];
+extern VTBL_ENTRY _ZTV7ee46450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46450[];
+Class_Descriptor cd_ee46450 = { "ee46450", // class name
+ bases_ee46450, 4,
+ &(vtc_ee46450[0]), // expected_vtbl_contents
+ &(vtt_ee46450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56450 : virtual dd6450 {
+ int e;
+ virtual void bar(); // _ZN7ee564503barEv
+ ~ee56450(); // tgen
+ ee56450(); // tgen
+};
+//SIG(1 ee56450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56450 ::bar(){vfunc_called(this, "_ZN7ee564503barEv");}
+ee56450 ::~ee56450(){ note_dtor("ee56450", this);} // tgen
+ee56450 ::ee56450(){ note_ctor("ee56450", this);} // tgen
+
+static void Test_ee56450()
+{
+ extern Class_Descriptor cd_ee56450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56450, buf);
+ ee56450 *dp, &lv = *(dp=new (buf) ee56450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(36,24), "ee56450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), ABISELECT(16,8), "ee56450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), ABISELECT(16,8), "ee56450");
+ check_base_class_offset(lv, (dd6450*), ABISELECT(16,8), "ee56450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56450.e");
+ test_class_info(&lv, &cd_ee56450);
+ dp->~ee56450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56450(Test_ee56450, "ee56450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56450C1Ev();
+extern void _ZN7ee56450D1Ev();
+Name_Map name_map_ee56450[] = {
+ NSPAIR(_ZN7ee56450C1Ev),
+ NSPAIR(_ZN7ee56450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee56450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56450[];
+extern void _ZN7ee564503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564503barEv,_ZTv0_n16_N7ee564503barEv)();
+extern void ABISELECT(_ZThn16_N7ee564503barEv,_ZThn8_N7ee564503barEv)() __attribute__((weak));
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY vtc_ee56450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56450[0]),
+ (VTBL_ENTRY)&_ZN7ee564503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564503barEv,_ZTv0_n16_N7ee564503barEv),
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee56450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee56450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee56450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56450[] = {
+ {&(_ZTV7ee56450[4]), 4,12},
+ {&(_ZTV7ee56450[10]), 10,12},
+ {&(_tg__ZTV6dd6450__7ee56450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee56450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee56450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56450[];
+extern VTBL_ENTRY _ZTV7ee56450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56450[];
+static VTBL_ENTRY alt_thunk_names224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564503barEv,_ZTv0_n16_N7ee564503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564503barEv,_ZThn8_N7ee564503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56450 = { "ee56450", // class name
+ bases_ee56450, 4,
+ &(vtc_ee56450[0]), // expected_vtbl_contents
+ &(vtt_ee56450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56450),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66450 : dd6450 {
+ int e;
+ virtual void foo(); // _ZN7ee664503fooEv
+ virtual void bar(); // _ZN7ee664503barEv
+ ~ee66450(); // tgen
+ ee66450(); // tgen
+};
+//SIG(1 ee66450) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66450 ::foo(){vfunc_called(this, "_ZN7ee664503fooEv");}
+void ee66450 ::bar(){vfunc_called(this, "_ZN7ee664503barEv");}
+ee66450 ::~ee66450(){ note_dtor("ee66450", this);} // tgen
+ee66450 ::ee66450(){ note_ctor("ee66450", this);} // tgen
+
+static void Test_ee66450()
+{
+ extern Class_Descriptor cd_ee66450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66450, buf);
+ ee66450 *dp, &lv = *(dp=new (buf) ee66450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(24,20), "ee66450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), 0, "ee66450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), 0, "ee66450");
+ check_base_class_offset(lv, (dd6450*), 0, "ee66450");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66450.e");
+ test_class_info(&lv, &cd_ee66450);
+ dp->~ee66450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66450(Test_ee66450, "ee66450", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66450C1Ev();
+extern void _ZN7ee66450D1Ev();
+Name_Map name_map_ee66450[] = {
+ NSPAIR(_ZN7ee66450C1Ev),
+ NSPAIR(_ZN7ee66450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee66450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66450[];
+extern void _ZN7ee664503barEv();
+extern void _ZN7ee664503fooEv();
+static VTBL_ENTRY vtc_ee66450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66450[0]),
+ (VTBL_ENTRY)&_ZN7ee664503barEv,
+ (VTBL_ENTRY)&_ZN7ee664503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee66450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee66450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee66450[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66450[] = {
+ {&(_ZTV7ee66450[3]), 3,5},
+ {&(_tg__ZTV6dd6450__7ee66450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee66450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee66450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66450[];
+extern VTBL_ENTRY _ZTV7ee66450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66450[];
+Class_Descriptor cd_ee66450 = { "ee66450", // class name
+ bases_ee66450, 4,
+ &(vtc_ee66450[0]), // expected_vtbl_contents
+ &(vtt_ee66450[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66450),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66450),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76450 : virtual dd6450 {
+ int e;
+ virtual void foo(); // _ZN7ee764503fooEv
+ virtual void bar(); // _ZN7ee764503barEv
+ ~ee76450(); // tgen
+ ee76450(); // tgen
+};
+//SIG(1 ee76450) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76450 ::foo(){vfunc_called(this, "_ZN7ee764503fooEv");}
+void ee76450 ::bar(){vfunc_called(this, "_ZN7ee764503barEv");}
+ee76450 ::~ee76450(){ note_dtor("ee76450", this);} // tgen
+ee76450 ::ee76450(){ note_ctor("ee76450", this);} // tgen
+
+static void Test_ee76450()
+{
+ extern Class_Descriptor cd_ee76450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76450, buf);
+ ee76450 *dp, &lv = *(dp=new (buf) ee76450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*)(dd6450*), ABISELECT(36,24), "ee76450");
+ check_base_class_offset(lv, (bb50*)(cc450*)(dd6450*), ABISELECT(16,8), "ee76450");
+ check_base_class_offset(lv, (cc450*)(dd6450*), ABISELECT(16,8), "ee76450");
+ check_base_class_offset(lv, (dd6450*), ABISELECT(16,8), "ee76450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76450.e");
+ test_class_info(&lv, &cd_ee76450);
+ dp->~ee76450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76450(Test_ee76450, "ee76450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76450C1Ev();
+extern void _ZN7ee76450D1Ev();
+Name_Map name_map_ee76450[] = {
+ NSPAIR(_ZN7ee76450C1Ev),
+ NSPAIR(_ZN7ee76450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd6450;
+extern VTBL_ENTRY _ZTI6dd6450[];
+extern VTBL_ENTRY _ZTV6dd6450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6450[];
+static Base_Class bases_ee76450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76450[];
+extern void _ZN7ee764503fooEv();
+extern void _ZN7ee764503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee764503barEv,_ZTv0_n16_N7ee764503barEv)();
+extern void ABISELECT(_ZThn16_N7ee764503barEv,_ZThn8_N7ee764503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee764503fooEv,_ZTv0_n20_N7ee764503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764503fooEv,_ZThn8_N7ee764503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76450[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76450[0]),
+ (VTBL_ENTRY)&_ZN7ee764503fooEv,
+ (VTBL_ENTRY)&_ZN7ee764503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764503barEv,_ZTv0_n16_N7ee764503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee764503fooEv,_ZTv0_n20_N7ee764503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76450[];
+extern void _ZN6dd64503barEv();
+extern void _ZN6dd64503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6450__7ee76450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6450[0]),
+ (VTBL_ENTRY)&_ZN6dd64503barEv,
+ (VTBL_ENTRY)&_ZN6dd64503fooEv,
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc4506dd6450__7ee76450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc4506dd6450__7ee76450[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76450[] = {
+ {&(_ZTV7ee76450[4]), 4,13},
+ {&(_ZTV7ee76450[11]), 11,13},
+ {&(_tg__ZTV6dd6450__7ee76450[3]), 3,5},
+ {&(_tg__ZTV5cc4506dd6450__7ee76450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc4506dd6450__7ee76450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76450[];
+extern VTBL_ENTRY _ZTV7ee76450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76450[];
+static VTBL_ENTRY alt_thunk_names225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee764503fooEv,_ZTv0_n20_N7ee764503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764503fooEv,_ZThn8_N7ee764503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764503barEv,_ZTv0_n16_N7ee764503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764503barEv,_ZThn8_N7ee764503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76450 = { "ee76450", // class name
+ bases_ee76450, 4,
+ &(vtc_ee76450[0]), // expected_vtbl_contents
+ &(vtt_ee76450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76450),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76450),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7450 : virtual cc450 {
+ int d;
+ virtual void bar(); // _ZN6dd74503barEv
+ virtual void foo(); // _ZN6dd74503fooEv
+ ~dd7450(); // tgen
+ dd7450(); // tgen
+};
+//SIG(-1 dd7450) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7450 ::bar(){vfunc_called(this, "_ZN6dd74503barEv");}
+void dd7450 ::foo(){vfunc_called(this, "_ZN6dd74503fooEv");}
+dd7450 ::~dd7450(){ note_dtor("dd7450", this);} // tgen
+dd7450 ::dd7450(){ note_ctor("dd7450", this);} // tgen
+
+static void Test_dd7450()
+{
+ extern Class_Descriptor cd_dd7450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7450, buf);
+ dd7450 *dp, &lv = *(dp=new (buf) dd7450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,20), "dd7450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,8), "dd7450");
+ check_base_class_offset(lv, (cc450*), ABISELECT(16,8), "dd7450");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7450.d");
+ test_class_info(&lv, &cd_dd7450);
+ dp->~dd7450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7450(Test_dd7450, "dd7450", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7450C1Ev();
+extern void _ZN6dd7450D1Ev();
+Name_Map name_map_dd7450[] = {
+ NSPAIR(_ZN6dd7450C1Ev),
+ NSPAIR(_ZN6dd7450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+static Base_Class bases_dd7450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__6dd7450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7450[] = {
+ {&(_ZTV6dd7450[4]), 4,11},
+ {&(_ZTV6dd7450[10]), 10,11},
+ {&(_tg__ZTV5cc450__6dd7450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__6dd7450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static VTBL_ENTRY alt_thunk_names226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7450 = { "dd7450", // class name
+ bases_dd7450, 3,
+ &(vtc_dd7450[0]), // expected_vtbl_contents
+ &(vtt_dd7450[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7450),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07450 : dd7450 {
+ int e;
+ ~ee07450(); // tgen
+ ee07450(); // tgen
+};
+//SIG(1 ee07450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07450 ::~ee07450(){ note_dtor("ee07450", this);} // tgen
+ee07450 ::ee07450(){ note_ctor("ee07450", this);} // tgen
+
+static void Test_ee07450()
+{
+ extern Class_Descriptor cd_ee07450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07450, buf);
+ ee07450 *dp, &lv = *(dp=new (buf) ee07450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee07450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee07450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(16,12), "ee07450");
+ check_base_class_offset(lv, (dd7450*), 0, "ee07450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07450.e");
+ test_class_info(&lv, &cd_ee07450);
+ dp->~ee07450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07450(Test_ee07450, "ee07450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07450C1Ev();
+extern void _ZN7ee07450D1Ev();
+Name_Map name_map_ee07450[] = {
+ NSPAIR(_ZN7ee07450C1Ev),
+ NSPAIR(_ZN7ee07450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee07450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee07450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee07450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee07450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee07450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07450[] = {
+ {&(_ZTV7ee07450[4]), 4,11},
+ {&(_tg__ZTV6dd7450__7ee07450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee07450[4]), 4,5},
+ {&(_ZTV7ee07450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee07450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee07450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07450[];
+extern VTBL_ENTRY _ZTV7ee07450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07450[];
+static VTBL_ENTRY alt_thunk_names227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07450 = { "ee07450", // class name
+ bases_ee07450, 4,
+ &(vtc_ee07450[0]), // expected_vtbl_contents
+ &(vtt_ee07450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17450 : virtual dd7450 {
+ int e;
+ ~ee17450(); // tgen
+ ee17450(); // tgen
+};
+//SIG(1 ee17450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17450 ::~ee17450(){ note_dtor("ee17450", this);} // tgen
+ee17450 ::ee17450(){ note_ctor("ee17450", this);} // tgen
+
+static void Test_ee17450()
+{
+ extern Class_Descriptor cd_ee17450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17450, buf);
+ ee17450 *dp, &lv = *(dp=new (buf) ee17450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee17450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee17450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(32,16), "ee17450");
+ check_base_class_offset(lv, (dd7450*), ABISELECT(16,8), "ee17450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17450.e");
+ test_class_info(&lv, &cd_ee17450);
+ dp->~ee17450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17450(Test_ee17450, "ee17450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17450C1Ev();
+extern void _ZN7ee17450D1Ev();
+Name_Map name_map_ee17450[] = {
+ NSPAIR(_ZN7ee17450C1Ev),
+ NSPAIR(_ZN7ee17450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee17450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee17450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17450[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee17450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee17450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee17450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee17450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17450[] = {
+ {&(_ZTV7ee17450[5]), 5,18},
+ {&(_ZTV7ee17450[11]), 11,18},
+ {&(_ZTV7ee17450[17]), 17,18},
+ {&(_tg__ZTV6dd7450__7ee17450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee17450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee17450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee17450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17450[];
+extern VTBL_ENTRY _ZTV7ee17450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17450[];
+static VTBL_ENTRY alt_thunk_names228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17450 = { "ee17450", // class name
+ bases_ee17450, 4,
+ &(vtc_ee17450[0]), // expected_vtbl_contents
+ &(vtt_ee17450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17450),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27450 : dd7450 {
+ int e;
+ virtual void foo(); // _ZN7ee274503fooEv
+ ~ee27450(); // tgen
+ ee27450(); // tgen
+};
+//SIG(1 ee27450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27450 ::foo(){vfunc_called(this, "_ZN7ee274503fooEv");}
+ee27450 ::~ee27450(){ note_dtor("ee27450", this);} // tgen
+ee27450 ::ee27450(){ note_ctor("ee27450", this);} // tgen
+
+static void Test_ee27450()
+{
+ extern Class_Descriptor cd_ee27450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27450, buf);
+ ee27450 *dp, &lv = *(dp=new (buf) ee27450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee27450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee27450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(16,12), "ee27450");
+ check_base_class_offset(lv, (dd7450*), 0, "ee27450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27450.e");
+ test_class_info(&lv, &cd_ee27450);
+ dp->~ee27450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27450(Test_ee27450, "ee27450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27450C1Ev();
+extern void _ZN7ee27450D1Ev();
+Name_Map name_map_ee27450[] = {
+ NSPAIR(_ZN7ee27450C1Ev),
+ NSPAIR(_ZN7ee27450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee27450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN7ee274503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN7ee274503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee27450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee27450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee27450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee27450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27450[] = {
+ {&(_ZTV7ee27450[4]), 4,11},
+ {&(_tg__ZTV6dd7450__7ee27450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee27450[4]), 4,5},
+ {&(_ZTV7ee27450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee27450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee27450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27450[];
+extern VTBL_ENTRY _ZTV7ee27450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27450[];
+static VTBL_ENTRY alt_thunk_names229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27450 = { "ee27450", // class name
+ bases_ee27450, 4,
+ &(vtc_ee27450[0]), // expected_vtbl_contents
+ &(vtt_ee27450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37450 : virtual dd7450 {
+ int e;
+ virtual void foo(); // _ZN7ee374503fooEv
+ ~ee37450(); // tgen
+ ee37450(); // tgen
+};
+//SIG(1 ee37450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37450 ::foo(){vfunc_called(this, "_ZN7ee374503fooEv");}
+ee37450 ::~ee37450(){ note_dtor("ee37450", this);} // tgen
+ee37450 ::ee37450(){ note_ctor("ee37450", this);} // tgen
+
+static void Test_ee37450()
+{
+ extern Class_Descriptor cd_ee37450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37450, buf);
+ ee37450 *dp, &lv = *(dp=new (buf) ee37450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee37450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee37450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(32,16), "ee37450");
+ check_base_class_offset(lv, (dd7450*), ABISELECT(16,8), "ee37450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37450.e");
+ test_class_info(&lv, &cd_ee37450);
+ dp->~ee37450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37450(Test_ee37450, "ee37450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37450C1Ev();
+extern void _ZN7ee37450D1Ev();
+Name_Map name_map_ee37450[] = {
+ NSPAIR(_ZN7ee37450C1Ev),
+ NSPAIR(_ZN7ee37450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee37450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee37450[];
+extern void _ZN7ee374503fooEv();
+extern void _ZN6dd74503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee374503fooEv,_ZTv0_n24_N7ee374503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374503fooEv,_ZThn8_N7ee374503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37450[0]),
+ (VTBL_ENTRY)&_ZN7ee374503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee374503fooEv,_ZTv0_n24_N7ee374503fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee37450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee37450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee37450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee37450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37450[] = {
+ {&(_ZTV7ee37450[5]), 5,19},
+ {&(_ZTV7ee37450[12]), 12,19},
+ {&(_ZTV7ee37450[18]), 18,19},
+ {&(_tg__ZTV6dd7450__7ee37450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee37450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee37450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee37450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37450[];
+extern VTBL_ENTRY _ZTV7ee37450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37450[];
+static VTBL_ENTRY alt_thunk_names230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee374503fooEv,_ZTv0_n24_N7ee374503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374503fooEv,_ZThn8_N7ee374503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37450 = { "ee37450", // class name
+ bases_ee37450, 4,
+ &(vtc_ee37450[0]), // expected_vtbl_contents
+ &(vtt_ee37450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37450),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47450 : dd7450 {
+ int e;
+ virtual void bar(); // _ZN7ee474503barEv
+ ~ee47450(); // tgen
+ ee47450(); // tgen
+};
+//SIG(1 ee47450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47450 ::bar(){vfunc_called(this, "_ZN7ee474503barEv");}
+ee47450 ::~ee47450(){ note_dtor("ee47450", this);} // tgen
+ee47450 ::ee47450(){ note_ctor("ee47450", this);} // tgen
+
+static void Test_ee47450()
+{
+ extern Class_Descriptor cd_ee47450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47450, buf);
+ ee47450 *dp, &lv = *(dp=new (buf) ee47450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee47450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee47450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(16,12), "ee47450");
+ check_base_class_offset(lv, (dd7450*), 0, "ee47450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47450.e");
+ test_class_info(&lv, &cd_ee47450);
+ dp->~ee47450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47450(Test_ee47450, "ee47450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47450C1Ev();
+extern void _ZN7ee47450D1Ev();
+Name_Map name_map_ee47450[] = {
+ NSPAIR(_ZN7ee47450C1Ev),
+ NSPAIR(_ZN7ee47450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee47450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47450[];
+extern void _ZN7ee474503barEv();
+extern void _ZN6dd74503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee474503barEv,_ZTv0_n16_N7ee474503barEv)();
+extern void ABISELECT(_ZThn16_N7ee474503barEv,_ZThn12_N7ee474503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47450[0]),
+ (VTBL_ENTRY)&_ZN7ee474503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474503barEv,_ZTv0_n16_N7ee474503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee47450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee47450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee47450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee47450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47450[] = {
+ {&(_ZTV7ee47450[4]), 4,11},
+ {&(_tg__ZTV6dd7450__7ee47450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee47450[4]), 4,5},
+ {&(_ZTV7ee47450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee47450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee47450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47450[];
+extern VTBL_ENTRY _ZTV7ee47450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47450[];
+static VTBL_ENTRY alt_thunk_names231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474503barEv,_ZTv0_n16_N7ee474503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474503barEv,_ZThn12_N7ee474503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47450 = { "ee47450", // class name
+ bases_ee47450, 4,
+ &(vtc_ee47450[0]), // expected_vtbl_contents
+ &(vtt_ee47450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57450 : virtual dd7450 {
+ int e;
+ virtual void bar(); // _ZN7ee574503barEv
+ ~ee57450(); // tgen
+ ee57450(); // tgen
+};
+//SIG(1 ee57450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57450 ::bar(){vfunc_called(this, "_ZN7ee574503barEv");}
+ee57450 ::~ee57450(){ note_dtor("ee57450", this);} // tgen
+ee57450 ::ee57450(){ note_ctor("ee57450", this);} // tgen
+
+static void Test_ee57450()
+{
+ extern Class_Descriptor cd_ee57450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57450, buf);
+ ee57450 *dp, &lv = *(dp=new (buf) ee57450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee57450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee57450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(32,16), "ee57450");
+ check_base_class_offset(lv, (dd7450*), ABISELECT(16,8), "ee57450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57450.e");
+ test_class_info(&lv, &cd_ee57450);
+ dp->~ee57450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57450(Test_ee57450, "ee57450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57450C1Ev();
+extern void _ZN7ee57450D1Ev();
+Name_Map name_map_ee57450[] = {
+ NSPAIR(_ZN7ee57450C1Ev),
+ NSPAIR(_ZN7ee57450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee57450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee57450[];
+extern void _ZN7ee574503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee574503barEv,_ZTv0_n20_N7ee574503barEv)();
+extern void ABISELECT(_ZThn16_N7ee574503barEv,_ZThn8_N7ee574503barEv)() __attribute__((weak));
+extern void _ZN6dd74503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574503barEv,_ZTv0_n16_N7ee574503barEv)();
+extern void ABISELECT(_ZThn32_N7ee574503barEv,_ZThn16_N7ee574503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57450[0]),
+ (VTBL_ENTRY)&_ZN7ee574503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee574503barEv,_ZTv0_n20_N7ee574503barEv),
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574503barEv,_ZTv0_n16_N7ee574503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee57450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee57450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee57450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee57450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57450[] = {
+ {&(_ZTV7ee57450[5]), 5,19},
+ {&(_ZTV7ee57450[12]), 12,19},
+ {&(_ZTV7ee57450[18]), 18,19},
+ {&(_tg__ZTV6dd7450__7ee57450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee57450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee57450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee57450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57450[];
+extern VTBL_ENTRY _ZTV7ee57450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57450[];
+static VTBL_ENTRY alt_thunk_names232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574503barEv,_ZTv0_n16_N7ee574503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574503barEv,_ZThn16_N7ee574503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee574503barEv,_ZTv0_n20_N7ee574503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574503barEv,_ZThn8_N7ee574503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57450 = { "ee57450", // class name
+ bases_ee57450, 4,
+ &(vtc_ee57450[0]), // expected_vtbl_contents
+ &(vtt_ee57450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57450),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67450 : dd7450 {
+ int e;
+ virtual void foo(); // _ZN7ee674503fooEv
+ virtual void bar(); // _ZN7ee674503barEv
+ ~ee67450(); // tgen
+ ee67450(); // tgen
+};
+//SIG(1 ee67450) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67450 ::foo(){vfunc_called(this, "_ZN7ee674503fooEv");}
+void ee67450 ::bar(){vfunc_called(this, "_ZN7ee674503barEv");}
+ee67450 ::~ee67450(){ note_dtor("ee67450", this);} // tgen
+ee67450 ::ee67450(){ note_ctor("ee67450", this);} // tgen
+
+static void Test_ee67450()
+{
+ extern Class_Descriptor cd_ee67450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67450, buf);
+ ee67450 *dp, &lv = *(dp=new (buf) ee67450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(32,24), "ee67450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(16,12), "ee67450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(16,12), "ee67450");
+ check_base_class_offset(lv, (dd7450*), 0, "ee67450");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67450.e");
+ test_class_info(&lv, &cd_ee67450);
+ dp->~ee67450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67450(Test_ee67450, "ee67450", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67450C1Ev();
+extern void _ZN7ee67450D1Ev();
+Name_Map name_map_ee67450[] = {
+ NSPAIR(_ZN7ee67450C1Ev),
+ NSPAIR(_ZN7ee67450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee67450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67450[];
+extern void _ZN7ee674503barEv();
+extern void _ZN7ee674503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee674503barEv,_ZTv0_n16_N7ee674503barEv)();
+extern void ABISELECT(_ZThn16_N7ee674503barEv,_ZThn12_N7ee674503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67450[0]),
+ (VTBL_ENTRY)&_ZN7ee674503barEv,
+ (VTBL_ENTRY)&_ZN7ee674503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674503barEv,_ZTv0_n16_N7ee674503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee67450[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee67450[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee67450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee67450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67450[] = {
+ {&(_ZTV7ee67450[4]), 4,11},
+ {&(_tg__ZTV6dd7450__7ee67450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee67450[4]), 4,5},
+ {&(_ZTV7ee67450[10]), 10,11},
+ {&(_tg__ZTV5cc450__7ee67450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee67450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67450[];
+extern VTBL_ENTRY _ZTV7ee67450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67450[];
+static VTBL_ENTRY alt_thunk_names233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn12_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674503barEv,_ZTv0_n16_N7ee674503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674503barEv,_ZThn12_N7ee674503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67450 = { "ee67450", // class name
+ bases_ee67450, 4,
+ &(vtc_ee67450[0]), // expected_vtbl_contents
+ &(vtt_ee67450[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67450),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67450),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67450),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77450 : virtual dd7450 {
+ int e;
+ virtual void foo(); // _ZN7ee774503fooEv
+ virtual void bar(); // _ZN7ee774503barEv
+ ~ee77450(); // tgen
+ ee77450(); // tgen
+};
+//SIG(1 ee77450) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77450 ::foo(){vfunc_called(this, "_ZN7ee774503fooEv");}
+void ee77450 ::bar(){vfunc_called(this, "_ZN7ee774503barEv");}
+ee77450 ::~ee77450(){ note_dtor("ee77450", this);} // tgen
+ee77450 ::ee77450(){ note_ctor("ee77450", this);} // tgen
+
+static void Test_ee77450()
+{
+ extern Class_Descriptor cd_ee77450;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77450, buf);
+ ee77450 *dp, &lv = *(dp=new (buf) ee77450());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77450)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77450)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc450*), ABISELECT(48,28), "ee77450");
+ check_base_class_offset(lv, (bb50*)(cc450*), ABISELECT(32,16), "ee77450");
+ check_base_class_offset(lv, (cc450*)(dd7450*), ABISELECT(32,16), "ee77450");
+ check_base_class_offset(lv, (dd7450*), ABISELECT(16,8), "ee77450");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77450.e");
+ test_class_info(&lv, &cd_ee77450);
+ dp->~ee77450();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77450(Test_ee77450, "ee77450", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77450C1Ev();
+extern void _ZN7ee77450D1Ev();
+Name_Map name_map_ee77450[] = {
+ NSPAIR(_ZN7ee77450C1Ev),
+ NSPAIR(_ZN7ee77450D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc450;
+extern VTBL_ENTRY _ZTI5cc450[];
+extern VTBL_ENTRY _ZTV5cc450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc450[];
+extern Class_Descriptor cd_dd7450;
+extern VTBL_ENTRY _ZTI6dd7450[];
+extern VTBL_ENTRY _ZTV6dd7450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7450[];
+static Base_Class bases_ee77450[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc450, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7450, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee77450[];
+extern void _ZN7ee774503fooEv();
+extern void _ZN7ee774503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee774503barEv,_ZTv0_n20_N7ee774503barEv)();
+extern void ABISELECT(_ZThn16_N7ee774503barEv,_ZThn8_N7ee774503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee774503fooEv,_ZTv0_n24_N7ee774503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774503fooEv,_ZThn8_N7ee774503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774503barEv,_ZTv0_n16_N7ee774503barEv)();
+extern void ABISELECT(_ZThn32_N7ee774503barEv,_ZThn16_N7ee774503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77450[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77450[0]),
+ (VTBL_ENTRY)&_ZN7ee774503fooEv,
+ (VTBL_ENTRY)&_ZN7ee774503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774503barEv,_ZTv0_n20_N7ee774503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee774503fooEv,_ZTv0_n24_N7ee774503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774503barEv,_ZTv0_n16_N7ee774503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77450[];
+extern void _ZN6dd74503barEv();
+extern void _ZN6dd74503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7450__7ee77450[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&_ZN6dd74503barEv,
+ (VTBL_ENTRY)&_ZN6dd74503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv)();
+extern void ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc450__6dd7450__7ee77450[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7450[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv),
+};
+extern void _ZN5cc4503barEv();
+static VTBL_ENTRY _tg__ZTV5cc450__7ee77450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc450[0]),
+ (VTBL_ENTRY)&_ZN5cc4503barEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc450__7ee77450[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77450[] = {
+ {&(_ZTV7ee77450[5]), 5,20},
+ {&(_ZTV7ee77450[13]), 13,20},
+ {&(_ZTV7ee77450[19]), 19,20},
+ {&(_tg__ZTV6dd7450__7ee77450[4]), 4,6},
+ {&(_tg__ZTV5cc450__6dd7450__7ee77450[4]), 4,5},
+ {&(_tg__ZTV5cc450__7ee77450[3]), 3,4},
+ {&(_tg__ZTV4bb505cc450__7ee77450[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77450[];
+extern VTBL_ENTRY _ZTV7ee77450[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77450[];
+static VTBL_ENTRY alt_thunk_names234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74503barEv,_ZTv0_n16_N6dd74503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74503barEv,_ZThn8_N6dd74503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774503barEv,_ZTv0_n16_N7ee774503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774503barEv,_ZThn16_N7ee774503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee774503fooEv,_ZTv0_n24_N7ee774503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774503fooEv,_ZThn8_N7ee774503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774503barEv,_ZTv0_n20_N7ee774503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774503barEv,_ZThn8_N7ee774503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77450 = { "ee77450", // class name
+ bases_ee77450, 4,
+ &(vtc_ee77450[0]), // expected_vtbl_contents
+ &(vtt_ee77450[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77450),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77450),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77450),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc550 : virtual bb50 {
+ int c;
+ virtual void bar(); // _ZN5cc5503barEv
+ ~cc550(); // tgen
+ cc550(); // tgen
+};
+//SIG(-1 cc550) C1{ VBC2{ VBC3{ Fi} v1 Fi} v1 Fi}
+
+
+void cc550 ::bar(){vfunc_called(this, "_ZN5cc5503barEv");}
+cc550 ::~cc550(){ note_dtor("cc550", this);} // tgen
+cc550 ::cc550(){ note_ctor("cc550", this);} // tgen
+
+static void Test_cc550()
+{
+ extern Class_Descriptor cd_cc550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc550, buf);
+ cc550 *dp, &lv = *(dp=new (buf) cc550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,16), "cc550");
+ check_base_class_offset(lv, (bb50*), ABISELECT(16,8), "cc550");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc550.c");
+ test_class_info(&lv, &cd_cc550);
+ dp->~cc550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc550(Test_cc550, "cc550", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc550C1Ev();
+extern void _ZN5cc550D1Ev();
+Name_Map name_map_cc550[] = {
+ NSPAIR(_ZN5cc550C1Ev),
+ NSPAIR(_ZN5cc550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV5cc550[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc550[] = {
+ {&(_ZTV5cc550[4]), 4,10},
+ {&(_ZTV5cc550[9]), 9,10},
+ {&(_tg__ZTV4bb50__5cc550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static VTBL_ENTRY alt_thunk_names235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc550 = { "cc550", // class name
+ bases_cc550, 2,
+ &(vtc_cc550[0]), // expected_vtbl_contents
+ &(vtt_cc550[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc550),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0550 : cc550 {
+ int d;
+ ~dd0550(); // tgen
+ dd0550(); // tgen
+};
+//SIG(-1 dd0550) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0550 ::~dd0550(){ note_dtor("dd0550", this);} // tgen
+dd0550 ::dd0550(){ note_ctor("dd0550", this);} // tgen
+
+static void Test_dd0550()
+{
+ extern Class_Descriptor cd_dd0550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0550, buf);
+ dd0550 *dp, &lv = *(dp=new (buf) dd0550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd0550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(16,12), "dd0550");
+ check_base_class_offset(lv, (cc550*), 0, "dd0550");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0550.d");
+ test_class_info(&lv, &cd_dd0550);
+ dp->~dd0550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0550(Test_dd0550, "dd0550", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0550C1Ev();
+extern void _ZN6dd0550D1Ev();
+Name_Map name_map_dd0550[] = {
+ NSPAIR(_ZN6dd0550C1Ev),
+ NSPAIR(_ZN6dd0550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd0550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd0550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd0550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0550[] = {
+ {&(_ZTV6dd0550[4]), 4,10},
+ {&(_tg__ZTV5cc550__6dd0550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd0550[4]), 4,5},
+ {&(_ZTV6dd0550[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd0550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static VTBL_ENTRY alt_thunk_names236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0550 = { "dd0550", // class name
+ bases_dd0550, 3,
+ &(vtc_dd0550[0]), // expected_vtbl_contents
+ &(vtt_dd0550[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0550),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00550 : dd0550 {
+ int e;
+ ~ee00550(); // tgen
+ ee00550(); // tgen
+};
+//SIG(1 ee00550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00550 ::~ee00550(){ note_dtor("ee00550", this);} // tgen
+ee00550 ::ee00550(){ note_ctor("ee00550", this);} // tgen
+
+static void Test_ee00550()
+{
+ extern Class_Descriptor cd_ee00550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00550, buf);
+ ee00550 *dp, &lv = *(dp=new (buf) ee00550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee00550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(24,16), "ee00550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), 0, "ee00550");
+ check_base_class_offset(lv, (dd0550*), 0, "ee00550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00550.e");
+ test_class_info(&lv, &cd_ee00550);
+ dp->~ee00550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00550(Test_ee00550, "ee00550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00550C1Ev();
+extern void _ZN7ee00550D1Ev();
+Name_Map name_map_ee00550[] = {
+ NSPAIR(_ZN7ee00550C1Ev),
+ NSPAIR(_ZN7ee00550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee00550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee00550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee00550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee00550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee00550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee00550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00550[] = {
+ {&(_ZTV7ee00550[4]), 4,10},
+ {&(_tg__ZTV6dd0550__7ee00550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee00550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee00550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee00550[4]), 4,5},
+ {&(_ZTV7ee00550[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee00550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00550[];
+extern VTBL_ENTRY _ZTV7ee00550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00550[];
+static VTBL_ENTRY alt_thunk_names237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00550 = { "ee00550", // class name
+ bases_ee00550, 4,
+ &(vtc_ee00550[0]), // expected_vtbl_contents
+ &(vtt_ee00550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10550 : virtual dd0550 {
+ int e;
+ ~ee10550(); // tgen
+ ee10550(); // tgen
+};
+//SIG(1 ee10550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10550 ::~ee10550(){ note_dtor("ee10550", this);} // tgen
+ee10550 ::ee10550(){ note_ctor("ee10550", this);} // tgen
+
+static void Test_ee10550()
+{
+ extern Class_Descriptor cd_ee10550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10550, buf);
+ ee10550 *dp, &lv = *(dp=new (buf) ee10550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee10550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(32,20), "ee10550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), ABISELECT(16,8), "ee10550");
+ check_base_class_offset(lv, (dd0550*), ABISELECT(16,8), "ee10550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10550.e");
+ test_class_info(&lv, &cd_ee10550);
+ dp->~ee10550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10550(Test_ee10550, "ee10550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10550C1Ev();
+extern void _ZN7ee10550D1Ev();
+Name_Map name_map_ee10550[] = {
+ NSPAIR(_ZN7ee10550C1Ev),
+ NSPAIR(_ZN7ee10550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee10550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee10550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10550[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee10550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee10550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee10550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee10550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee10550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10550[] = {
+ {&(_ZTV7ee10550[5]), 5,16},
+ {&(_ZTV7ee10550[10]), 10,16},
+ {&(_ZTV7ee10550[15]), 15,16},
+ {&(_tg__ZTV6dd0550__7ee10550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee10550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee10550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee10550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee10550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10550[];
+extern VTBL_ENTRY _ZTV7ee10550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10550[];
+static VTBL_ENTRY alt_thunk_names238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10550 = { "ee10550", // class name
+ bases_ee10550, 4,
+ &(vtc_ee10550[0]), // expected_vtbl_contents
+ &(vtt_ee10550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10550),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20550 : dd0550 {
+ int e;
+ virtual void foo(); // _ZN7ee205503fooEv
+ ~ee20550(); // tgen
+ ee20550(); // tgen
+};
+//SIG(1 ee20550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20550 ::foo(){vfunc_called(this, "_ZN7ee205503fooEv");}
+ee20550 ::~ee20550(){ note_dtor("ee20550", this);} // tgen
+ee20550 ::ee20550(){ note_ctor("ee20550", this);} // tgen
+
+static void Test_ee20550()
+{
+ extern Class_Descriptor cd_ee20550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20550, buf);
+ ee20550 *dp, &lv = *(dp=new (buf) ee20550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee20550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(24,16), "ee20550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), 0, "ee20550");
+ check_base_class_offset(lv, (dd0550*), 0, "ee20550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20550.e");
+ test_class_info(&lv, &cd_ee20550);
+ dp->~ee20550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20550(Test_ee20550, "ee20550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20550C1Ev();
+extern void _ZN7ee20550D1Ev();
+Name_Map name_map_ee20550[] = {
+ NSPAIR(_ZN7ee20550C1Ev),
+ NSPAIR(_ZN7ee20550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee20550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN7ee205503fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN7ee205503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee20550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee20550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee20550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee20550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee20550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20550[] = {
+ {&(_ZTV7ee20550[4]), 4,11},
+ {&(_tg__ZTV6dd0550__7ee20550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee20550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee20550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee20550[4]), 4,5},
+ {&(_ZTV7ee20550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee20550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20550[];
+extern VTBL_ENTRY _ZTV7ee20550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20550[];
+static VTBL_ENTRY alt_thunk_names239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20550 = { "ee20550", // class name
+ bases_ee20550, 4,
+ &(vtc_ee20550[0]), // expected_vtbl_contents
+ &(vtt_ee20550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30550 : virtual dd0550 {
+ int e;
+ virtual void foo(); // _ZN7ee305503fooEv
+ ~ee30550(); // tgen
+ ee30550(); // tgen
+};
+//SIG(1 ee30550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30550 ::foo(){vfunc_called(this, "_ZN7ee305503fooEv");}
+ee30550 ::~ee30550(){ note_dtor("ee30550", this);} // tgen
+ee30550 ::ee30550(){ note_ctor("ee30550", this);} // tgen
+
+static void Test_ee30550()
+{
+ extern Class_Descriptor cd_ee30550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30550, buf);
+ ee30550 *dp, &lv = *(dp=new (buf) ee30550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee30550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(32,20), "ee30550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), ABISELECT(16,8), "ee30550");
+ check_base_class_offset(lv, (dd0550*), ABISELECT(16,8), "ee30550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30550.e");
+ test_class_info(&lv, &cd_ee30550);
+ dp->~ee30550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30550(Test_ee30550, "ee30550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30550C1Ev();
+extern void _ZN7ee30550D1Ev();
+Name_Map name_map_ee30550[] = {
+ NSPAIR(_ZN7ee30550C1Ev),
+ NSPAIR(_ZN7ee30550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee30550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee30550[];
+extern void _ZN7ee305503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30550[0]),
+ (VTBL_ENTRY)&_ZN7ee305503fooEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee30550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee30550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee30550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee30550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee30550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30550[] = {
+ {&(_ZTV7ee30550[5]), 5,17},
+ {&(_ZTV7ee30550[11]), 11,17},
+ {&(_ZTV7ee30550[16]), 16,17},
+ {&(_tg__ZTV6dd0550__7ee30550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee30550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee30550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee30550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee30550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30550[];
+extern VTBL_ENTRY _ZTV7ee30550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30550[];
+static VTBL_ENTRY alt_thunk_names240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30550 = { "ee30550", // class name
+ bases_ee30550, 4,
+ &(vtc_ee30550[0]), // expected_vtbl_contents
+ &(vtt_ee30550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40550 : dd0550 {
+ int e;
+ virtual void bar(); // _ZN7ee405503barEv
+ ~ee40550(); // tgen
+ ee40550(); // tgen
+};
+//SIG(1 ee40550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40550 ::bar(){vfunc_called(this, "_ZN7ee405503barEv");}
+ee40550 ::~ee40550(){ note_dtor("ee40550", this);} // tgen
+ee40550 ::ee40550(){ note_ctor("ee40550", this);} // tgen
+
+static void Test_ee40550()
+{
+ extern Class_Descriptor cd_ee40550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40550, buf);
+ ee40550 *dp, &lv = *(dp=new (buf) ee40550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee40550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(24,16), "ee40550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), 0, "ee40550");
+ check_base_class_offset(lv, (dd0550*), 0, "ee40550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40550.e");
+ test_class_info(&lv, &cd_ee40550);
+ dp->~ee40550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40550(Test_ee40550, "ee40550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40550C1Ev();
+extern void _ZN7ee40550D1Ev();
+Name_Map name_map_ee40550[] = {
+ NSPAIR(_ZN7ee40550C1Ev),
+ NSPAIR(_ZN7ee40550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee40550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40550[];
+extern void _ZN7ee405503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405503barEv,_ZTv0_n16_N7ee405503barEv)();
+extern void ABISELECT(_ZThn24_N7ee405503barEv,_ZThn16_N7ee405503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40550[0]),
+ (VTBL_ENTRY)&_ZN7ee405503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405503barEv,_ZTv0_n16_N7ee405503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee40550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee40550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee40550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee40550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee40550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40550[] = {
+ {&(_ZTV7ee40550[4]), 4,10},
+ {&(_tg__ZTV6dd0550__7ee40550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee40550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee40550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee40550[4]), 4,5},
+ {&(_ZTV7ee40550[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee40550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40550[];
+extern VTBL_ENTRY _ZTV7ee40550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40550[];
+static VTBL_ENTRY alt_thunk_names241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405503barEv,_ZTv0_n16_N7ee405503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405503barEv,_ZThn16_N7ee405503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40550 = { "ee40550", // class name
+ bases_ee40550, 4,
+ &(vtc_ee40550[0]), // expected_vtbl_contents
+ &(vtt_ee40550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50550 : virtual dd0550 {
+ int e;
+ virtual void bar(); // _ZN7ee505503barEv
+ ~ee50550(); // tgen
+ ee50550(); // tgen
+};
+//SIG(1 ee50550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50550 ::bar(){vfunc_called(this, "_ZN7ee505503barEv");}
+ee50550 ::~ee50550(){ note_dtor("ee50550", this);} // tgen
+ee50550 ::ee50550(){ note_ctor("ee50550", this);} // tgen
+
+static void Test_ee50550()
+{
+ extern Class_Descriptor cd_ee50550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50550, buf);
+ ee50550 *dp, &lv = *(dp=new (buf) ee50550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee50550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(32,20), "ee50550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), ABISELECT(16,8), "ee50550");
+ check_base_class_offset(lv, (dd0550*), ABISELECT(16,8), "ee50550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50550.e");
+ test_class_info(&lv, &cd_ee50550);
+ dp->~ee50550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50550(Test_ee50550, "ee50550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50550C1Ev();
+extern void _ZN7ee50550D1Ev();
+Name_Map name_map_ee50550[] = {
+ NSPAIR(_ZN7ee50550C1Ev),
+ NSPAIR(_ZN7ee50550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee50550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee50550[];
+extern void _ZN7ee505503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee505503barEv,_ZTv0_n20_N7ee505503barEv)();
+extern void ABISELECT(_ZThn16_N7ee505503barEv,_ZThn8_N7ee505503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee505503barEv,_ZTv0_n16_N7ee505503barEv)();
+extern void ABISELECT(_ZThn32_N7ee505503barEv,_ZThn20_N7ee505503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50550[0]),
+ (VTBL_ENTRY)&_ZN7ee505503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee505503barEv,_ZTv0_n20_N7ee505503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505503barEv,_ZTv0_n16_N7ee505503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee50550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee50550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee50550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee50550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee50550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50550[] = {
+ {&(_ZTV7ee50550[5]), 5,17},
+ {&(_ZTV7ee50550[11]), 11,17},
+ {&(_ZTV7ee50550[16]), 16,17},
+ {&(_tg__ZTV6dd0550__7ee50550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee50550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee50550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee50550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee50550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50550[];
+extern VTBL_ENTRY _ZTV7ee50550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50550[];
+static VTBL_ENTRY alt_thunk_names242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505503barEv,_ZTv0_n16_N7ee505503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505503barEv,_ZThn20_N7ee505503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee505503barEv,_ZTv0_n20_N7ee505503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505503barEv,_ZThn8_N7ee505503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50550 = { "ee50550", // class name
+ bases_ee50550, 4,
+ &(vtc_ee50550[0]), // expected_vtbl_contents
+ &(vtt_ee50550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60550 : dd0550 {
+ int e;
+ virtual void foo(); // _ZN7ee605503fooEv
+ virtual void bar(); // _ZN7ee605503barEv
+ ~ee60550(); // tgen
+ ee60550(); // tgen
+};
+//SIG(1 ee60550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60550 ::foo(){vfunc_called(this, "_ZN7ee605503fooEv");}
+void ee60550 ::bar(){vfunc_called(this, "_ZN7ee605503barEv");}
+ee60550 ::~ee60550(){ note_dtor("ee60550", this);} // tgen
+ee60550 ::ee60550(){ note_ctor("ee60550", this);} // tgen
+
+static void Test_ee60550()
+{
+ extern Class_Descriptor cd_ee60550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60550, buf);
+ ee60550 *dp, &lv = *(dp=new (buf) ee60550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee60550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(24,16), "ee60550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), 0, "ee60550");
+ check_base_class_offset(lv, (dd0550*), 0, "ee60550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60550.e");
+ test_class_info(&lv, &cd_ee60550);
+ dp->~ee60550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60550(Test_ee60550, "ee60550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60550C1Ev();
+extern void _ZN7ee60550D1Ev();
+Name_Map name_map_ee60550[] = {
+ NSPAIR(_ZN7ee60550C1Ev),
+ NSPAIR(_ZN7ee60550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee60550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60550[];
+extern void _ZN7ee605503barEv();
+extern void _ZN7ee605503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee605503barEv,_ZTv0_n16_N7ee605503barEv)();
+extern void ABISELECT(_ZThn24_N7ee605503barEv,_ZThn16_N7ee605503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60550[0]),
+ (VTBL_ENTRY)&_ZN7ee605503barEv,
+ (VTBL_ENTRY)&_ZN7ee605503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605503barEv,_ZTv0_n16_N7ee605503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee60550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee60550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee60550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee60550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee60550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60550[] = {
+ {&(_ZTV7ee60550[4]), 4,11},
+ {&(_tg__ZTV6dd0550__7ee60550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee60550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee60550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee60550[4]), 4,5},
+ {&(_ZTV7ee60550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee60550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60550[];
+extern VTBL_ENTRY _ZTV7ee60550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60550[];
+static VTBL_ENTRY alt_thunk_names243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605503barEv,_ZTv0_n16_N7ee605503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605503barEv,_ZThn16_N7ee605503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60550 = { "ee60550", // class name
+ bases_ee60550, 4,
+ &(vtc_ee60550[0]), // expected_vtbl_contents
+ &(vtt_ee60550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70550 : virtual dd0550 {
+ int e;
+ virtual void foo(); // _ZN7ee705503fooEv
+ virtual void bar(); // _ZN7ee705503barEv
+ ~ee70550(); // tgen
+ ee70550(); // tgen
+};
+//SIG(1 ee70550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70550 ::foo(){vfunc_called(this, "_ZN7ee705503fooEv");}
+void ee70550 ::bar(){vfunc_called(this, "_ZN7ee705503barEv");}
+ee70550 ::~ee70550(){ note_dtor("ee70550", this);} // tgen
+ee70550 ::ee70550(){ note_ctor("ee70550", this);} // tgen
+
+static void Test_ee70550()
+{
+ extern Class_Descriptor cd_ee70550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70550, buf);
+ ee70550 *dp, &lv = *(dp=new (buf) ee70550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee70550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd0550*), ABISELECT(32,20), "ee70550");
+ check_base_class_offset(lv, (cc550*)(dd0550*), ABISELECT(16,8), "ee70550");
+ check_base_class_offset(lv, (dd0550*), ABISELECT(16,8), "ee70550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70550.e");
+ test_class_info(&lv, &cd_ee70550);
+ dp->~ee70550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70550(Test_ee70550, "ee70550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70550C1Ev();
+extern void _ZN7ee70550D1Ev();
+Name_Map name_map_ee70550[] = {
+ NSPAIR(_ZN7ee70550C1Ev),
+ NSPAIR(_ZN7ee70550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd0550;
+extern VTBL_ENTRY _ZTI6dd0550[];
+extern VTBL_ENTRY _ZTV6dd0550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0550[];
+static Base_Class bases_ee70550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0550, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70550[];
+extern void _ZN7ee705503fooEv();
+extern void _ZN7ee705503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee705503barEv,_ZTv0_n20_N7ee705503barEv)();
+extern void ABISELECT(_ZThn16_N7ee705503barEv,_ZThn8_N7ee705503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705503barEv,_ZTv0_n16_N7ee705503barEv)();
+extern void ABISELECT(_ZThn32_N7ee705503barEv,_ZThn20_N7ee705503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70550[0]),
+ (VTBL_ENTRY)&_ZN7ee705503fooEv,
+ (VTBL_ENTRY)&_ZN7ee705503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee705503barEv,_ZTv0_n20_N7ee705503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705503barEv,_ZTv0_n16_N7ee705503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0550__7ee70550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd0550__7ee70550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd0550__7ee70550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0550__7ee70550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee70550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70550[] = {
+ {&(_ZTV7ee70550[5]), 5,18},
+ {&(_ZTV7ee70550[12]), 12,18},
+ {&(_ZTV7ee70550[17]), 17,18},
+ {&(_tg__ZTV6dd0550__7ee70550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd0550__7ee70550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd0550__7ee70550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0550__7ee70550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee70550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70550[];
+extern VTBL_ENTRY _ZTV7ee70550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70550[];
+static VTBL_ENTRY alt_thunk_names244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705503barEv,_ZTv0_n16_N7ee705503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705503barEv,_ZThn20_N7ee705503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee705503barEv,_ZTv0_n20_N7ee705503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705503barEv,_ZThn8_N7ee705503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70550 = { "ee70550", // class name
+ bases_ee70550, 4,
+ &(vtc_ee70550[0]), // expected_vtbl_contents
+ &(vtt_ee70550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1550 : virtual cc550 {
+ int d;
+ ~dd1550(); // tgen
+ dd1550(); // tgen
+};
+//SIG(-1 dd1550) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1550 ::~dd1550(){ note_dtor("dd1550", this);} // tgen
+dd1550 ::dd1550(){ note_ctor("dd1550", this);} // tgen
+
+static void Test_dd1550()
+{
+ extern Class_Descriptor cd_dd1550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1550, buf);
+ dd1550 *dp, &lv = *(dp=new (buf) dd1550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd1550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,16), "dd1550");
+ check_base_class_offset(lv, (cc550*), ABISELECT(16,8), "dd1550");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1550.d");
+ test_class_info(&lv, &cd_dd1550);
+ dp->~dd1550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1550(Test_dd1550, "dd1550", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1550C1Ev();
+extern void _ZN6dd1550D1Ev();
+Name_Map name_map_dd1550[] = {
+ NSPAIR(_ZN6dd1550C1Ev),
+ NSPAIR(_ZN6dd1550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd1550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd1550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1550[] = {
+ {&(_ZTV6dd1550[5]), 5,16},
+ {&(_ZTV6dd1550[10]), 10,16},
+ {&(_ZTV6dd1550[15]), 15,16},
+ {&(_tg__ZTV5cc550__6dd1550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd1550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd1550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static VTBL_ENTRY alt_thunk_names245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1550 = { "dd1550", // class name
+ bases_dd1550, 3,
+ &(vtc_dd1550[0]), // expected_vtbl_contents
+ &(vtt_dd1550[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1550),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1550),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01550 : dd1550 {
+ int e;
+ ~ee01550(); // tgen
+ ee01550(); // tgen
+};
+//SIG(1 ee01550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01550 ::~ee01550(){ note_dtor("ee01550", this);} // tgen
+ee01550 ::ee01550(){ note_ctor("ee01550", this);} // tgen
+
+static void Test_ee01550()
+{
+ extern Class_Descriptor cd_ee01550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01550, buf);
+ ee01550 *dp, &lv = *(dp=new (buf) ee01550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee01550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee01550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(16,12), "ee01550");
+ check_base_class_offset(lv, (dd1550*), 0, "ee01550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01550.e");
+ test_class_info(&lv, &cd_ee01550);
+ dp->~ee01550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01550(Test_ee01550, "ee01550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01550C1Ev();
+extern void _ZN7ee01550D1Ev();
+Name_Map name_map_ee01550[] = {
+ NSPAIR(_ZN7ee01550C1Ev),
+ NSPAIR(_ZN7ee01550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee01550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01550[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee01550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee01550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee01550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee01550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee01550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee01550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01550[] = {
+ {&(_ZTV7ee01550[5]), 5,16},
+ {&(_tg__ZTV6dd1550__7ee01550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee01550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee01550[4]), 4,5},
+ {&(_ZTV7ee01550[10]), 10,16},
+ {&(_ZTV7ee01550[15]), 15,16},
+ {&(_tg__ZTV5cc550__7ee01550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee01550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee01550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01550[];
+extern VTBL_ENTRY _ZTV7ee01550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01550[];
+static VTBL_ENTRY alt_thunk_names246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01550 = { "ee01550", // class name
+ bases_ee01550, 4,
+ &(vtc_ee01550[0]), // expected_vtbl_contents
+ &(vtt_ee01550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01550),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11550 : virtual dd1550 {
+ int e;
+ ~ee11550(); // tgen
+ ee11550(); // tgen
+};
+//SIG(1 ee11550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11550 ::~ee11550(){ note_dtor("ee11550", this);} // tgen
+ee11550 ::ee11550(){ note_ctor("ee11550", this);} // tgen
+
+static void Test_ee11550()
+{
+ extern Class_Descriptor cd_ee11550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11550, buf);
+ ee11550 *dp, &lv = *(dp=new (buf) ee11550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee11550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee11550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(32,16), "ee11550");
+ check_base_class_offset(lv, (dd1550*), ABISELECT(16,8), "ee11550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11550.e");
+ test_class_info(&lv, &cd_ee11550);
+ dp->~ee11550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11550(Test_ee11550, "ee11550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11550C1Ev();
+extern void _ZN7ee11550D1Ev();
+Name_Map name_map_ee11550[] = {
+ NSPAIR(_ZN7ee11550C1Ev),
+ NSPAIR(_ZN7ee11550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee11550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI7ee11550[];
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11550[0]),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11550[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee11550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee11550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee11550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee11550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee11550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee11550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11550[] = {
+ {&(_ZTV7ee11550[6]), 6,22},
+ {&(_ZTV7ee11550[11]), 11,22},
+ {&(_ZTV7ee11550[16]), 16,22},
+ {&(_ZTV7ee11550[21]), 21,22},
+ {&(_tg__ZTV6dd1550__7ee11550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee11550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee11550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee11550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee11550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee11550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11550[];
+extern VTBL_ENTRY _ZTV7ee11550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11550[];
+static VTBL_ENTRY alt_thunk_names247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11550 = { "ee11550", // class name
+ bases_ee11550, 4,
+ &(vtc_ee11550[0]), // expected_vtbl_contents
+ &(vtt_ee11550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11550),22, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21550 : dd1550 {
+ int e;
+ virtual void foo(); // _ZN7ee215503fooEv
+ ~ee21550(); // tgen
+ ee21550(); // tgen
+};
+//SIG(1 ee21550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21550 ::foo(){vfunc_called(this, "_ZN7ee215503fooEv");}
+ee21550 ::~ee21550(){ note_dtor("ee21550", this);} // tgen
+ee21550 ::ee21550(){ note_ctor("ee21550", this);} // tgen
+
+static void Test_ee21550()
+{
+ extern Class_Descriptor cd_ee21550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21550, buf);
+ ee21550 *dp, &lv = *(dp=new (buf) ee21550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee21550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee21550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(16,12), "ee21550");
+ check_base_class_offset(lv, (dd1550*), 0, "ee21550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21550.e");
+ test_class_info(&lv, &cd_ee21550);
+ dp->~ee21550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21550(Test_ee21550, "ee21550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21550C1Ev();
+extern void _ZN7ee21550D1Ev();
+Name_Map name_map_ee21550[] = {
+ NSPAIR(_ZN7ee21550C1Ev),
+ NSPAIR(_ZN7ee21550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee21550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21550[];
+extern void _ZN7ee215503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21550[0]),
+ (VTBL_ENTRY)&_ZN7ee215503fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee21550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee21550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee21550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee21550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee21550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee21550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21550[] = {
+ {&(_ZTV7ee21550[5]), 5,17},
+ {&(_tg__ZTV6dd1550__7ee21550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee21550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee21550[4]), 4,5},
+ {&(_ZTV7ee21550[11]), 11,17},
+ {&(_ZTV7ee21550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee21550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee21550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee21550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21550[];
+extern VTBL_ENTRY _ZTV7ee21550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21550[];
+static VTBL_ENTRY alt_thunk_names248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21550 = { "ee21550", // class name
+ bases_ee21550, 4,
+ &(vtc_ee21550[0]), // expected_vtbl_contents
+ &(vtt_ee21550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31550 : virtual dd1550 {
+ int e;
+ virtual void foo(); // _ZN7ee315503fooEv
+ ~ee31550(); // tgen
+ ee31550(); // tgen
+};
+//SIG(1 ee31550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31550 ::foo(){vfunc_called(this, "_ZN7ee315503fooEv");}
+ee31550 ::~ee31550(){ note_dtor("ee31550", this);} // tgen
+ee31550 ::ee31550(){ note_ctor("ee31550", this);} // tgen
+
+static void Test_ee31550()
+{
+ extern Class_Descriptor cd_ee31550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31550, buf);
+ ee31550 *dp, &lv = *(dp=new (buf) ee31550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee31550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee31550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(32,16), "ee31550");
+ check_base_class_offset(lv, (dd1550*), ABISELECT(16,8), "ee31550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31550.e");
+ test_class_info(&lv, &cd_ee31550);
+ dp->~ee31550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31550(Test_ee31550, "ee31550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31550C1Ev();
+extern void _ZN7ee31550D1Ev();
+Name_Map name_map_ee31550[] = {
+ NSPAIR(_ZN7ee31550C1Ev),
+ NSPAIR(_ZN7ee31550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee31550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31550[];
+extern void _ZN7ee315503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31550[0]),
+ (VTBL_ENTRY)&_ZN7ee315503fooEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31550[0]),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee31550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee31550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee31550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee31550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee31550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee31550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31550[] = {
+ {&(_ZTV7ee31550[6]), 6,23},
+ {&(_ZTV7ee31550[12]), 12,23},
+ {&(_ZTV7ee31550[17]), 17,23},
+ {&(_ZTV7ee31550[22]), 22,23},
+ {&(_tg__ZTV6dd1550__7ee31550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee31550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee31550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee31550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee31550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee31550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31550[];
+extern VTBL_ENTRY _ZTV7ee31550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31550[];
+static VTBL_ENTRY alt_thunk_names249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31550 = { "ee31550", // class name
+ bases_ee31550, 4,
+ &(vtc_ee31550[0]), // expected_vtbl_contents
+ &(vtt_ee31550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31550),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41550 : dd1550 {
+ int e;
+ virtual void bar(); // _ZN7ee415503barEv
+ ~ee41550(); // tgen
+ ee41550(); // tgen
+};
+//SIG(1 ee41550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41550 ::bar(){vfunc_called(this, "_ZN7ee415503barEv");}
+ee41550 ::~ee41550(){ note_dtor("ee41550", this);} // tgen
+ee41550 ::ee41550(){ note_ctor("ee41550", this);} // tgen
+
+static void Test_ee41550()
+{
+ extern Class_Descriptor cd_ee41550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41550, buf);
+ ee41550 *dp, &lv = *(dp=new (buf) ee41550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee41550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee41550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(16,12), "ee41550");
+ check_base_class_offset(lv, (dd1550*), 0, "ee41550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41550.e");
+ test_class_info(&lv, &cd_ee41550);
+ dp->~ee41550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41550(Test_ee41550, "ee41550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41550C1Ev();
+extern void _ZN7ee41550D1Ev();
+Name_Map name_map_ee41550[] = {
+ NSPAIR(_ZN7ee41550C1Ev),
+ NSPAIR(_ZN7ee41550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee41550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41550[];
+extern void _ZN7ee415503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee415503barEv,_ZTv0_n20_N7ee415503barEv)();
+extern void ABISELECT(_ZThn16_N7ee415503barEv,_ZThn12_N7ee415503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee415503barEv,_ZTv0_n16_N7ee415503barEv)();
+extern void ABISELECT(_ZThn32_N7ee415503barEv,_ZThn20_N7ee415503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41550[0]),
+ (VTBL_ENTRY)&_ZN7ee415503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee415503barEv,_ZTv0_n20_N7ee415503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415503barEv,_ZTv0_n16_N7ee415503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee41550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee41550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee41550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee41550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee41550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee41550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41550[] = {
+ {&(_ZTV7ee41550[5]), 5,17},
+ {&(_tg__ZTV6dd1550__7ee41550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee41550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee41550[4]), 4,5},
+ {&(_ZTV7ee41550[11]), 11,17},
+ {&(_ZTV7ee41550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee41550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee41550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee41550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41550[];
+extern VTBL_ENTRY _ZTV7ee41550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41550[];
+static VTBL_ENTRY alt_thunk_names250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415503barEv,_ZTv0_n16_N7ee415503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415503barEv,_ZThn20_N7ee415503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee415503barEv,_ZTv0_n20_N7ee415503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415503barEv,_ZThn12_N7ee415503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41550 = { "ee41550", // class name
+ bases_ee41550, 4,
+ &(vtc_ee41550[0]), // expected_vtbl_contents
+ &(vtt_ee41550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51550 : virtual dd1550 {
+ int e;
+ virtual void bar(); // _ZN7ee515503barEv
+ ~ee51550(); // tgen
+ ee51550(); // tgen
+};
+//SIG(1 ee51550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51550 ::bar(){vfunc_called(this, "_ZN7ee515503barEv");}
+ee51550 ::~ee51550(){ note_dtor("ee51550", this);} // tgen
+ee51550 ::ee51550(){ note_ctor("ee51550", this);} // tgen
+
+static void Test_ee51550()
+{
+ extern Class_Descriptor cd_ee51550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51550, buf);
+ ee51550 *dp, &lv = *(dp=new (buf) ee51550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee51550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee51550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(32,16), "ee51550");
+ check_base_class_offset(lv, (dd1550*), ABISELECT(16,8), "ee51550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51550.e");
+ test_class_info(&lv, &cd_ee51550);
+ dp->~ee51550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51550(Test_ee51550, "ee51550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51550C1Ev();
+extern void _ZN7ee51550D1Ev();
+Name_Map name_map_ee51550[] = {
+ NSPAIR(_ZN7ee51550C1Ev),
+ NSPAIR(_ZN7ee51550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee51550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51550[];
+extern void _ZN7ee515503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee515503barEv,_ZTv0_n20_N7ee515503barEv)();
+extern void ABISELECT(_ZThn32_N7ee515503barEv,_ZThn16_N7ee515503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee515503barEv,_ZTv0_n16_N7ee515503barEv)();
+extern void ABISELECT(_ZThn48_N7ee515503barEv,_ZThn24_N7ee515503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51550[0]),
+ (VTBL_ENTRY)&_ZN7ee515503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51550[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee515503barEv,_ZTv0_n20_N7ee515503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515503barEv,_ZTv0_n16_N7ee515503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee51550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee51550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee51550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee51550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee51550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee51550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51550[] = {
+ {&(_ZTV7ee51550[6]), 6,23},
+ {&(_ZTV7ee51550[12]), 12,23},
+ {&(_ZTV7ee51550[17]), 17,23},
+ {&(_ZTV7ee51550[22]), 22,23},
+ {&(_tg__ZTV6dd1550__7ee51550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee51550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee51550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee51550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee51550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee51550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51550[];
+extern VTBL_ENTRY _ZTV7ee51550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51550[];
+static VTBL_ENTRY alt_thunk_names251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515503barEv,_ZTv0_n16_N7ee515503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515503barEv,_ZThn24_N7ee515503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee515503barEv,_ZTv0_n20_N7ee515503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515503barEv,_ZThn16_N7ee515503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51550 = { "ee51550", // class name
+ bases_ee51550, 4,
+ &(vtc_ee51550[0]), // expected_vtbl_contents
+ &(vtt_ee51550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51550),23, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61550 : dd1550 {
+ int e;
+ virtual void foo(); // _ZN7ee615503fooEv
+ virtual void bar(); // _ZN7ee615503barEv
+ ~ee61550(); // tgen
+ ee61550(); // tgen
+};
+//SIG(1 ee61550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61550 ::foo(){vfunc_called(this, "_ZN7ee615503fooEv");}
+void ee61550 ::bar(){vfunc_called(this, "_ZN7ee615503barEv");}
+ee61550 ::~ee61550(){ note_dtor("ee61550", this);} // tgen
+ee61550 ::ee61550(){ note_ctor("ee61550", this);} // tgen
+
+static void Test_ee61550()
+{
+ extern Class_Descriptor cd_ee61550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61550, buf);
+ ee61550 *dp, &lv = *(dp=new (buf) ee61550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee61550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee61550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(16,12), "ee61550");
+ check_base_class_offset(lv, (dd1550*), 0, "ee61550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61550.e");
+ test_class_info(&lv, &cd_ee61550);
+ dp->~ee61550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61550(Test_ee61550, "ee61550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61550C1Ev();
+extern void _ZN7ee61550D1Ev();
+Name_Map name_map_ee61550[] = {
+ NSPAIR(_ZN7ee61550C1Ev),
+ NSPAIR(_ZN7ee61550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee61550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61550[];
+extern void _ZN7ee615503fooEv();
+extern void _ZN7ee615503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee615503barEv,_ZTv0_n20_N7ee615503barEv)();
+extern void ABISELECT(_ZThn16_N7ee615503barEv,_ZThn12_N7ee615503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615503barEv,_ZTv0_n16_N7ee615503barEv)();
+extern void ABISELECT(_ZThn32_N7ee615503barEv,_ZThn20_N7ee615503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61550[0]),
+ (VTBL_ENTRY)&_ZN7ee615503fooEv,
+ (VTBL_ENTRY)&_ZN7ee615503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee615503barEv,_ZTv0_n20_N7ee615503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615503barEv,_ZTv0_n16_N7ee615503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee61550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee61550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee61550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee61550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee61550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee61550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61550[] = {
+ {&(_ZTV7ee61550[5]), 5,18},
+ {&(_tg__ZTV6dd1550__7ee61550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee61550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee61550[4]), 4,5},
+ {&(_ZTV7ee61550[12]), 12,18},
+ {&(_ZTV7ee61550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee61550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee61550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee61550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61550[];
+extern VTBL_ENTRY _ZTV7ee61550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61550[];
+static VTBL_ENTRY alt_thunk_names252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615503barEv,_ZTv0_n16_N7ee615503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615503barEv,_ZThn20_N7ee615503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee615503barEv,_ZTv0_n20_N7ee615503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615503barEv,_ZThn12_N7ee615503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61550 = { "ee61550", // class name
+ bases_ee61550, 4,
+ &(vtc_ee61550[0]), // expected_vtbl_contents
+ &(vtt_ee61550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71550 : virtual dd1550 {
+ int e;
+ virtual void foo(); // _ZN7ee715503fooEv
+ virtual void bar(); // _ZN7ee715503barEv
+ ~ee71550(); // tgen
+ ee71550(); // tgen
+};
+//SIG(1 ee71550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71550 ::foo(){vfunc_called(this, "_ZN7ee715503fooEv");}
+void ee71550 ::bar(){vfunc_called(this, "_ZN7ee715503barEv");}
+ee71550 ::~ee71550(){ note_dtor("ee71550", this);} // tgen
+ee71550 ::ee71550(){ note_ctor("ee71550", this);} // tgen
+
+static void Test_ee71550()
+{
+ extern Class_Descriptor cd_ee71550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71550, buf);
+ ee71550 *dp, &lv = *(dp=new (buf) ee71550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee71550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee71550");
+ check_base_class_offset(lv, (cc550*)(dd1550*), ABISELECT(32,16), "ee71550");
+ check_base_class_offset(lv, (dd1550*), ABISELECT(16,8), "ee71550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71550.e");
+ test_class_info(&lv, &cd_ee71550);
+ dp->~ee71550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71550(Test_ee71550, "ee71550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71550C1Ev();
+extern void _ZN7ee71550D1Ev();
+Name_Map name_map_ee71550[] = {
+ NSPAIR(_ZN7ee71550C1Ev),
+ NSPAIR(_ZN7ee71550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd1550;
+extern VTBL_ENTRY _ZTI6dd1550[];
+extern VTBL_ENTRY _ZTV6dd1550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1550[];
+static Base_Class bases_ee71550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1550, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71550[];
+extern void _ZN7ee715503fooEv();
+extern void _ZN7ee715503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee715503barEv,_ZTv0_n20_N7ee715503barEv)();
+extern void ABISELECT(_ZThn32_N7ee715503barEv,_ZThn16_N7ee715503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715503barEv,_ZTv0_n16_N7ee715503barEv)();
+extern void ABISELECT(_ZThn48_N7ee715503barEv,_ZThn24_N7ee715503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71550[0]),
+ (VTBL_ENTRY)&_ZN7ee715503fooEv,
+ (VTBL_ENTRY)&_ZN7ee715503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71550[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee715503barEv,_ZTv0_n20_N7ee715503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715503barEv,_ZTv0_n16_N7ee715503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71550[];
+static VTBL_ENTRY _tg__ZTV6dd1550__7ee71550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd1550__7ee71550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1550__7ee71550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee71550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee71550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee71550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71550[] = {
+ {&(_ZTV7ee71550[6]), 6,24},
+ {&(_ZTV7ee71550[13]), 13,24},
+ {&(_ZTV7ee71550[18]), 18,24},
+ {&(_ZTV7ee71550[23]), 23,24},
+ {&(_tg__ZTV6dd1550__7ee71550[5]), 5,5},
+ {&(_tg__ZTV5cc550__6dd1550__7ee71550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd1550__7ee71550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee71550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee71550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee71550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71550[];
+extern VTBL_ENTRY _ZTV7ee71550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71550[];
+static VTBL_ENTRY alt_thunk_names253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715503barEv,_ZTv0_n16_N7ee715503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715503barEv,_ZThn24_N7ee715503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee715503barEv,_ZTv0_n20_N7ee715503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715503barEv,_ZThn16_N7ee715503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71550 = { "ee71550", // class name
+ bases_ee71550, 4,
+ &(vtc_ee71550[0]), // expected_vtbl_contents
+ &(vtt_ee71550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71550),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2550 : cc550 {
+ int d;
+ virtual void foo(); // _ZN6dd25503fooEv
+ ~dd2550(); // tgen
+ dd2550(); // tgen
+};
+//SIG(-1 dd2550) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2550 ::foo(){vfunc_called(this, "_ZN6dd25503fooEv");}
+dd2550 ::~dd2550(){ note_dtor("dd2550", this);} // tgen
+dd2550 ::dd2550(){ note_ctor("dd2550", this);} // tgen
+
+static void Test_dd2550()
+{
+ extern Class_Descriptor cd_dd2550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2550, buf);
+ dd2550 *dp, &lv = *(dp=new (buf) dd2550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd2550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(16,12), "dd2550");
+ check_base_class_offset(lv, (cc550*), 0, "dd2550");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2550.d");
+ test_class_info(&lv, &cd_dd2550);
+ dp->~dd2550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2550(Test_dd2550, "dd2550", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2550C1Ev();
+extern void _ZN6dd2550D1Ev();
+Name_Map name_map_dd2550[] = {
+ NSPAIR(_ZN6dd2550C1Ev),
+ NSPAIR(_ZN6dd2550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd2550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd2550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd2550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2550[] = {
+ {&(_ZTV6dd2550[4]), 4,11},
+ {&(_tg__ZTV5cc550__6dd2550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd2550[4]), 4,5},
+ {&(_ZTV6dd2550[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd2550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static VTBL_ENTRY alt_thunk_names254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2550 = { "dd2550", // class name
+ bases_dd2550, 3,
+ &(vtc_dd2550[0]), // expected_vtbl_contents
+ &(vtt_dd2550[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2550),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02550 : dd2550 {
+ int e;
+ ~ee02550(); // tgen
+ ee02550(); // tgen
+};
+//SIG(1 ee02550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02550 ::~ee02550(){ note_dtor("ee02550", this);} // tgen
+ee02550 ::ee02550(){ note_ctor("ee02550", this);} // tgen
+
+static void Test_ee02550()
+{
+ extern Class_Descriptor cd_ee02550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02550, buf);
+ ee02550 *dp, &lv = *(dp=new (buf) ee02550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee02550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(24,16), "ee02550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), 0, "ee02550");
+ check_base_class_offset(lv, (dd2550*), 0, "ee02550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02550.e");
+ test_class_info(&lv, &cd_ee02550);
+ dp->~ee02550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02550(Test_ee02550, "ee02550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02550C1Ev();
+extern void _ZN7ee02550D1Ev();
+Name_Map name_map_ee02550[] = {
+ NSPAIR(_ZN7ee02550C1Ev),
+ NSPAIR(_ZN7ee02550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee02550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee02550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee02550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee02550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee02550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee02550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02550[] = {
+ {&(_ZTV7ee02550[4]), 4,11},
+ {&(_tg__ZTV6dd2550__7ee02550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee02550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee02550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee02550[4]), 4,5},
+ {&(_ZTV7ee02550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee02550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02550[];
+extern VTBL_ENTRY _ZTV7ee02550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02550[];
+static VTBL_ENTRY alt_thunk_names255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02550 = { "ee02550", // class name
+ bases_ee02550, 4,
+ &(vtc_ee02550[0]), // expected_vtbl_contents
+ &(vtt_ee02550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12550 : virtual dd2550 {
+ int e;
+ ~ee12550(); // tgen
+ ee12550(); // tgen
+};
+//SIG(1 ee12550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12550 ::~ee12550(){ note_dtor("ee12550", this);} // tgen
+ee12550 ::ee12550(){ note_ctor("ee12550", this);} // tgen
+
+static void Test_ee12550()
+{
+ extern Class_Descriptor cd_ee12550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12550, buf);
+ ee12550 *dp, &lv = *(dp=new (buf) ee12550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee12550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(32,20), "ee12550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), ABISELECT(16,8), "ee12550");
+ check_base_class_offset(lv, (dd2550*), ABISELECT(16,8), "ee12550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12550.e");
+ test_class_info(&lv, &cd_ee12550);
+ dp->~ee12550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12550(Test_ee12550, "ee12550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12550C1Ev();
+extern void _ZN7ee12550D1Ev();
+Name_Map name_map_ee12550[] = {
+ NSPAIR(_ZN7ee12550C1Ev),
+ NSPAIR(_ZN7ee12550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee12550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee12550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12550[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee12550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee12550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee12550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee12550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee12550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12550[] = {
+ {&(_ZTV7ee12550[5]), 5,18},
+ {&(_ZTV7ee12550[11]), 11,18},
+ {&(_ZTV7ee12550[17]), 17,18},
+ {&(_tg__ZTV6dd2550__7ee12550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee12550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee12550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee12550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee12550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12550[];
+extern VTBL_ENTRY _ZTV7ee12550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12550[];
+static VTBL_ENTRY alt_thunk_names256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12550 = { "ee12550", // class name
+ bases_ee12550, 4,
+ &(vtc_ee12550[0]), // expected_vtbl_contents
+ &(vtt_ee12550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22550 : dd2550 {
+ int e;
+ virtual void foo(); // _ZN7ee225503fooEv
+ ~ee22550(); // tgen
+ ee22550(); // tgen
+};
+//SIG(1 ee22550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22550 ::foo(){vfunc_called(this, "_ZN7ee225503fooEv");}
+ee22550 ::~ee22550(){ note_dtor("ee22550", this);} // tgen
+ee22550 ::ee22550(){ note_ctor("ee22550", this);} // tgen
+
+static void Test_ee22550()
+{
+ extern Class_Descriptor cd_ee22550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22550, buf);
+ ee22550 *dp, &lv = *(dp=new (buf) ee22550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee22550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(24,16), "ee22550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), 0, "ee22550");
+ check_base_class_offset(lv, (dd2550*), 0, "ee22550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22550.e");
+ test_class_info(&lv, &cd_ee22550);
+ dp->~ee22550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22550(Test_ee22550, "ee22550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22550C1Ev();
+extern void _ZN7ee22550D1Ev();
+Name_Map name_map_ee22550[] = {
+ NSPAIR(_ZN7ee22550C1Ev),
+ NSPAIR(_ZN7ee22550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee22550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN7ee225503fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN7ee225503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee22550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee22550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee22550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee22550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee22550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22550[] = {
+ {&(_ZTV7ee22550[4]), 4,11},
+ {&(_tg__ZTV6dd2550__7ee22550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee22550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee22550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee22550[4]), 4,5},
+ {&(_ZTV7ee22550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee22550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22550[];
+extern VTBL_ENTRY _ZTV7ee22550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22550[];
+static VTBL_ENTRY alt_thunk_names257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22550 = { "ee22550", // class name
+ bases_ee22550, 4,
+ &(vtc_ee22550[0]), // expected_vtbl_contents
+ &(vtt_ee22550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32550 : virtual dd2550 {
+ int e;
+ virtual void foo(); // _ZN7ee325503fooEv
+ ~ee32550(); // tgen
+ ee32550(); // tgen
+};
+//SIG(1 ee32550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32550 ::foo(){vfunc_called(this, "_ZN7ee325503fooEv");}
+ee32550 ::~ee32550(){ note_dtor("ee32550", this);} // tgen
+ee32550 ::ee32550(){ note_ctor("ee32550", this);} // tgen
+
+static void Test_ee32550()
+{
+ extern Class_Descriptor cd_ee32550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32550, buf);
+ ee32550 *dp, &lv = *(dp=new (buf) ee32550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee32550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(32,20), "ee32550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), ABISELECT(16,8), "ee32550");
+ check_base_class_offset(lv, (dd2550*), ABISELECT(16,8), "ee32550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32550.e");
+ test_class_info(&lv, &cd_ee32550);
+ dp->~ee32550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32550(Test_ee32550, "ee32550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32550C1Ev();
+extern void _ZN7ee32550D1Ev();
+Name_Map name_map_ee32550[] = {
+ NSPAIR(_ZN7ee32550C1Ev),
+ NSPAIR(_ZN7ee32550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee32550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee32550[];
+extern void _ZN7ee325503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee325503fooEv,_ZTv0_n24_N7ee325503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325503fooEv,_ZThn8_N7ee325503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32550[0]),
+ (VTBL_ENTRY)&_ZN7ee325503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee325503fooEv,_ZTv0_n24_N7ee325503fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee32550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee32550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee32550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee32550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee32550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32550[] = {
+ {&(_ZTV7ee32550[5]), 5,19},
+ {&(_ZTV7ee32550[12]), 12,19},
+ {&(_ZTV7ee32550[18]), 18,19},
+ {&(_tg__ZTV6dd2550__7ee32550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee32550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee32550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee32550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee32550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32550[];
+extern VTBL_ENTRY _ZTV7ee32550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32550[];
+static VTBL_ENTRY alt_thunk_names258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee325503fooEv,_ZTv0_n24_N7ee325503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325503fooEv,_ZThn8_N7ee325503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32550 = { "ee32550", // class name
+ bases_ee32550, 4,
+ &(vtc_ee32550[0]), // expected_vtbl_contents
+ &(vtt_ee32550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32550),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42550 : dd2550 {
+ int e;
+ virtual void bar(); // _ZN7ee425503barEv
+ ~ee42550(); // tgen
+ ee42550(); // tgen
+};
+//SIG(1 ee42550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42550 ::bar(){vfunc_called(this, "_ZN7ee425503barEv");}
+ee42550 ::~ee42550(){ note_dtor("ee42550", this);} // tgen
+ee42550 ::ee42550(){ note_ctor("ee42550", this);} // tgen
+
+static void Test_ee42550()
+{
+ extern Class_Descriptor cd_ee42550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42550, buf);
+ ee42550 *dp, &lv = *(dp=new (buf) ee42550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee42550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(24,16), "ee42550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), 0, "ee42550");
+ check_base_class_offset(lv, (dd2550*), 0, "ee42550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42550.e");
+ test_class_info(&lv, &cd_ee42550);
+ dp->~ee42550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42550(Test_ee42550, "ee42550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42550C1Ev();
+extern void _ZN7ee42550D1Ev();
+Name_Map name_map_ee42550[] = {
+ NSPAIR(_ZN7ee42550C1Ev),
+ NSPAIR(_ZN7ee42550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee42550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42550[];
+extern void _ZN7ee425503barEv();
+extern void _ZN6dd25503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee425503barEv,_ZTv0_n16_N7ee425503barEv)();
+extern void ABISELECT(_ZThn24_N7ee425503barEv,_ZThn16_N7ee425503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42550[0]),
+ (VTBL_ENTRY)&_ZN7ee425503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425503barEv,_ZTv0_n16_N7ee425503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee42550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee42550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee42550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee42550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee42550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42550[] = {
+ {&(_ZTV7ee42550[4]), 4,11},
+ {&(_tg__ZTV6dd2550__7ee42550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee42550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee42550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee42550[4]), 4,5},
+ {&(_ZTV7ee42550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee42550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42550[];
+extern VTBL_ENTRY _ZTV7ee42550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42550[];
+static VTBL_ENTRY alt_thunk_names259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425503barEv,_ZTv0_n16_N7ee425503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425503barEv,_ZThn16_N7ee425503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42550 = { "ee42550", // class name
+ bases_ee42550, 4,
+ &(vtc_ee42550[0]), // expected_vtbl_contents
+ &(vtt_ee42550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52550 : virtual dd2550 {
+ int e;
+ virtual void bar(); // _ZN7ee525503barEv
+ ~ee52550(); // tgen
+ ee52550(); // tgen
+};
+//SIG(1 ee52550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52550 ::bar(){vfunc_called(this, "_ZN7ee525503barEv");}
+ee52550 ::~ee52550(){ note_dtor("ee52550", this);} // tgen
+ee52550 ::ee52550(){ note_ctor("ee52550", this);} // tgen
+
+static void Test_ee52550()
+{
+ extern Class_Descriptor cd_ee52550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52550, buf);
+ ee52550 *dp, &lv = *(dp=new (buf) ee52550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee52550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(32,20), "ee52550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), ABISELECT(16,8), "ee52550");
+ check_base_class_offset(lv, (dd2550*), ABISELECT(16,8), "ee52550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52550.e");
+ test_class_info(&lv, &cd_ee52550);
+ dp->~ee52550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52550(Test_ee52550, "ee52550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52550C1Ev();
+extern void _ZN7ee52550D1Ev();
+Name_Map name_map_ee52550[] = {
+ NSPAIR(_ZN7ee52550C1Ev),
+ NSPAIR(_ZN7ee52550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee52550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee52550[];
+extern void _ZN7ee525503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee525503barEv,_ZTv0_n20_N7ee525503barEv)();
+extern void ABISELECT(_ZThn16_N7ee525503barEv,_ZThn8_N7ee525503barEv)() __attribute__((weak));
+extern void _ZN6dd25503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525503barEv,_ZTv0_n16_N7ee525503barEv)();
+extern void ABISELECT(_ZThn32_N7ee525503barEv,_ZThn20_N7ee525503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52550[0]),
+ (VTBL_ENTRY)&_ZN7ee525503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee525503barEv,_ZTv0_n20_N7ee525503barEv),
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525503barEv,_ZTv0_n16_N7ee525503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee52550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee52550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee52550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee52550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee52550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52550[] = {
+ {&(_ZTV7ee52550[5]), 5,19},
+ {&(_ZTV7ee52550[12]), 12,19},
+ {&(_ZTV7ee52550[18]), 18,19},
+ {&(_tg__ZTV6dd2550__7ee52550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee52550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee52550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee52550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee52550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52550[];
+extern VTBL_ENTRY _ZTV7ee52550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52550[];
+static VTBL_ENTRY alt_thunk_names260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525503barEv,_ZTv0_n16_N7ee525503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525503barEv,_ZThn20_N7ee525503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee525503barEv,_ZTv0_n20_N7ee525503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525503barEv,_ZThn8_N7ee525503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52550 = { "ee52550", // class name
+ bases_ee52550, 4,
+ &(vtc_ee52550[0]), // expected_vtbl_contents
+ &(vtt_ee52550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52550),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62550 : dd2550 {
+ int e;
+ virtual void foo(); // _ZN7ee625503fooEv
+ virtual void bar(); // _ZN7ee625503barEv
+ ~ee62550(); // tgen
+ ee62550(); // tgen
+};
+//SIG(1 ee62550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62550 ::foo(){vfunc_called(this, "_ZN7ee625503fooEv");}
+void ee62550 ::bar(){vfunc_called(this, "_ZN7ee625503barEv");}
+ee62550 ::~ee62550(){ note_dtor("ee62550", this);} // tgen
+ee62550 ::ee62550(){ note_ctor("ee62550", this);} // tgen
+
+static void Test_ee62550()
+{
+ extern Class_Descriptor cd_ee62550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62550, buf);
+ ee62550 *dp, &lv = *(dp=new (buf) ee62550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee62550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(24,16), "ee62550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), 0, "ee62550");
+ check_base_class_offset(lv, (dd2550*), 0, "ee62550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62550.e");
+ test_class_info(&lv, &cd_ee62550);
+ dp->~ee62550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62550(Test_ee62550, "ee62550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62550C1Ev();
+extern void _ZN7ee62550D1Ev();
+Name_Map name_map_ee62550[] = {
+ NSPAIR(_ZN7ee62550C1Ev),
+ NSPAIR(_ZN7ee62550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee62550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62550[];
+extern void _ZN7ee625503barEv();
+extern void _ZN7ee625503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee625503barEv,_ZTv0_n16_N7ee625503barEv)();
+extern void ABISELECT(_ZThn24_N7ee625503barEv,_ZThn16_N7ee625503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62550[0]),
+ (VTBL_ENTRY)&_ZN7ee625503barEv,
+ (VTBL_ENTRY)&_ZN7ee625503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625503barEv,_ZTv0_n16_N7ee625503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee62550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee62550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee62550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee62550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee62550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62550[] = {
+ {&(_ZTV7ee62550[4]), 4,11},
+ {&(_tg__ZTV6dd2550__7ee62550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee62550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee62550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee62550[4]), 4,5},
+ {&(_ZTV7ee62550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee62550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62550[];
+extern VTBL_ENTRY _ZTV7ee62550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62550[];
+static VTBL_ENTRY alt_thunk_names261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625503barEv,_ZTv0_n16_N7ee625503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625503barEv,_ZThn16_N7ee625503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62550 = { "ee62550", // class name
+ bases_ee62550, 4,
+ &(vtc_ee62550[0]), // expected_vtbl_contents
+ &(vtt_ee62550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72550 : virtual dd2550 {
+ int e;
+ virtual void foo(); // _ZN7ee725503fooEv
+ virtual void bar(); // _ZN7ee725503barEv
+ ~ee72550(); // tgen
+ ee72550(); // tgen
+};
+//SIG(1 ee72550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72550 ::foo(){vfunc_called(this, "_ZN7ee725503fooEv");}
+void ee72550 ::bar(){vfunc_called(this, "_ZN7ee725503barEv");}
+ee72550 ::~ee72550(){ note_dtor("ee72550", this);} // tgen
+ee72550 ::ee72550(){ note_ctor("ee72550", this);} // tgen
+
+static void Test_ee72550()
+{
+ extern Class_Descriptor cd_ee72550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72550, buf);
+ ee72550 *dp, &lv = *(dp=new (buf) ee72550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee72550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd2550*), ABISELECT(32,20), "ee72550");
+ check_base_class_offset(lv, (cc550*)(dd2550*), ABISELECT(16,8), "ee72550");
+ check_base_class_offset(lv, (dd2550*), ABISELECT(16,8), "ee72550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72550.e");
+ test_class_info(&lv, &cd_ee72550);
+ dp->~ee72550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72550(Test_ee72550, "ee72550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72550C1Ev();
+extern void _ZN7ee72550D1Ev();
+Name_Map name_map_ee72550[] = {
+ NSPAIR(_ZN7ee72550C1Ev),
+ NSPAIR(_ZN7ee72550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd2550;
+extern VTBL_ENTRY _ZTI6dd2550[];
+extern VTBL_ENTRY _ZTV6dd2550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2550[];
+static Base_Class bases_ee72550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee72550[];
+extern void _ZN7ee725503fooEv();
+extern void _ZN7ee725503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee725503barEv,_ZTv0_n20_N7ee725503barEv)();
+extern void ABISELECT(_ZThn16_N7ee725503barEv,_ZThn8_N7ee725503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee725503fooEv,_ZTv0_n24_N7ee725503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725503fooEv,_ZThn8_N7ee725503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725503barEv,_ZTv0_n16_N7ee725503barEv)();
+extern void ABISELECT(_ZThn32_N7ee725503barEv,_ZThn20_N7ee725503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72550[0]),
+ (VTBL_ENTRY)&_ZN7ee725503fooEv,
+ (VTBL_ENTRY)&_ZN7ee725503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725503barEv,_ZTv0_n20_N7ee725503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee725503fooEv,_ZTv0_n24_N7ee725503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725503barEv,_ZTv0_n16_N7ee725503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72550[];
+extern void _ZN5cc5503barEv();
+extern void _ZN6dd25503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2550__7ee72550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ (VTBL_ENTRY)&_ZN6dd25503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd2550__7ee72550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd2550__7ee72550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2550__7ee72550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee72550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72550[] = {
+ {&(_ZTV7ee72550[5]), 5,20},
+ {&(_ZTV7ee72550[13]), 13,20},
+ {&(_ZTV7ee72550[19]), 19,20},
+ {&(_tg__ZTV6dd2550__7ee72550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd2550__7ee72550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd2550__7ee72550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2550__7ee72550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee72550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72550[];
+extern VTBL_ENTRY _ZTV7ee72550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72550[];
+static VTBL_ENTRY alt_thunk_names262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725503barEv,_ZTv0_n16_N7ee725503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725503barEv,_ZThn20_N7ee725503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee725503fooEv,_ZTv0_n24_N7ee725503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725503fooEv,_ZThn8_N7ee725503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725503barEv,_ZTv0_n20_N7ee725503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725503barEv,_ZThn8_N7ee725503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72550 = { "ee72550", // class name
+ bases_ee72550, 4,
+ &(vtc_ee72550[0]), // expected_vtbl_contents
+ &(vtt_ee72550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72550),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3550 : virtual cc550 {
+ int d;
+ virtual void foo(); // _ZN6dd35503fooEv
+ ~dd3550(); // tgen
+ dd3550(); // tgen
+};
+//SIG(-1 dd3550) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3550 ::foo(){vfunc_called(this, "_ZN6dd35503fooEv");}
+dd3550 ::~dd3550(){ note_dtor("dd3550", this);} // tgen
+dd3550 ::dd3550(){ note_ctor("dd3550", this);} // tgen
+
+static void Test_dd3550()
+{
+ extern Class_Descriptor cd_dd3550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3550, buf);
+ dd3550 *dp, &lv = *(dp=new (buf) dd3550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd3550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,16), "dd3550");
+ check_base_class_offset(lv, (cc550*), ABISELECT(16,8), "dd3550");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3550.d");
+ test_class_info(&lv, &cd_dd3550);
+ dp->~dd3550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3550(Test_dd3550, "dd3550", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3550C1Ev();
+extern void _ZN6dd3550D1Ev();
+Name_Map name_map_dd3550[] = {
+ NSPAIR(_ZN6dd3550C1Ev),
+ NSPAIR(_ZN6dd3550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd3550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern void _ZN6dd35503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd3550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3550[] = {
+ {&(_ZTV6dd3550[5]), 5,17},
+ {&(_ZTV6dd3550[11]), 11,17},
+ {&(_ZTV6dd3550[16]), 16,17},
+ {&(_tg__ZTV5cc550__6dd3550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd3550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd3550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static VTBL_ENTRY alt_thunk_names263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3550 = { "dd3550", // class name
+ bases_dd3550, 3,
+ &(vtc_dd3550[0]), // expected_vtbl_contents
+ &(vtt_dd3550[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3550),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03550 : dd3550 {
+ int e;
+ ~ee03550(); // tgen
+ ee03550(); // tgen
+};
+//SIG(1 ee03550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03550 ::~ee03550(){ note_dtor("ee03550", this);} // tgen
+ee03550 ::ee03550(){ note_ctor("ee03550", this);} // tgen
+
+static void Test_ee03550()
+{
+ extern Class_Descriptor cd_ee03550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03550, buf);
+ ee03550 *dp, &lv = *(dp=new (buf) ee03550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee03550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee03550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(16,12), "ee03550");
+ check_base_class_offset(lv, (dd3550*), 0, "ee03550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03550.e");
+ test_class_info(&lv, &cd_ee03550);
+ dp->~ee03550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03550(Test_ee03550, "ee03550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03550C1Ev();
+extern void _ZN7ee03550D1Ev();
+Name_Map name_map_ee03550[] = {
+ NSPAIR(_ZN7ee03550C1Ev),
+ NSPAIR(_ZN7ee03550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee03550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03550[];
+extern void _ZN6dd35503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee03550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee03550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee03550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee03550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee03550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee03550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03550[] = {
+ {&(_ZTV7ee03550[5]), 5,17},
+ {&(_tg__ZTV6dd3550__7ee03550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee03550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee03550[4]), 4,5},
+ {&(_ZTV7ee03550[11]), 11,17},
+ {&(_ZTV7ee03550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee03550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee03550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee03550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03550[];
+extern VTBL_ENTRY _ZTV7ee03550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03550[];
+static VTBL_ENTRY alt_thunk_names264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03550 = { "ee03550", // class name
+ bases_ee03550, 4,
+ &(vtc_ee03550[0]), // expected_vtbl_contents
+ &(vtt_ee03550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13550 : virtual dd3550 {
+ int e;
+ ~ee13550(); // tgen
+ ee13550(); // tgen
+};
+//SIG(1 ee13550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13550 ::~ee13550(){ note_dtor("ee13550", this);} // tgen
+ee13550 ::ee13550(){ note_ctor("ee13550", this);} // tgen
+
+static void Test_ee13550()
+{
+ extern Class_Descriptor cd_ee13550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13550, buf);
+ ee13550 *dp, &lv = *(dp=new (buf) ee13550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee13550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee13550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(32,16), "ee13550");
+ check_base_class_offset(lv, (dd3550*), ABISELECT(16,8), "ee13550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13550.e");
+ test_class_info(&lv, &cd_ee13550);
+ dp->~ee13550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13550(Test_ee13550, "ee13550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13550C1Ev();
+extern void _ZN7ee13550D1Ev();
+Name_Map name_map_ee13550[] = {
+ NSPAIR(_ZN7ee13550C1Ev),
+ NSPAIR(_ZN7ee13550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee13550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee13550[];
+extern void _ZN6dd35503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13550[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee13550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee13550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee13550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee13550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee13550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee13550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13550[] = {
+ {&(_ZTV7ee13550[6]), 6,24},
+ {&(_ZTV7ee13550[12]), 12,24},
+ {&(_ZTV7ee13550[18]), 18,24},
+ {&(_ZTV7ee13550[23]), 23,24},
+ {&(_tg__ZTV6dd3550__7ee13550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee13550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee13550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee13550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee13550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee13550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13550[];
+extern VTBL_ENTRY _ZTV7ee13550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13550[];
+static VTBL_ENTRY alt_thunk_names265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13550 = { "ee13550", // class name
+ bases_ee13550, 4,
+ &(vtc_ee13550[0]), // expected_vtbl_contents
+ &(vtt_ee13550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13550),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23550 : dd3550 {
+ int e;
+ virtual void foo(); // _ZN7ee235503fooEv
+ ~ee23550(); // tgen
+ ee23550(); // tgen
+};
+//SIG(1 ee23550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23550 ::foo(){vfunc_called(this, "_ZN7ee235503fooEv");}
+ee23550 ::~ee23550(){ note_dtor("ee23550", this);} // tgen
+ee23550 ::ee23550(){ note_ctor("ee23550", this);} // tgen
+
+static void Test_ee23550()
+{
+ extern Class_Descriptor cd_ee23550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23550, buf);
+ ee23550 *dp, &lv = *(dp=new (buf) ee23550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee23550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee23550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(16,12), "ee23550");
+ check_base_class_offset(lv, (dd3550*), 0, "ee23550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23550.e");
+ test_class_info(&lv, &cd_ee23550);
+ dp->~ee23550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23550(Test_ee23550, "ee23550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23550C1Ev();
+extern void _ZN7ee23550D1Ev();
+Name_Map name_map_ee23550[] = {
+ NSPAIR(_ZN7ee23550C1Ev),
+ NSPAIR(_ZN7ee23550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee23550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23550[];
+extern void _ZN7ee235503fooEv();
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23550[0]),
+ (VTBL_ENTRY)&_ZN7ee235503fooEv,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee23550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee23550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee23550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee23550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee23550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee23550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23550[] = {
+ {&(_ZTV7ee23550[5]), 5,17},
+ {&(_tg__ZTV6dd3550__7ee23550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee23550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee23550[4]), 4,5},
+ {&(_ZTV7ee23550[11]), 11,17},
+ {&(_ZTV7ee23550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee23550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee23550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee23550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23550[];
+extern VTBL_ENTRY _ZTV7ee23550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23550[];
+static VTBL_ENTRY alt_thunk_names266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23550 = { "ee23550", // class name
+ bases_ee23550, 4,
+ &(vtc_ee23550[0]), // expected_vtbl_contents
+ &(vtt_ee23550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33550 : virtual dd3550 {
+ int e;
+ virtual void foo(); // _ZN7ee335503fooEv
+ ~ee33550(); // tgen
+ ee33550(); // tgen
+};
+//SIG(1 ee33550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33550 ::foo(){vfunc_called(this, "_ZN7ee335503fooEv");}
+ee33550 ::~ee33550(){ note_dtor("ee33550", this);} // tgen
+ee33550 ::ee33550(){ note_ctor("ee33550", this);} // tgen
+
+static void Test_ee33550()
+{
+ extern Class_Descriptor cd_ee33550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33550, buf);
+ ee33550 *dp, &lv = *(dp=new (buf) ee33550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee33550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee33550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(32,16), "ee33550");
+ check_base_class_offset(lv, (dd3550*), ABISELECT(16,8), "ee33550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33550.e");
+ test_class_info(&lv, &cd_ee33550);
+ dp->~ee33550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33550(Test_ee33550, "ee33550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33550C1Ev();
+extern void _ZN7ee33550D1Ev();
+Name_Map name_map_ee33550[] = {
+ NSPAIR(_ZN7ee33550C1Ev),
+ NSPAIR(_ZN7ee33550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee33550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee33550[];
+extern void _ZN7ee335503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee335503fooEv,_ZTv0_n24_N7ee335503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335503fooEv,_ZThn8_N7ee335503fooEv)() __attribute__((weak));
+extern void _ZN5cc5503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33550[0]),
+ (VTBL_ENTRY)&_ZN7ee335503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee335503fooEv,_ZTv0_n24_N7ee335503fooEv),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee33550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee33550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee33550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee33550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee33550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee33550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33550[] = {
+ {&(_ZTV7ee33550[6]), 6,25},
+ {&(_ZTV7ee33550[13]), 13,25},
+ {&(_ZTV7ee33550[19]), 19,25},
+ {&(_ZTV7ee33550[24]), 24,25},
+ {&(_tg__ZTV6dd3550__7ee33550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee33550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee33550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee33550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee33550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee33550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33550[];
+extern VTBL_ENTRY _ZTV7ee33550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33550[];
+static VTBL_ENTRY alt_thunk_names267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee335503fooEv,_ZTv0_n24_N7ee335503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335503fooEv,_ZThn8_N7ee335503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33550 = { "ee33550", // class name
+ bases_ee33550, 4,
+ &(vtc_ee33550[0]), // expected_vtbl_contents
+ &(vtt_ee33550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33550),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43550 : dd3550 {
+ int e;
+ virtual void bar(); // _ZN7ee435503barEv
+ ~ee43550(); // tgen
+ ee43550(); // tgen
+};
+//SIG(1 ee43550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43550 ::bar(){vfunc_called(this, "_ZN7ee435503barEv");}
+ee43550 ::~ee43550(){ note_dtor("ee43550", this);} // tgen
+ee43550 ::ee43550(){ note_ctor("ee43550", this);} // tgen
+
+static void Test_ee43550()
+{
+ extern Class_Descriptor cd_ee43550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43550, buf);
+ ee43550 *dp, &lv = *(dp=new (buf) ee43550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee43550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee43550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(16,12), "ee43550");
+ check_base_class_offset(lv, (dd3550*), 0, "ee43550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43550.e");
+ test_class_info(&lv, &cd_ee43550);
+ dp->~ee43550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43550(Test_ee43550, "ee43550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43550C1Ev();
+extern void _ZN7ee43550D1Ev();
+Name_Map name_map_ee43550[] = {
+ NSPAIR(_ZN7ee43550C1Ev),
+ NSPAIR(_ZN7ee43550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee43550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43550[];
+extern void _ZN6dd35503fooEv();
+extern void _ZN7ee435503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee435503barEv,_ZTv0_n20_N7ee435503barEv)();
+extern void ABISELECT(_ZThn16_N7ee435503barEv,_ZThn12_N7ee435503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435503barEv,_ZTv0_n16_N7ee435503barEv)();
+extern void ABISELECT(_ZThn32_N7ee435503barEv,_ZThn20_N7ee435503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+ (VTBL_ENTRY)&_ZN7ee435503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee435503barEv,_ZTv0_n20_N7ee435503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435503barEv,_ZTv0_n16_N7ee435503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee43550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee43550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee43550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee43550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee43550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee43550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43550[] = {
+ {&(_ZTV7ee43550[5]), 5,18},
+ {&(_tg__ZTV6dd3550__7ee43550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee43550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee43550[4]), 4,5},
+ {&(_ZTV7ee43550[12]), 12,18},
+ {&(_ZTV7ee43550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee43550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee43550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee43550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43550[];
+extern VTBL_ENTRY _ZTV7ee43550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43550[];
+static VTBL_ENTRY alt_thunk_names268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435503barEv,_ZTv0_n16_N7ee435503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435503barEv,_ZThn20_N7ee435503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee435503barEv,_ZTv0_n20_N7ee435503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435503barEv,_ZThn12_N7ee435503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43550 = { "ee43550", // class name
+ bases_ee43550, 4,
+ &(vtc_ee43550[0]), // expected_vtbl_contents
+ &(vtt_ee43550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53550 : virtual dd3550 {
+ int e;
+ virtual void bar(); // _ZN7ee535503barEv
+ ~ee53550(); // tgen
+ ee53550(); // tgen
+};
+//SIG(1 ee53550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53550 ::bar(){vfunc_called(this, "_ZN7ee535503barEv");}
+ee53550 ::~ee53550(){ note_dtor("ee53550", this);} // tgen
+ee53550 ::ee53550(){ note_ctor("ee53550", this);} // tgen
+
+static void Test_ee53550()
+{
+ extern Class_Descriptor cd_ee53550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53550, buf);
+ ee53550 *dp, &lv = *(dp=new (buf) ee53550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee53550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee53550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(32,16), "ee53550");
+ check_base_class_offset(lv, (dd3550*), ABISELECT(16,8), "ee53550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53550.e");
+ test_class_info(&lv, &cd_ee53550);
+ dp->~ee53550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53550(Test_ee53550, "ee53550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53550C1Ev();
+extern void _ZN7ee53550D1Ev();
+Name_Map name_map_ee53550[] = {
+ NSPAIR(_ZN7ee53550C1Ev),
+ NSPAIR(_ZN7ee53550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee53550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee53550[];
+extern void _ZN7ee535503barEv();
+extern void _ZN6dd35503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee535503barEv,_ZTv0_n20_N7ee535503barEv)();
+extern void ABISELECT(_ZThn32_N7ee535503barEv,_ZThn16_N7ee535503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535503barEv,_ZTv0_n16_N7ee535503barEv)();
+extern void ABISELECT(_ZThn48_N7ee535503barEv,_ZThn24_N7ee535503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53550[0]),
+ (VTBL_ENTRY)&_ZN7ee535503barEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee535503barEv,_ZTv0_n20_N7ee535503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535503barEv,_ZTv0_n16_N7ee535503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee53550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee53550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee53550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee53550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee53550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee53550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53550[] = {
+ {&(_ZTV7ee53550[6]), 6,25},
+ {&(_ZTV7ee53550[13]), 13,25},
+ {&(_ZTV7ee53550[19]), 19,25},
+ {&(_ZTV7ee53550[24]), 24,25},
+ {&(_tg__ZTV6dd3550__7ee53550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee53550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee53550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee53550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee53550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee53550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53550[];
+extern VTBL_ENTRY _ZTV7ee53550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53550[];
+static VTBL_ENTRY alt_thunk_names269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535503barEv,_ZTv0_n16_N7ee535503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535503barEv,_ZThn24_N7ee535503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee535503barEv,_ZTv0_n20_N7ee535503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535503barEv,_ZThn16_N7ee535503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53550 = { "ee53550", // class name
+ bases_ee53550, 4,
+ &(vtc_ee53550[0]), // expected_vtbl_contents
+ &(vtt_ee53550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53550),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63550 : dd3550 {
+ int e;
+ virtual void foo(); // _ZN7ee635503fooEv
+ virtual void bar(); // _ZN7ee635503barEv
+ ~ee63550(); // tgen
+ ee63550(); // tgen
+};
+//SIG(1 ee63550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63550 ::foo(){vfunc_called(this, "_ZN7ee635503fooEv");}
+void ee63550 ::bar(){vfunc_called(this, "_ZN7ee635503barEv");}
+ee63550 ::~ee63550(){ note_dtor("ee63550", this);} // tgen
+ee63550 ::ee63550(){ note_ctor("ee63550", this);} // tgen
+
+static void Test_ee63550()
+{
+ extern Class_Descriptor cd_ee63550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63550, buf);
+ ee63550 *dp, &lv = *(dp=new (buf) ee63550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee63550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee63550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(16,12), "ee63550");
+ check_base_class_offset(lv, (dd3550*), 0, "ee63550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63550.e");
+ test_class_info(&lv, &cd_ee63550);
+ dp->~ee63550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63550(Test_ee63550, "ee63550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63550C1Ev();
+extern void _ZN7ee63550D1Ev();
+Name_Map name_map_ee63550[] = {
+ NSPAIR(_ZN7ee63550C1Ev),
+ NSPAIR(_ZN7ee63550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee63550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63550[];
+extern void _ZN7ee635503fooEv();
+extern void _ZN7ee635503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee635503barEv,_ZTv0_n20_N7ee635503barEv)();
+extern void ABISELECT(_ZThn16_N7ee635503barEv,_ZThn12_N7ee635503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635503barEv,_ZTv0_n16_N7ee635503barEv)();
+extern void ABISELECT(_ZThn32_N7ee635503barEv,_ZThn20_N7ee635503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63550[0]),
+ (VTBL_ENTRY)&_ZN7ee635503fooEv,
+ (VTBL_ENTRY)&_ZN7ee635503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee635503barEv,_ZTv0_n20_N7ee635503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635503barEv,_ZTv0_n16_N7ee635503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee63550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee63550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee63550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee63550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee63550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee63550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63550[] = {
+ {&(_ZTV7ee63550[5]), 5,18},
+ {&(_tg__ZTV6dd3550__7ee63550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee63550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee63550[4]), 4,5},
+ {&(_ZTV7ee63550[12]), 12,18},
+ {&(_ZTV7ee63550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee63550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee63550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee63550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63550[];
+extern VTBL_ENTRY _ZTV7ee63550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63550[];
+static VTBL_ENTRY alt_thunk_names270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635503barEv,_ZTv0_n16_N7ee635503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635503barEv,_ZThn20_N7ee635503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee635503barEv,_ZTv0_n20_N7ee635503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635503barEv,_ZThn12_N7ee635503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63550 = { "ee63550", // class name
+ bases_ee63550, 4,
+ &(vtc_ee63550[0]), // expected_vtbl_contents
+ &(vtt_ee63550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73550 : virtual dd3550 {
+ int e;
+ virtual void foo(); // _ZN7ee735503fooEv
+ virtual void bar(); // _ZN7ee735503barEv
+ ~ee73550(); // tgen
+ ee73550(); // tgen
+};
+//SIG(1 ee73550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73550 ::foo(){vfunc_called(this, "_ZN7ee735503fooEv");}
+void ee73550 ::bar(){vfunc_called(this, "_ZN7ee735503barEv");}
+ee73550 ::~ee73550(){ note_dtor("ee73550", this);} // tgen
+ee73550 ::ee73550(){ note_ctor("ee73550", this);} // tgen
+
+static void Test_ee73550()
+{
+ extern Class_Descriptor cd_ee73550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73550, buf);
+ ee73550 *dp, &lv = *(dp=new (buf) ee73550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee73550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee73550");
+ check_base_class_offset(lv, (cc550*)(dd3550*), ABISELECT(32,16), "ee73550");
+ check_base_class_offset(lv, (dd3550*), ABISELECT(16,8), "ee73550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73550.e");
+ test_class_info(&lv, &cd_ee73550);
+ dp->~ee73550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73550(Test_ee73550, "ee73550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73550C1Ev();
+extern void _ZN7ee73550D1Ev();
+Name_Map name_map_ee73550[] = {
+ NSPAIR(_ZN7ee73550C1Ev),
+ NSPAIR(_ZN7ee73550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd3550;
+extern VTBL_ENTRY _ZTI6dd3550[];
+extern VTBL_ENTRY _ZTV6dd3550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3550[];
+static Base_Class bases_ee73550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3550, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee73550[];
+extern void _ZN7ee735503fooEv();
+extern void _ZN7ee735503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee735503fooEv,_ZTv0_n24_N7ee735503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735503fooEv,_ZThn8_N7ee735503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee735503barEv,_ZTv0_n20_N7ee735503barEv)();
+extern void ABISELECT(_ZThn32_N7ee735503barEv,_ZThn16_N7ee735503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735503barEv,_ZTv0_n16_N7ee735503barEv)();
+extern void ABISELECT(_ZThn48_N7ee735503barEv,_ZThn24_N7ee735503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73550[0]),
+ (VTBL_ENTRY)&_ZN7ee735503fooEv,
+ (VTBL_ENTRY)&_ZN7ee735503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee735503fooEv,_ZTv0_n24_N7ee735503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735503barEv,_ZTv0_n20_N7ee735503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735503barEv,_ZTv0_n16_N7ee735503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73550[];
+extern void _ZN6dd35503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3550__7ee73550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN6dd35503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd3550__7ee73550[] = {
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3550__7ee73550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee73550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee73550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee73550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73550[] = {
+ {&(_ZTV7ee73550[6]), 6,26},
+ {&(_ZTV7ee73550[14]), 14,26},
+ {&(_ZTV7ee73550[20]), 20,26},
+ {&(_ZTV7ee73550[25]), 25,26},
+ {&(_tg__ZTV6dd3550__7ee73550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd3550__7ee73550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd3550__7ee73550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee73550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee73550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee73550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73550[];
+extern VTBL_ENTRY _ZTV7ee73550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73550[];
+static VTBL_ENTRY alt_thunk_names271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735503barEv,_ZTv0_n16_N7ee735503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735503barEv,_ZThn24_N7ee735503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735503barEv,_ZTv0_n20_N7ee735503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735503barEv,_ZThn16_N7ee735503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee735503fooEv,_ZTv0_n24_N7ee735503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735503fooEv,_ZThn8_N7ee735503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73550 = { "ee73550", // class name
+ bases_ee73550, 4,
+ &(vtc_ee73550[0]), // expected_vtbl_contents
+ &(vtt_ee73550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73550),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4550 : cc550 {
+ int d;
+ virtual void bar(); // _ZN6dd45503barEv
+ ~dd4550(); // tgen
+ dd4550(); // tgen
+};
+//SIG(-1 dd4550) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4550 ::bar(){vfunc_called(this, "_ZN6dd45503barEv");}
+dd4550 ::~dd4550(){ note_dtor("dd4550", this);} // tgen
+dd4550 ::dd4550(){ note_ctor("dd4550", this);} // tgen
+
+static void Test_dd4550()
+{
+ extern Class_Descriptor cd_dd4550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4550, buf);
+ dd4550 *dp, &lv = *(dp=new (buf) dd4550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd4550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(16,12), "dd4550");
+ check_base_class_offset(lv, (cc550*), 0, "dd4550");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4550.d");
+ test_class_info(&lv, &cd_dd4550);
+ dp->~dd4550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4550(Test_dd4550, "dd4550", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4550C1Ev();
+extern void _ZN6dd4550D1Ev();
+Name_Map name_map_dd4550[] = {
+ NSPAIR(_ZN6dd4550C1Ev),
+ NSPAIR(_ZN6dd4550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd4550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern void _ZN6dd45503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd4550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd4550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4550[] = {
+ {&(_ZTV6dd4550[4]), 4,10},
+ {&(_tg__ZTV5cc550__6dd4550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd4550[4]), 4,5},
+ {&(_ZTV6dd4550[9]), 9,10},
+ {&(_tg__ZTV4bb50__6dd4550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static VTBL_ENTRY alt_thunk_names272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4550 = { "dd4550", // class name
+ bases_dd4550, 3,
+ &(vtc_dd4550[0]), // expected_vtbl_contents
+ &(vtt_dd4550[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4550),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04550 : dd4550 {
+ int e;
+ ~ee04550(); // tgen
+ ee04550(); // tgen
+};
+//SIG(1 ee04550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04550 ::~ee04550(){ note_dtor("ee04550", this);} // tgen
+ee04550 ::ee04550(){ note_ctor("ee04550", this);} // tgen
+
+static void Test_ee04550()
+{
+ extern Class_Descriptor cd_ee04550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04550, buf);
+ ee04550 *dp, &lv = *(dp=new (buf) ee04550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee04550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(24,16), "ee04550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), 0, "ee04550");
+ check_base_class_offset(lv, (dd4550*), 0, "ee04550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04550.e");
+ test_class_info(&lv, &cd_ee04550);
+ dp->~ee04550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04550(Test_ee04550, "ee04550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04550C1Ev();
+extern void _ZN7ee04550D1Ev();
+Name_Map name_map_ee04550[] = {
+ NSPAIR(_ZN7ee04550C1Ev),
+ NSPAIR(_ZN7ee04550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee04550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04550[];
+extern void _ZN6dd45503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee04550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee04550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee04550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee04550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee04550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04550[] = {
+ {&(_ZTV7ee04550[4]), 4,10},
+ {&(_tg__ZTV6dd4550__7ee04550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee04550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee04550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee04550[4]), 4,5},
+ {&(_ZTV7ee04550[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee04550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04550[];
+extern VTBL_ENTRY _ZTV7ee04550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04550[];
+static VTBL_ENTRY alt_thunk_names273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04550 = { "ee04550", // class name
+ bases_ee04550, 4,
+ &(vtc_ee04550[0]), // expected_vtbl_contents
+ &(vtt_ee04550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14550 : virtual dd4550 {
+ int e;
+ ~ee14550(); // tgen
+ ee14550(); // tgen
+};
+//SIG(1 ee14550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14550 ::~ee14550(){ note_dtor("ee14550", this);} // tgen
+ee14550 ::ee14550(){ note_ctor("ee14550", this);} // tgen
+
+static void Test_ee14550()
+{
+ extern Class_Descriptor cd_ee14550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14550, buf);
+ ee14550 *dp, &lv = *(dp=new (buf) ee14550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee14550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(32,20), "ee14550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), ABISELECT(16,8), "ee14550");
+ check_base_class_offset(lv, (dd4550*), ABISELECT(16,8), "ee14550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14550.e");
+ test_class_info(&lv, &cd_ee14550);
+ dp->~ee14550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14550(Test_ee14550, "ee14550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14550C1Ev();
+extern void _ZN7ee14550D1Ev();
+Name_Map name_map_ee14550[] = {
+ NSPAIR(_ZN7ee14550C1Ev),
+ NSPAIR(_ZN7ee14550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee14550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee14550[];
+extern void _ZN6dd45503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14550[0]),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee14550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee14550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee14550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee14550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee14550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14550[] = {
+ {&(_ZTV7ee14550[5]), 5,16},
+ {&(_ZTV7ee14550[10]), 10,16},
+ {&(_ZTV7ee14550[15]), 15,16},
+ {&(_tg__ZTV6dd4550__7ee14550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee14550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee14550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee14550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee14550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14550[];
+extern VTBL_ENTRY _ZTV7ee14550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14550[];
+static VTBL_ENTRY alt_thunk_names274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14550 = { "ee14550", // class name
+ bases_ee14550, 4,
+ &(vtc_ee14550[0]), // expected_vtbl_contents
+ &(vtt_ee14550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14550),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24550 : dd4550 {
+ int e;
+ virtual void foo(); // _ZN7ee245503fooEv
+ ~ee24550(); // tgen
+ ee24550(); // tgen
+};
+//SIG(1 ee24550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24550 ::foo(){vfunc_called(this, "_ZN7ee245503fooEv");}
+ee24550 ::~ee24550(){ note_dtor("ee24550", this);} // tgen
+ee24550 ::ee24550(){ note_ctor("ee24550", this);} // tgen
+
+static void Test_ee24550()
+{
+ extern Class_Descriptor cd_ee24550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24550, buf);
+ ee24550 *dp, &lv = *(dp=new (buf) ee24550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee24550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(24,16), "ee24550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), 0, "ee24550");
+ check_base_class_offset(lv, (dd4550*), 0, "ee24550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24550.e");
+ test_class_info(&lv, &cd_ee24550);
+ dp->~ee24550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24550(Test_ee24550, "ee24550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24550C1Ev();
+extern void _ZN7ee24550D1Ev();
+Name_Map name_map_ee24550[] = {
+ NSPAIR(_ZN7ee24550C1Ev),
+ NSPAIR(_ZN7ee24550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee24550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24550[];
+extern void _ZN6dd45503barEv();
+extern void _ZN7ee245503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+ (VTBL_ENTRY)&_ZN7ee245503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee24550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee24550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee24550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee24550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee24550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24550[] = {
+ {&(_ZTV7ee24550[4]), 4,11},
+ {&(_tg__ZTV6dd4550__7ee24550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee24550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee24550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee24550[4]), 4,5},
+ {&(_ZTV7ee24550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee24550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24550[];
+extern VTBL_ENTRY _ZTV7ee24550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24550[];
+static VTBL_ENTRY alt_thunk_names275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24550 = { "ee24550", // class name
+ bases_ee24550, 4,
+ &(vtc_ee24550[0]), // expected_vtbl_contents
+ &(vtt_ee24550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34550 : virtual dd4550 {
+ int e;
+ virtual void foo(); // _ZN7ee345503fooEv
+ ~ee34550(); // tgen
+ ee34550(); // tgen
+};
+//SIG(1 ee34550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34550 ::foo(){vfunc_called(this, "_ZN7ee345503fooEv");}
+ee34550 ::~ee34550(){ note_dtor("ee34550", this);} // tgen
+ee34550 ::ee34550(){ note_ctor("ee34550", this);} // tgen
+
+static void Test_ee34550()
+{
+ extern Class_Descriptor cd_ee34550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34550, buf);
+ ee34550 *dp, &lv = *(dp=new (buf) ee34550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee34550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(32,20), "ee34550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), ABISELECT(16,8), "ee34550");
+ check_base_class_offset(lv, (dd4550*), ABISELECT(16,8), "ee34550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34550.e");
+ test_class_info(&lv, &cd_ee34550);
+ dp->~ee34550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34550(Test_ee34550, "ee34550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34550C1Ev();
+extern void _ZN7ee34550D1Ev();
+Name_Map name_map_ee34550[] = {
+ NSPAIR(_ZN7ee34550C1Ev),
+ NSPAIR(_ZN7ee34550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee34550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee34550[];
+extern void _ZN7ee345503fooEv();
+extern void _ZN6dd45503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34550[0]),
+ (VTBL_ENTRY)&_ZN7ee345503fooEv,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee34550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee34550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee34550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee34550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee34550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34550[] = {
+ {&(_ZTV7ee34550[5]), 5,17},
+ {&(_ZTV7ee34550[11]), 11,17},
+ {&(_ZTV7ee34550[16]), 16,17},
+ {&(_tg__ZTV6dd4550__7ee34550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee34550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee34550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee34550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee34550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34550[];
+extern VTBL_ENTRY _ZTV7ee34550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34550[];
+static VTBL_ENTRY alt_thunk_names276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34550 = { "ee34550", // class name
+ bases_ee34550, 4,
+ &(vtc_ee34550[0]), // expected_vtbl_contents
+ &(vtt_ee34550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44550 : dd4550 {
+ int e;
+ virtual void bar(); // _ZN7ee445503barEv
+ ~ee44550(); // tgen
+ ee44550(); // tgen
+};
+//SIG(1 ee44550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44550 ::bar(){vfunc_called(this, "_ZN7ee445503barEv");}
+ee44550 ::~ee44550(){ note_dtor("ee44550", this);} // tgen
+ee44550 ::ee44550(){ note_ctor("ee44550", this);} // tgen
+
+static void Test_ee44550()
+{
+ extern Class_Descriptor cd_ee44550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44550, buf);
+ ee44550 *dp, &lv = *(dp=new (buf) ee44550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee44550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(24,16), "ee44550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), 0, "ee44550");
+ check_base_class_offset(lv, (dd4550*), 0, "ee44550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44550.e");
+ test_class_info(&lv, &cd_ee44550);
+ dp->~ee44550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44550(Test_ee44550, "ee44550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44550C1Ev();
+extern void _ZN7ee44550D1Ev();
+Name_Map name_map_ee44550[] = {
+ NSPAIR(_ZN7ee44550C1Ev),
+ NSPAIR(_ZN7ee44550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee44550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44550[];
+extern void _ZN7ee445503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445503barEv,_ZTv0_n16_N7ee445503barEv)();
+extern void ABISELECT(_ZThn24_N7ee445503barEv,_ZThn16_N7ee445503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44550[0]),
+ (VTBL_ENTRY)&_ZN7ee445503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445503barEv,_ZTv0_n16_N7ee445503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee44550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee44550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee44550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee44550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee44550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44550[] = {
+ {&(_ZTV7ee44550[4]), 4,10},
+ {&(_tg__ZTV6dd4550__7ee44550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee44550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee44550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee44550[4]), 4,5},
+ {&(_ZTV7ee44550[9]), 9,10},
+ {&(_tg__ZTV4bb50__7ee44550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44550[];
+extern VTBL_ENTRY _ZTV7ee44550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44550[];
+static VTBL_ENTRY alt_thunk_names277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445503barEv,_ZTv0_n16_N7ee445503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445503barEv,_ZThn16_N7ee445503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44550 = { "ee44550", // class name
+ bases_ee44550, 4,
+ &(vtc_ee44550[0]), // expected_vtbl_contents
+ &(vtt_ee44550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44550),10, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54550 : virtual dd4550 {
+ int e;
+ virtual void bar(); // _ZN7ee545503barEv
+ ~ee54550(); // tgen
+ ee54550(); // tgen
+};
+//SIG(1 ee54550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54550 ::bar(){vfunc_called(this, "_ZN7ee545503barEv");}
+ee54550 ::~ee54550(){ note_dtor("ee54550", this);} // tgen
+ee54550 ::ee54550(){ note_ctor("ee54550", this);} // tgen
+
+static void Test_ee54550()
+{
+ extern Class_Descriptor cd_ee54550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54550, buf);
+ ee54550 *dp, &lv = *(dp=new (buf) ee54550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee54550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(32,20), "ee54550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), ABISELECT(16,8), "ee54550");
+ check_base_class_offset(lv, (dd4550*), ABISELECT(16,8), "ee54550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54550.e");
+ test_class_info(&lv, &cd_ee54550);
+ dp->~ee54550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54550(Test_ee54550, "ee54550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54550C1Ev();
+extern void _ZN7ee54550D1Ev();
+Name_Map name_map_ee54550[] = {
+ NSPAIR(_ZN7ee54550C1Ev),
+ NSPAIR(_ZN7ee54550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee54550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee54550[];
+extern void _ZN7ee545503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee545503barEv,_ZTv0_n20_N7ee545503barEv)();
+extern void ABISELECT(_ZThn16_N7ee545503barEv,_ZThn8_N7ee545503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee545503barEv,_ZTv0_n16_N7ee545503barEv)();
+extern void ABISELECT(_ZThn32_N7ee545503barEv,_ZThn20_N7ee545503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54550[0]),
+ (VTBL_ENTRY)&_ZN7ee545503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee545503barEv,_ZTv0_n20_N7ee545503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545503barEv,_ZTv0_n16_N7ee545503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee54550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee54550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee54550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee54550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee54550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54550[] = {
+ {&(_ZTV7ee54550[5]), 5,17},
+ {&(_ZTV7ee54550[11]), 11,17},
+ {&(_ZTV7ee54550[16]), 16,17},
+ {&(_tg__ZTV6dd4550__7ee54550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee54550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee54550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee54550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee54550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54550[];
+extern VTBL_ENTRY _ZTV7ee54550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54550[];
+static VTBL_ENTRY alt_thunk_names278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545503barEv,_ZTv0_n16_N7ee545503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545503barEv,_ZThn20_N7ee545503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee545503barEv,_ZTv0_n20_N7ee545503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545503barEv,_ZThn8_N7ee545503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54550 = { "ee54550", // class name
+ bases_ee54550, 4,
+ &(vtc_ee54550[0]), // expected_vtbl_contents
+ &(vtt_ee54550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64550 : dd4550 {
+ int e;
+ virtual void foo(); // _ZN7ee645503fooEv
+ virtual void bar(); // _ZN7ee645503barEv
+ ~ee64550(); // tgen
+ ee64550(); // tgen
+};
+//SIG(1 ee64550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64550 ::foo(){vfunc_called(this, "_ZN7ee645503fooEv");}
+void ee64550 ::bar(){vfunc_called(this, "_ZN7ee645503barEv");}
+ee64550 ::~ee64550(){ note_dtor("ee64550", this);} // tgen
+ee64550 ::ee64550(){ note_ctor("ee64550", this);} // tgen
+
+static void Test_ee64550()
+{
+ extern Class_Descriptor cd_ee64550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64550, buf);
+ ee64550 *dp, &lv = *(dp=new (buf) ee64550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee64550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(24,16), "ee64550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), 0, "ee64550");
+ check_base_class_offset(lv, (dd4550*), 0, "ee64550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64550.e");
+ test_class_info(&lv, &cd_ee64550);
+ dp->~ee64550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64550(Test_ee64550, "ee64550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64550C1Ev();
+extern void _ZN7ee64550D1Ev();
+Name_Map name_map_ee64550[] = {
+ NSPAIR(_ZN7ee64550C1Ev),
+ NSPAIR(_ZN7ee64550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee64550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64550[];
+extern void _ZN7ee645503barEv();
+extern void _ZN7ee645503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee645503barEv,_ZTv0_n16_N7ee645503barEv)();
+extern void ABISELECT(_ZThn24_N7ee645503barEv,_ZThn16_N7ee645503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64550[0]),
+ (VTBL_ENTRY)&_ZN7ee645503barEv,
+ (VTBL_ENTRY)&_ZN7ee645503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645503barEv,_ZTv0_n16_N7ee645503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee64550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee64550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee64550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee64550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee64550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64550[] = {
+ {&(_ZTV7ee64550[4]), 4,11},
+ {&(_tg__ZTV6dd4550__7ee64550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee64550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee64550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee64550[4]), 4,5},
+ {&(_ZTV7ee64550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee64550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64550[];
+extern VTBL_ENTRY _ZTV7ee64550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64550[];
+static VTBL_ENTRY alt_thunk_names279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45503barEv,_ZThn16_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645503barEv,_ZTv0_n16_N7ee645503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645503barEv,_ZThn16_N7ee645503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64550 = { "ee64550", // class name
+ bases_ee64550, 4,
+ &(vtc_ee64550[0]), // expected_vtbl_contents
+ &(vtt_ee64550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74550 : virtual dd4550 {
+ int e;
+ virtual void foo(); // _ZN7ee745503fooEv
+ virtual void bar(); // _ZN7ee745503barEv
+ ~ee74550(); // tgen
+ ee74550(); // tgen
+};
+//SIG(1 ee74550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74550 ::foo(){vfunc_called(this, "_ZN7ee745503fooEv");}
+void ee74550 ::bar(){vfunc_called(this, "_ZN7ee745503barEv");}
+ee74550 ::~ee74550(){ note_dtor("ee74550", this);} // tgen
+ee74550 ::ee74550(){ note_ctor("ee74550", this);} // tgen
+
+static void Test_ee74550()
+{
+ extern Class_Descriptor cd_ee74550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74550, buf);
+ ee74550 *dp, &lv = *(dp=new (buf) ee74550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee74550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd4550*), ABISELECT(32,20), "ee74550");
+ check_base_class_offset(lv, (cc550*)(dd4550*), ABISELECT(16,8), "ee74550");
+ check_base_class_offset(lv, (dd4550*), ABISELECT(16,8), "ee74550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74550.e");
+ test_class_info(&lv, &cd_ee74550);
+ dp->~ee74550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74550(Test_ee74550, "ee74550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74550C1Ev();
+extern void _ZN7ee74550D1Ev();
+Name_Map name_map_ee74550[] = {
+ NSPAIR(_ZN7ee74550C1Ev),
+ NSPAIR(_ZN7ee74550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd4550;
+extern VTBL_ENTRY _ZTI6dd4550[];
+extern VTBL_ENTRY _ZTV6dd4550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4550[];
+static Base_Class bases_ee74550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4550, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74550[];
+extern void _ZN7ee745503fooEv();
+extern void _ZN7ee745503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee745503barEv,_ZTv0_n20_N7ee745503barEv)();
+extern void ABISELECT(_ZThn16_N7ee745503barEv,_ZThn8_N7ee745503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745503barEv,_ZTv0_n16_N7ee745503barEv)();
+extern void ABISELECT(_ZThn32_N7ee745503barEv,_ZThn20_N7ee745503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74550[0]),
+ (VTBL_ENTRY)&_ZN7ee745503fooEv,
+ (VTBL_ENTRY)&_ZN7ee745503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee745503barEv,_ZTv0_n20_N7ee745503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745503barEv,_ZTv0_n16_N7ee745503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74550[];
+extern void _ZN6dd45503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4550__7ee74550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&_ZN6dd45503barEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd4550__7ee74550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd4550__7ee74550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv)();
+extern void ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4550__7ee74550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee74550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74550[] = {
+ {&(_ZTV7ee74550[5]), 5,18},
+ {&(_ZTV7ee74550[12]), 12,18},
+ {&(_ZTV7ee74550[17]), 17,18},
+ {&(_tg__ZTV6dd4550__7ee74550[4]), 4,5},
+ {&(_tg__ZTV5cc5506dd4550__7ee74550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd4550__7ee74550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4550__7ee74550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee74550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74550[];
+extern VTBL_ENTRY _ZTV7ee74550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74550[];
+static VTBL_ENTRY alt_thunk_names280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45503barEv,_ZTv0_n16_N6dd45503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45503barEv,_ZThn12_N6dd45503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745503barEv,_ZTv0_n16_N7ee745503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745503barEv,_ZThn20_N7ee745503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee745503barEv,_ZTv0_n20_N7ee745503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745503barEv,_ZThn8_N7ee745503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74550 = { "ee74550", // class name
+ bases_ee74550, 4,
+ &(vtc_ee74550[0]), // expected_vtbl_contents
+ &(vtt_ee74550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5550 : virtual cc550 {
+ int d;
+ virtual void bar(); // _ZN6dd55503barEv
+ ~dd5550(); // tgen
+ dd5550(); // tgen
+};
+//SIG(-1 dd5550) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5550 ::bar(){vfunc_called(this, "_ZN6dd55503barEv");}
+dd5550 ::~dd5550(){ note_dtor("dd5550", this);} // tgen
+dd5550 ::dd5550(){ note_ctor("dd5550", this);} // tgen
+
+static void Test_dd5550()
+{
+ extern Class_Descriptor cd_dd5550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5550, buf);
+ dd5550 *dp, &lv = *(dp=new (buf) dd5550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd5550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,16), "dd5550");
+ check_base_class_offset(lv, (cc550*), ABISELECT(16,8), "dd5550");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5550.d");
+ test_class_info(&lv, &cd_dd5550);
+ dp->~dd5550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5550(Test_dd5550, "dd5550", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5550C1Ev();
+extern void _ZN6dd5550D1Ev();
+Name_Map name_map_dd5550[] = {
+ NSPAIR(_ZN6dd5550C1Ev),
+ NSPAIR(_ZN6dd5550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd5550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern void _ZN6dd55503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd5550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5550[] = {
+ {&(_ZTV6dd5550[5]), 5,17},
+ {&(_ZTV6dd5550[11]), 11,17},
+ {&(_ZTV6dd5550[16]), 16,17},
+ {&(_tg__ZTV5cc550__6dd5550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd5550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd5550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static VTBL_ENTRY alt_thunk_names281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5550 = { "dd5550", // class name
+ bases_dd5550, 3,
+ &(vtc_dd5550[0]), // expected_vtbl_contents
+ &(vtt_dd5550[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5550),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05550 : dd5550 {
+ int e;
+ ~ee05550(); // tgen
+ ee05550(); // tgen
+};
+//SIG(1 ee05550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05550 ::~ee05550(){ note_dtor("ee05550", this);} // tgen
+ee05550 ::ee05550(){ note_ctor("ee05550", this);} // tgen
+
+static void Test_ee05550()
+{
+ extern Class_Descriptor cd_ee05550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05550, buf);
+ ee05550 *dp, &lv = *(dp=new (buf) ee05550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee05550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee05550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(16,12), "ee05550");
+ check_base_class_offset(lv, (dd5550*), 0, "ee05550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05550.e");
+ test_class_info(&lv, &cd_ee05550);
+ dp->~ee05550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05550(Test_ee05550, "ee05550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05550C1Ev();
+extern void _ZN7ee05550D1Ev();
+Name_Map name_map_ee05550[] = {
+ NSPAIR(_ZN7ee05550C1Ev),
+ NSPAIR(_ZN7ee05550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee05550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05550[];
+extern void _ZN6dd55503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee05550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee05550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee05550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee05550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee05550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee05550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05550[] = {
+ {&(_ZTV7ee05550[5]), 5,17},
+ {&(_tg__ZTV6dd5550__7ee05550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee05550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee05550[4]), 4,5},
+ {&(_ZTV7ee05550[11]), 11,17},
+ {&(_ZTV7ee05550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee05550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee05550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee05550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05550[];
+extern VTBL_ENTRY _ZTV7ee05550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05550[];
+static VTBL_ENTRY alt_thunk_names282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05550 = { "ee05550", // class name
+ bases_ee05550, 4,
+ &(vtc_ee05550[0]), // expected_vtbl_contents
+ &(vtt_ee05550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15550 : virtual dd5550 {
+ int e;
+ ~ee15550(); // tgen
+ ee15550(); // tgen
+};
+//SIG(1 ee15550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15550 ::~ee15550(){ note_dtor("ee15550", this);} // tgen
+ee15550 ::ee15550(){ note_ctor("ee15550", this);} // tgen
+
+static void Test_ee15550()
+{
+ extern Class_Descriptor cd_ee15550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15550, buf);
+ ee15550 *dp, &lv = *(dp=new (buf) ee15550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee15550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee15550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(32,16), "ee15550");
+ check_base_class_offset(lv, (dd5550*), ABISELECT(16,8), "ee15550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15550.e");
+ test_class_info(&lv, &cd_ee15550);
+ dp->~ee15550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15550(Test_ee15550, "ee15550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15550C1Ev();
+extern void _ZN7ee15550D1Ev();
+Name_Map name_map_ee15550[] = {
+ NSPAIR(_ZN7ee15550C1Ev),
+ NSPAIR(_ZN7ee15550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee15550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee15550[];
+extern void _ZN6dd55503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15550[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee15550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee15550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee15550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee15550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee15550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee15550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15550[] = {
+ {&(_ZTV7ee15550[6]), 6,24},
+ {&(_ZTV7ee15550[12]), 12,24},
+ {&(_ZTV7ee15550[18]), 18,24},
+ {&(_ZTV7ee15550[23]), 23,24},
+ {&(_tg__ZTV6dd5550__7ee15550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee15550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee15550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee15550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee15550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee15550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15550[];
+extern VTBL_ENTRY _ZTV7ee15550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15550[];
+static VTBL_ENTRY alt_thunk_names283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15550 = { "ee15550", // class name
+ bases_ee15550, 4,
+ &(vtc_ee15550[0]), // expected_vtbl_contents
+ &(vtt_ee15550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15550),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25550 : dd5550 {
+ int e;
+ virtual void foo(); // _ZN7ee255503fooEv
+ ~ee25550(); // tgen
+ ee25550(); // tgen
+};
+//SIG(1 ee25550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25550 ::foo(){vfunc_called(this, "_ZN7ee255503fooEv");}
+ee25550 ::~ee25550(){ note_dtor("ee25550", this);} // tgen
+ee25550 ::ee25550(){ note_ctor("ee25550", this);} // tgen
+
+static void Test_ee25550()
+{
+ extern Class_Descriptor cd_ee25550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25550, buf);
+ ee25550 *dp, &lv = *(dp=new (buf) ee25550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee25550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee25550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(16,12), "ee25550");
+ check_base_class_offset(lv, (dd5550*), 0, "ee25550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25550.e");
+ test_class_info(&lv, &cd_ee25550);
+ dp->~ee25550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25550(Test_ee25550, "ee25550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25550C1Ev();
+extern void _ZN7ee25550D1Ev();
+Name_Map name_map_ee25550[] = {
+ NSPAIR(_ZN7ee25550C1Ev),
+ NSPAIR(_ZN7ee25550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee25550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25550[];
+extern void _ZN6dd55503barEv();
+extern void _ZN7ee255503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+ (VTBL_ENTRY)&_ZN7ee255503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee25550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee25550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee25550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee25550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee25550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee25550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25550[] = {
+ {&(_ZTV7ee25550[5]), 5,18},
+ {&(_tg__ZTV6dd5550__7ee25550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee25550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee25550[4]), 4,5},
+ {&(_ZTV7ee25550[12]), 12,18},
+ {&(_ZTV7ee25550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee25550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee25550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee25550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25550[];
+extern VTBL_ENTRY _ZTV7ee25550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25550[];
+static VTBL_ENTRY alt_thunk_names284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25550 = { "ee25550", // class name
+ bases_ee25550, 4,
+ &(vtc_ee25550[0]), // expected_vtbl_contents
+ &(vtt_ee25550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35550 : virtual dd5550 {
+ int e;
+ virtual void foo(); // _ZN7ee355503fooEv
+ ~ee35550(); // tgen
+ ee35550(); // tgen
+};
+//SIG(1 ee35550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35550 ::foo(){vfunc_called(this, "_ZN7ee355503fooEv");}
+ee35550 ::~ee35550(){ note_dtor("ee35550", this);} // tgen
+ee35550 ::ee35550(){ note_ctor("ee35550", this);} // tgen
+
+static void Test_ee35550()
+{
+ extern Class_Descriptor cd_ee35550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35550, buf);
+ ee35550 *dp, &lv = *(dp=new (buf) ee35550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee35550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee35550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(32,16), "ee35550");
+ check_base_class_offset(lv, (dd5550*), ABISELECT(16,8), "ee35550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35550.e");
+ test_class_info(&lv, &cd_ee35550);
+ dp->~ee35550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35550(Test_ee35550, "ee35550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35550C1Ev();
+extern void _ZN7ee35550D1Ev();
+Name_Map name_map_ee35550[] = {
+ NSPAIR(_ZN7ee35550C1Ev),
+ NSPAIR(_ZN7ee35550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee35550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee35550[];
+extern void _ZN7ee355503fooEv();
+extern void _ZN6dd55503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35550[0]),
+ (VTBL_ENTRY)&_ZN7ee355503fooEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee35550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee35550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee35550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee35550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee35550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee35550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35550[] = {
+ {&(_ZTV7ee35550[6]), 6,25},
+ {&(_ZTV7ee35550[13]), 13,25},
+ {&(_ZTV7ee35550[19]), 19,25},
+ {&(_ZTV7ee35550[24]), 24,25},
+ {&(_tg__ZTV6dd5550__7ee35550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee35550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee35550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee35550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee35550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee35550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35550[];
+extern VTBL_ENTRY _ZTV7ee35550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35550[];
+static VTBL_ENTRY alt_thunk_names285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35550 = { "ee35550", // class name
+ bases_ee35550, 4,
+ &(vtc_ee35550[0]), // expected_vtbl_contents
+ &(vtt_ee35550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35550),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45550 : dd5550 {
+ int e;
+ virtual void bar(); // _ZN7ee455503barEv
+ ~ee45550(); // tgen
+ ee45550(); // tgen
+};
+//SIG(1 ee45550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45550 ::bar(){vfunc_called(this, "_ZN7ee455503barEv");}
+ee45550 ::~ee45550(){ note_dtor("ee45550", this);} // tgen
+ee45550 ::ee45550(){ note_ctor("ee45550", this);} // tgen
+
+static void Test_ee45550()
+{
+ extern Class_Descriptor cd_ee45550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45550, buf);
+ ee45550 *dp, &lv = *(dp=new (buf) ee45550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee45550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee45550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(16,12), "ee45550");
+ check_base_class_offset(lv, (dd5550*), 0, "ee45550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45550.e");
+ test_class_info(&lv, &cd_ee45550);
+ dp->~ee45550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45550(Test_ee45550, "ee45550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45550C1Ev();
+extern void _ZN7ee45550D1Ev();
+Name_Map name_map_ee45550[] = {
+ NSPAIR(_ZN7ee45550C1Ev),
+ NSPAIR(_ZN7ee45550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee45550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45550[];
+extern void _ZN7ee455503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee455503barEv,_ZTv0_n20_N7ee455503barEv)();
+extern void ABISELECT(_ZThn16_N7ee455503barEv,_ZThn12_N7ee455503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee455503barEv,_ZTv0_n16_N7ee455503barEv)();
+extern void ABISELECT(_ZThn32_N7ee455503barEv,_ZThn20_N7ee455503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45550[0]),
+ (VTBL_ENTRY)&_ZN7ee455503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee455503barEv,_ZTv0_n20_N7ee455503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455503barEv,_ZTv0_n16_N7ee455503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee45550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee45550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee45550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee45550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee45550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee45550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45550[] = {
+ {&(_ZTV7ee45550[5]), 5,17},
+ {&(_tg__ZTV6dd5550__7ee45550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee45550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee45550[4]), 4,5},
+ {&(_ZTV7ee45550[11]), 11,17},
+ {&(_ZTV7ee45550[16]), 16,17},
+ {&(_tg__ZTV5cc550__7ee45550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee45550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee45550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45550[];
+extern VTBL_ENTRY _ZTV7ee45550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45550[];
+static VTBL_ENTRY alt_thunk_names286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455503barEv,_ZTv0_n16_N7ee455503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455503barEv,_ZThn20_N7ee455503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee455503barEv,_ZTv0_n20_N7ee455503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455503barEv,_ZThn12_N7ee455503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45550 = { "ee45550", // class name
+ bases_ee45550, 4,
+ &(vtc_ee45550[0]), // expected_vtbl_contents
+ &(vtt_ee45550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45550),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55550 : virtual dd5550 {
+ int e;
+ virtual void bar(); // _ZN7ee555503barEv
+ ~ee55550(); // tgen
+ ee55550(); // tgen
+};
+//SIG(1 ee55550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55550 ::bar(){vfunc_called(this, "_ZN7ee555503barEv");}
+ee55550 ::~ee55550(){ note_dtor("ee55550", this);} // tgen
+ee55550 ::ee55550(){ note_ctor("ee55550", this);} // tgen
+
+static void Test_ee55550()
+{
+ extern Class_Descriptor cd_ee55550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55550, buf);
+ ee55550 *dp, &lv = *(dp=new (buf) ee55550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee55550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee55550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(32,16), "ee55550");
+ check_base_class_offset(lv, (dd5550*), ABISELECT(16,8), "ee55550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55550.e");
+ test_class_info(&lv, &cd_ee55550);
+ dp->~ee55550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55550(Test_ee55550, "ee55550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55550C1Ev();
+extern void _ZN7ee55550D1Ev();
+Name_Map name_map_ee55550[] = {
+ NSPAIR(_ZN7ee55550C1Ev),
+ NSPAIR(_ZN7ee55550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee55550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee55550[];
+extern void _ZN7ee555503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee555503barEv,_ZTv0_n24_N7ee555503barEv)();
+extern void ABISELECT(_ZThn16_N7ee555503barEv,_ZThn8_N7ee555503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee555503barEv,_ZTv0_n20_N7ee555503barEv)();
+extern void ABISELECT(_ZThn32_N7ee555503barEv,_ZThn16_N7ee555503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555503barEv,_ZTv0_n16_N7ee555503barEv)();
+extern void ABISELECT(_ZThn48_N7ee555503barEv,_ZThn24_N7ee555503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55550[0]),
+ (VTBL_ENTRY)&_ZN7ee555503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee555503barEv,_ZTv0_n24_N7ee555503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555503barEv,_ZTv0_n20_N7ee555503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555503barEv,_ZTv0_n16_N7ee555503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee55550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee55550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee55550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee55550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee55550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee55550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55550[] = {
+ {&(_ZTV7ee55550[6]), 6,25},
+ {&(_ZTV7ee55550[13]), 13,25},
+ {&(_ZTV7ee55550[19]), 19,25},
+ {&(_ZTV7ee55550[24]), 24,25},
+ {&(_tg__ZTV6dd5550__7ee55550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee55550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee55550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee55550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee55550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee55550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55550[];
+extern VTBL_ENTRY _ZTV7ee55550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55550[];
+static VTBL_ENTRY alt_thunk_names287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555503barEv,_ZTv0_n16_N7ee555503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555503barEv,_ZThn24_N7ee555503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555503barEv,_ZTv0_n20_N7ee555503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555503barEv,_ZThn16_N7ee555503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee555503barEv,_ZTv0_n24_N7ee555503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555503barEv,_ZThn8_N7ee555503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55550 = { "ee55550", // class name
+ bases_ee55550, 4,
+ &(vtc_ee55550[0]), // expected_vtbl_contents
+ &(vtt_ee55550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55550),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65550 : dd5550 {
+ int e;
+ virtual void foo(); // _ZN7ee655503fooEv
+ virtual void bar(); // _ZN7ee655503barEv
+ ~ee65550(); // tgen
+ ee65550(); // tgen
+};
+//SIG(1 ee65550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65550 ::foo(){vfunc_called(this, "_ZN7ee655503fooEv");}
+void ee65550 ::bar(){vfunc_called(this, "_ZN7ee655503barEv");}
+ee65550 ::~ee65550(){ note_dtor("ee65550", this);} // tgen
+ee65550 ::ee65550(){ note_ctor("ee65550", this);} // tgen
+
+static void Test_ee65550()
+{
+ extern Class_Descriptor cd_ee65550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65550, buf);
+ ee65550 *dp, &lv = *(dp=new (buf) ee65550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee65550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee65550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(16,12), "ee65550");
+ check_base_class_offset(lv, (dd5550*), 0, "ee65550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65550.e");
+ test_class_info(&lv, &cd_ee65550);
+ dp->~ee65550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65550(Test_ee65550, "ee65550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65550C1Ev();
+extern void _ZN7ee65550D1Ev();
+Name_Map name_map_ee65550[] = {
+ NSPAIR(_ZN7ee65550C1Ev),
+ NSPAIR(_ZN7ee65550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee65550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65550[];
+extern void _ZN7ee655503barEv();
+extern void _ZN7ee655503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee655503barEv,_ZTv0_n20_N7ee655503barEv)();
+extern void ABISELECT(_ZThn16_N7ee655503barEv,_ZThn12_N7ee655503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655503barEv,_ZTv0_n16_N7ee655503barEv)();
+extern void ABISELECT(_ZThn32_N7ee655503barEv,_ZThn20_N7ee655503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65550[0]),
+ (VTBL_ENTRY)&_ZN7ee655503barEv,
+ (VTBL_ENTRY)&_ZN7ee655503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee655503barEv,_ZTv0_n20_N7ee655503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655503barEv,_ZTv0_n16_N7ee655503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee65550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee65550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee65550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee65550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee65550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee65550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65550[] = {
+ {&(_ZTV7ee65550[5]), 5,18},
+ {&(_tg__ZTV6dd5550__7ee65550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee65550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee65550[4]), 4,5},
+ {&(_ZTV7ee65550[12]), 12,18},
+ {&(_ZTV7ee65550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee65550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee65550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee65550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65550[];
+extern VTBL_ENTRY _ZTV7ee65550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65550[];
+static VTBL_ENTRY alt_thunk_names288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn20_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn12_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655503barEv,_ZTv0_n16_N7ee655503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655503barEv,_ZThn20_N7ee655503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee655503barEv,_ZTv0_n20_N7ee655503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655503barEv,_ZThn12_N7ee655503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65550 = { "ee65550", // class name
+ bases_ee65550, 4,
+ &(vtc_ee65550[0]), // expected_vtbl_contents
+ &(vtt_ee65550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75550 : virtual dd5550 {
+ int e;
+ virtual void foo(); // _ZN7ee755503fooEv
+ virtual void bar(); // _ZN7ee755503barEv
+ ~ee75550(); // tgen
+ ee75550(); // tgen
+};
+//SIG(1 ee75550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75550 ::foo(){vfunc_called(this, "_ZN7ee755503fooEv");}
+void ee75550 ::bar(){vfunc_called(this, "_ZN7ee755503barEv");}
+ee75550 ::~ee75550(){ note_dtor("ee75550", this);} // tgen
+ee75550 ::ee75550(){ note_ctor("ee75550", this);} // tgen
+
+static void Test_ee75550()
+{
+ extern Class_Descriptor cd_ee75550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75550, buf);
+ ee75550 *dp, &lv = *(dp=new (buf) ee75550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee75550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee75550");
+ check_base_class_offset(lv, (cc550*)(dd5550*), ABISELECT(32,16), "ee75550");
+ check_base_class_offset(lv, (dd5550*), ABISELECT(16,8), "ee75550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75550.e");
+ test_class_info(&lv, &cd_ee75550);
+ dp->~ee75550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75550(Test_ee75550, "ee75550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75550C1Ev();
+extern void _ZN7ee75550D1Ev();
+Name_Map name_map_ee75550[] = {
+ NSPAIR(_ZN7ee75550C1Ev),
+ NSPAIR(_ZN7ee75550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd5550;
+extern VTBL_ENTRY _ZTI6dd5550[];
+extern VTBL_ENTRY _ZTV6dd5550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5550[];
+static Base_Class bases_ee75550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5550, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee75550[];
+extern void _ZN7ee755503fooEv();
+extern void _ZN7ee755503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee755503barEv,_ZTv0_n24_N7ee755503barEv)();
+extern void ABISELECT(_ZThn16_N7ee755503barEv,_ZThn8_N7ee755503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee755503barEv,_ZTv0_n20_N7ee755503barEv)();
+extern void ABISELECT(_ZThn32_N7ee755503barEv,_ZThn16_N7ee755503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755503barEv,_ZTv0_n16_N7ee755503barEv)();
+extern void ABISELECT(_ZThn48_N7ee755503barEv,_ZThn24_N7ee755503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75550[0]),
+ (VTBL_ENTRY)&_ZN7ee755503fooEv,
+ (VTBL_ENTRY)&_ZN7ee755503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee755503barEv,_ZTv0_n24_N7ee755503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755503barEv,_ZTv0_n20_N7ee755503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755503barEv,_ZTv0_n16_N7ee755503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75550[];
+extern void _ZN6dd55503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5550__7ee75550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&_ZN6dd55503barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv)();
+extern void ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd5550__7ee75550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv)();
+extern void ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5550__7ee75550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee75550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee75550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee75550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75550[] = {
+ {&(_ZTV7ee75550[6]), 6,26},
+ {&(_ZTV7ee75550[14]), 14,26},
+ {&(_ZTV7ee75550[20]), 20,26},
+ {&(_ZTV7ee75550[25]), 25,26},
+ {&(_tg__ZTV6dd5550__7ee75550[5]), 5,6},
+ {&(_tg__ZTV5cc550__6dd5550__7ee75550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd5550__7ee75550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee75550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee75550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee75550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75550[];
+extern VTBL_ENTRY _ZTV7ee75550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75550[];
+static VTBL_ENTRY alt_thunk_names289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55503barEv,_ZTv0_n16_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55503barEv,_ZThn16_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55503barEv,_ZTv0_n20_N6dd55503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55503barEv,_ZThn8_N6dd55503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755503barEv,_ZTv0_n16_N7ee755503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755503barEv,_ZThn24_N7ee755503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755503barEv,_ZTv0_n20_N7ee755503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755503barEv,_ZThn16_N7ee755503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee755503barEv,_ZTv0_n24_N7ee755503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755503barEv,_ZThn8_N7ee755503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75550 = { "ee75550", // class name
+ bases_ee75550, 4,
+ &(vtc_ee75550[0]), // expected_vtbl_contents
+ &(vtt_ee75550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75550),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6550 : cc550 {
+ int d;
+ virtual void bar(); // _ZN6dd65503barEv
+ virtual void foo(); // _ZN6dd65503fooEv
+ ~dd6550(); // tgen
+ dd6550(); // tgen
+};
+//SIG(-1 dd6550) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6550 ::bar(){vfunc_called(this, "_ZN6dd65503barEv");}
+void dd6550 ::foo(){vfunc_called(this, "_ZN6dd65503fooEv");}
+dd6550 ::~dd6550(){ note_dtor("dd6550", this);} // tgen
+dd6550 ::dd6550(){ note_ctor("dd6550", this);} // tgen
+
+static void Test_dd6550()
+{
+ extern Class_Descriptor cd_dd6550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6550, buf);
+ dd6550 *dp, &lv = *(dp=new (buf) dd6550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd6550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(16,12), "dd6550");
+ check_base_class_offset(lv, (cc550*), 0, "dd6550");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6550.d");
+ test_class_info(&lv, &cd_dd6550);
+ dp->~dd6550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6550(Test_dd6550, "dd6550", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6550C1Ev();
+extern void _ZN6dd6550D1Ev();
+Name_Map name_map_dd6550[] = {
+ NSPAIR(_ZN6dd6550C1Ev),
+ NSPAIR(_ZN6dd6550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd6550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd6550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd6550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6550[] = {
+ {&(_ZTV6dd6550[4]), 4,11},
+ {&(_tg__ZTV5cc550__6dd6550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd6550[4]), 4,5},
+ {&(_ZTV6dd6550[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd6550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static VTBL_ENTRY alt_thunk_names290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6550 = { "dd6550", // class name
+ bases_dd6550, 3,
+ &(vtc_dd6550[0]), // expected_vtbl_contents
+ &(vtt_dd6550[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6550),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06550 : dd6550 {
+ int e;
+ ~ee06550(); // tgen
+ ee06550(); // tgen
+};
+//SIG(1 ee06550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06550 ::~ee06550(){ note_dtor("ee06550", this);} // tgen
+ee06550 ::ee06550(){ note_ctor("ee06550", this);} // tgen
+
+static void Test_ee06550()
+{
+ extern Class_Descriptor cd_ee06550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06550, buf);
+ ee06550 *dp, &lv = *(dp=new (buf) ee06550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee06550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(24,16), "ee06550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), 0, "ee06550");
+ check_base_class_offset(lv, (dd6550*), 0, "ee06550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06550.e");
+ test_class_info(&lv, &cd_ee06550);
+ dp->~ee06550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06550(Test_ee06550, "ee06550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06550C1Ev();
+extern void _ZN7ee06550D1Ev();
+Name_Map name_map_ee06550[] = {
+ NSPAIR(_ZN7ee06550C1Ev),
+ NSPAIR(_ZN7ee06550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee06550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee06550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee06550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee06550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee06550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee06550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06550[] = {
+ {&(_ZTV7ee06550[4]), 4,11},
+ {&(_tg__ZTV6dd6550__7ee06550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee06550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee06550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee06550[4]), 4,5},
+ {&(_ZTV7ee06550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee06550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06550[];
+extern VTBL_ENTRY _ZTV7ee06550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06550[];
+static VTBL_ENTRY alt_thunk_names291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06550 = { "ee06550", // class name
+ bases_ee06550, 4,
+ &(vtc_ee06550[0]), // expected_vtbl_contents
+ &(vtt_ee06550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16550 : virtual dd6550 {
+ int e;
+ ~ee16550(); // tgen
+ ee16550(); // tgen
+};
+//SIG(1 ee16550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16550 ::~ee16550(){ note_dtor("ee16550", this);} // tgen
+ee16550 ::ee16550(){ note_ctor("ee16550", this);} // tgen
+
+static void Test_ee16550()
+{
+ extern Class_Descriptor cd_ee16550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16550, buf);
+ ee16550 *dp, &lv = *(dp=new (buf) ee16550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee16550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(32,20), "ee16550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), ABISELECT(16,8), "ee16550");
+ check_base_class_offset(lv, (dd6550*), ABISELECT(16,8), "ee16550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16550.e");
+ test_class_info(&lv, &cd_ee16550);
+ dp->~ee16550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16550(Test_ee16550, "ee16550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16550C1Ev();
+extern void _ZN7ee16550D1Ev();
+Name_Map name_map_ee16550[] = {
+ NSPAIR(_ZN7ee16550C1Ev),
+ NSPAIR(_ZN7ee16550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee16550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee16550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16550[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee16550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee16550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee16550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee16550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee16550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16550[] = {
+ {&(_ZTV7ee16550[5]), 5,18},
+ {&(_ZTV7ee16550[11]), 11,18},
+ {&(_ZTV7ee16550[17]), 17,18},
+ {&(_tg__ZTV6dd6550__7ee16550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee16550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee16550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee16550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee16550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16550[];
+extern VTBL_ENTRY _ZTV7ee16550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16550[];
+static VTBL_ENTRY alt_thunk_names292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16550 = { "ee16550", // class name
+ bases_ee16550, 4,
+ &(vtc_ee16550[0]), // expected_vtbl_contents
+ &(vtt_ee16550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26550 : dd6550 {
+ int e;
+ virtual void foo(); // _ZN7ee265503fooEv
+ ~ee26550(); // tgen
+ ee26550(); // tgen
+};
+//SIG(1 ee26550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26550 ::foo(){vfunc_called(this, "_ZN7ee265503fooEv");}
+ee26550 ::~ee26550(){ note_dtor("ee26550", this);} // tgen
+ee26550 ::ee26550(){ note_ctor("ee26550", this);} // tgen
+
+static void Test_ee26550()
+{
+ extern Class_Descriptor cd_ee26550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26550, buf);
+ ee26550 *dp, &lv = *(dp=new (buf) ee26550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee26550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(24,16), "ee26550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), 0, "ee26550");
+ check_base_class_offset(lv, (dd6550*), 0, "ee26550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26550.e");
+ test_class_info(&lv, &cd_ee26550);
+ dp->~ee26550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26550(Test_ee26550, "ee26550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26550C1Ev();
+extern void _ZN7ee26550D1Ev();
+Name_Map name_map_ee26550[] = {
+ NSPAIR(_ZN7ee26550C1Ev),
+ NSPAIR(_ZN7ee26550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee26550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN7ee265503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN7ee265503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee26550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee26550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee26550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee26550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee26550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26550[] = {
+ {&(_ZTV7ee26550[4]), 4,11},
+ {&(_tg__ZTV6dd6550__7ee26550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee26550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee26550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee26550[4]), 4,5},
+ {&(_ZTV7ee26550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee26550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26550[];
+extern VTBL_ENTRY _ZTV7ee26550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26550[];
+static VTBL_ENTRY alt_thunk_names293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26550 = { "ee26550", // class name
+ bases_ee26550, 4,
+ &(vtc_ee26550[0]), // expected_vtbl_contents
+ &(vtt_ee26550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36550 : virtual dd6550 {
+ int e;
+ virtual void foo(); // _ZN7ee365503fooEv
+ ~ee36550(); // tgen
+ ee36550(); // tgen
+};
+//SIG(1 ee36550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36550 ::foo(){vfunc_called(this, "_ZN7ee365503fooEv");}
+ee36550 ::~ee36550(){ note_dtor("ee36550", this);} // tgen
+ee36550 ::ee36550(){ note_ctor("ee36550", this);} // tgen
+
+static void Test_ee36550()
+{
+ extern Class_Descriptor cd_ee36550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36550, buf);
+ ee36550 *dp, &lv = *(dp=new (buf) ee36550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee36550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(32,20), "ee36550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), ABISELECT(16,8), "ee36550");
+ check_base_class_offset(lv, (dd6550*), ABISELECT(16,8), "ee36550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36550.e");
+ test_class_info(&lv, &cd_ee36550);
+ dp->~ee36550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36550(Test_ee36550, "ee36550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36550C1Ev();
+extern void _ZN7ee36550D1Ev();
+Name_Map name_map_ee36550[] = {
+ NSPAIR(_ZN7ee36550C1Ev),
+ NSPAIR(_ZN7ee36550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee36550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee36550[];
+extern void _ZN7ee365503fooEv();
+extern void _ZN6dd65503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee365503fooEv,_ZTv0_n24_N7ee365503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365503fooEv,_ZThn8_N7ee365503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36550[0]),
+ (VTBL_ENTRY)&_ZN7ee365503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee365503fooEv,_ZTv0_n24_N7ee365503fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee36550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee36550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee36550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee36550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee36550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36550[] = {
+ {&(_ZTV7ee36550[5]), 5,19},
+ {&(_ZTV7ee36550[12]), 12,19},
+ {&(_ZTV7ee36550[18]), 18,19},
+ {&(_tg__ZTV6dd6550__7ee36550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee36550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee36550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee36550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee36550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36550[];
+extern VTBL_ENTRY _ZTV7ee36550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36550[];
+static VTBL_ENTRY alt_thunk_names294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee365503fooEv,_ZTv0_n24_N7ee365503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365503fooEv,_ZThn8_N7ee365503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36550 = { "ee36550", // class name
+ bases_ee36550, 4,
+ &(vtc_ee36550[0]), // expected_vtbl_contents
+ &(vtt_ee36550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36550),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46550 : dd6550 {
+ int e;
+ virtual void bar(); // _ZN7ee465503barEv
+ ~ee46550(); // tgen
+ ee46550(); // tgen
+};
+//SIG(1 ee46550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46550 ::bar(){vfunc_called(this, "_ZN7ee465503barEv");}
+ee46550 ::~ee46550(){ note_dtor("ee46550", this);} // tgen
+ee46550 ::ee46550(){ note_ctor("ee46550", this);} // tgen
+
+static void Test_ee46550()
+{
+ extern Class_Descriptor cd_ee46550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46550, buf);
+ ee46550 *dp, &lv = *(dp=new (buf) ee46550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee46550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(24,16), "ee46550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), 0, "ee46550");
+ check_base_class_offset(lv, (dd6550*), 0, "ee46550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46550.e");
+ test_class_info(&lv, &cd_ee46550);
+ dp->~ee46550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46550(Test_ee46550, "ee46550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46550C1Ev();
+extern void _ZN7ee46550D1Ev();
+Name_Map name_map_ee46550[] = {
+ NSPAIR(_ZN7ee46550C1Ev),
+ NSPAIR(_ZN7ee46550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee46550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46550[];
+extern void _ZN7ee465503barEv();
+extern void _ZN6dd65503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee465503barEv,_ZTv0_n16_N7ee465503barEv)();
+extern void ABISELECT(_ZThn24_N7ee465503barEv,_ZThn16_N7ee465503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46550[0]),
+ (VTBL_ENTRY)&_ZN7ee465503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465503barEv,_ZTv0_n16_N7ee465503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee46550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee46550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee46550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee46550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee46550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46550[] = {
+ {&(_ZTV7ee46550[4]), 4,11},
+ {&(_tg__ZTV6dd6550__7ee46550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee46550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee46550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee46550[4]), 4,5},
+ {&(_ZTV7ee46550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee46550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46550[];
+extern VTBL_ENTRY _ZTV7ee46550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46550[];
+static VTBL_ENTRY alt_thunk_names295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465503barEv,_ZTv0_n16_N7ee465503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465503barEv,_ZThn16_N7ee465503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46550 = { "ee46550", // class name
+ bases_ee46550, 4,
+ &(vtc_ee46550[0]), // expected_vtbl_contents
+ &(vtt_ee46550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names295,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56550 : virtual dd6550 {
+ int e;
+ virtual void bar(); // _ZN7ee565503barEv
+ ~ee56550(); // tgen
+ ee56550(); // tgen
+};
+//SIG(1 ee56550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56550 ::bar(){vfunc_called(this, "_ZN7ee565503barEv");}
+ee56550 ::~ee56550(){ note_dtor("ee56550", this);} // tgen
+ee56550 ::ee56550(){ note_ctor("ee56550", this);} // tgen
+
+static void Test_ee56550()
+{
+ extern Class_Descriptor cd_ee56550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56550, buf);
+ ee56550 *dp, &lv = *(dp=new (buf) ee56550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee56550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(32,20), "ee56550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), ABISELECT(16,8), "ee56550");
+ check_base_class_offset(lv, (dd6550*), ABISELECT(16,8), "ee56550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56550.e");
+ test_class_info(&lv, &cd_ee56550);
+ dp->~ee56550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56550(Test_ee56550, "ee56550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56550C1Ev();
+extern void _ZN7ee56550D1Ev();
+Name_Map name_map_ee56550[] = {
+ NSPAIR(_ZN7ee56550C1Ev),
+ NSPAIR(_ZN7ee56550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee56550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee56550[];
+extern void _ZN7ee565503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee565503barEv,_ZTv0_n20_N7ee565503barEv)();
+extern void ABISELECT(_ZThn16_N7ee565503barEv,_ZThn8_N7ee565503barEv)() __attribute__((weak));
+extern void _ZN6dd65503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565503barEv,_ZTv0_n16_N7ee565503barEv)();
+extern void ABISELECT(_ZThn32_N7ee565503barEv,_ZThn20_N7ee565503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56550[0]),
+ (VTBL_ENTRY)&_ZN7ee565503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee565503barEv,_ZTv0_n20_N7ee565503barEv),
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565503barEv,_ZTv0_n16_N7ee565503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee56550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee56550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee56550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee56550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee56550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56550[] = {
+ {&(_ZTV7ee56550[5]), 5,19},
+ {&(_ZTV7ee56550[12]), 12,19},
+ {&(_ZTV7ee56550[18]), 18,19},
+ {&(_tg__ZTV6dd6550__7ee56550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee56550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee56550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee56550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee56550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56550[];
+extern VTBL_ENTRY _ZTV7ee56550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56550[];
+static VTBL_ENTRY alt_thunk_names296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565503barEv,_ZTv0_n16_N7ee565503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565503barEv,_ZThn20_N7ee565503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee565503barEv,_ZTv0_n20_N7ee565503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565503barEv,_ZThn8_N7ee565503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56550 = { "ee56550", // class name
+ bases_ee56550, 4,
+ &(vtc_ee56550[0]), // expected_vtbl_contents
+ &(vtt_ee56550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56550),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66550 : dd6550 {
+ int e;
+ virtual void foo(); // _ZN7ee665503fooEv
+ virtual void bar(); // _ZN7ee665503barEv
+ ~ee66550(); // tgen
+ ee66550(); // tgen
+};
+//SIG(1 ee66550) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66550 ::foo(){vfunc_called(this, "_ZN7ee665503fooEv");}
+void ee66550 ::bar(){vfunc_called(this, "_ZN7ee665503barEv");}
+ee66550 ::~ee66550(){ note_dtor("ee66550", this);} // tgen
+ee66550 ::ee66550(){ note_ctor("ee66550", this);} // tgen
+
+static void Test_ee66550()
+{
+ extern Class_Descriptor cd_ee66550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66550, buf);
+ ee66550 *dp, &lv = *(dp=new (buf) ee66550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee66550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(24,16), "ee66550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), 0, "ee66550");
+ check_base_class_offset(lv, (dd6550*), 0, "ee66550");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66550.e");
+ test_class_info(&lv, &cd_ee66550);
+ dp->~ee66550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66550(Test_ee66550, "ee66550", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66550C1Ev();
+extern void _ZN7ee66550D1Ev();
+Name_Map name_map_ee66550[] = {
+ NSPAIR(_ZN7ee66550C1Ev),
+ NSPAIR(_ZN7ee66550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee66550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66550[];
+extern void _ZN7ee665503barEv();
+extern void _ZN7ee665503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee665503barEv,_ZTv0_n16_N7ee665503barEv)();
+extern void ABISELECT(_ZThn24_N7ee665503barEv,_ZThn16_N7ee665503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66550[0]),
+ (VTBL_ENTRY)&_ZN7ee665503barEv,
+ (VTBL_ENTRY)&_ZN7ee665503fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665503barEv,_ZTv0_n16_N7ee665503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee66550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee66550[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee66550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee66550[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee66550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66550[] = {
+ {&(_ZTV7ee66550[4]), 4,11},
+ {&(_tg__ZTV6dd6550__7ee66550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee66550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee66550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee66550[4]), 4,5},
+ {&(_ZTV7ee66550[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee66550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66550[];
+extern VTBL_ENTRY _ZTV7ee66550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66550[];
+static VTBL_ENTRY alt_thunk_names297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65503barEv,_ZThn16_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5503barEv,_ZThn16_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665503barEv,_ZTv0_n16_N7ee665503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665503barEv,_ZThn16_N7ee665503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66550 = { "ee66550", // class name
+ bases_ee66550, 4,
+ &(vtc_ee66550[0]), // expected_vtbl_contents
+ &(vtt_ee66550[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66550),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66550),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76550 : virtual dd6550 {
+ int e;
+ virtual void foo(); // _ZN7ee765503fooEv
+ virtual void bar(); // _ZN7ee765503barEv
+ ~ee76550(); // tgen
+ ee76550(); // tgen
+};
+//SIG(1 ee76550) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76550 ::foo(){vfunc_called(this, "_ZN7ee765503fooEv");}
+void ee76550 ::bar(){vfunc_called(this, "_ZN7ee765503barEv");}
+ee76550 ::~ee76550(){ note_dtor("ee76550", this);} // tgen
+ee76550 ::ee76550(){ note_ctor("ee76550", this);} // tgen
+
+static void Test_ee76550()
+{
+ extern Class_Descriptor cd_ee76550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76550, buf);
+ ee76550 *dp, &lv = *(dp=new (buf) ee76550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee76550");
+ check_base_class_offset(lv, (bb50*)(cc550*)(dd6550*), ABISELECT(32,20), "ee76550");
+ check_base_class_offset(lv, (cc550*)(dd6550*), ABISELECT(16,8), "ee76550");
+ check_base_class_offset(lv, (dd6550*), ABISELECT(16,8), "ee76550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76550.e");
+ test_class_info(&lv, &cd_ee76550);
+ dp->~ee76550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76550(Test_ee76550, "ee76550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76550C1Ev();
+extern void _ZN7ee76550D1Ev();
+Name_Map name_map_ee76550[] = {
+ NSPAIR(_ZN7ee76550C1Ev),
+ NSPAIR(_ZN7ee76550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd6550;
+extern VTBL_ENTRY _ZTI6dd6550[];
+extern VTBL_ENTRY _ZTV6dd6550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6550[];
+static Base_Class bases_ee76550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee76550[];
+extern void _ZN7ee765503fooEv();
+extern void _ZN7ee765503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee765503barEv,_ZTv0_n20_N7ee765503barEv)();
+extern void ABISELECT(_ZThn16_N7ee765503barEv,_ZThn8_N7ee765503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee765503fooEv,_ZTv0_n24_N7ee765503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765503fooEv,_ZThn8_N7ee765503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765503barEv,_ZTv0_n16_N7ee765503barEv)();
+extern void ABISELECT(_ZThn32_N7ee765503barEv,_ZThn20_N7ee765503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76550[0]),
+ (VTBL_ENTRY)&_ZN7ee765503fooEv,
+ (VTBL_ENTRY)&_ZN7ee765503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765503barEv,_ZTv0_n20_N7ee765503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee765503fooEv,_ZTv0_n24_N7ee765503fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765503barEv,_ZTv0_n16_N7ee765503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76550[];
+extern void _ZN6dd65503barEv();
+extern void _ZN6dd65503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6550__7ee76550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&_ZN6dd65503barEv,
+ (VTBL_ENTRY)&_ZN6dd65503fooEv,
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc5506dd6550__7ee76550[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc5506dd6550__7ee76550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv)();
+extern void ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6550__7ee76550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee76550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76550[] = {
+ {&(_ZTV7ee76550[5]), 5,20},
+ {&(_ZTV7ee76550[13]), 13,20},
+ {&(_ZTV7ee76550[19]), 19,20},
+ {&(_tg__ZTV6dd6550__7ee76550[4]), 4,6},
+ {&(_tg__ZTV5cc5506dd6550__7ee76550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc5506dd6550__7ee76550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6550__7ee76550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee76550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76550[];
+extern VTBL_ENTRY _ZTV7ee76550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76550[];
+static VTBL_ENTRY alt_thunk_names298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65503barEv,_ZTv0_n16_N6dd65503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65503barEv,_ZThn12_N6dd65503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn12_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765503barEv,_ZTv0_n16_N7ee765503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765503barEv,_ZThn20_N7ee765503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee765503fooEv,_ZTv0_n24_N7ee765503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765503fooEv,_ZThn8_N7ee765503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765503barEv,_ZTv0_n20_N7ee765503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765503barEv,_ZThn8_N7ee765503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76550 = { "ee76550", // class name
+ bases_ee76550, 4,
+ &(vtc_ee76550[0]), // expected_vtbl_contents
+ &(vtt_ee76550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76550),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76550),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7550 : virtual cc550 {
+ int d;
+ virtual void bar(); // _ZN6dd75503barEv
+ virtual void foo(); // _ZN6dd75503fooEv
+ ~dd7550(); // tgen
+ dd7550(); // tgen
+};
+//SIG(-1 dd7550) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7550 ::bar(){vfunc_called(this, "_ZN6dd75503barEv");}
+void dd7550 ::foo(){vfunc_called(this, "_ZN6dd75503fooEv");}
+dd7550 ::~dd7550(){ note_dtor("dd7550", this);} // tgen
+dd7550 ::dd7550(){ note_ctor("dd7550", this);} // tgen
+
+static void Test_dd7550()
+{
+ extern Class_Descriptor cd_dd7550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7550, buf);
+ dd7550 *dp, &lv = *(dp=new (buf) dd7550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd7550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,16), "dd7550");
+ check_base_class_offset(lv, (cc550*), ABISELECT(16,8), "dd7550");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7550.d");
+ test_class_info(&lv, &cd_dd7550);
+ dp->~dd7550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7550(Test_dd7550, "dd7550", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7550C1Ev();
+extern void _ZN6dd7550D1Ev();
+Name_Map name_map_dd7550[] = {
+ NSPAIR(_ZN6dd7550C1Ev),
+ NSPAIR(_ZN6dd7550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+static Base_Class bases_dd7550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__6dd7550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7550[] = {
+ {&(_ZTV6dd7550[5]), 5,18},
+ {&(_ZTV6dd7550[12]), 12,18},
+ {&(_ZTV6dd7550[17]), 17,18},
+ {&(_tg__ZTV5cc550__6dd7550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__6dd7550[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd7550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static VTBL_ENTRY alt_thunk_names299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7550 = { "dd7550", // class name
+ bases_dd7550, 3,
+ &(vtc_dd7550[0]), // expected_vtbl_contents
+ &(vtt_dd7550[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7550),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07550 : dd7550 {
+ int e;
+ ~ee07550(); // tgen
+ ee07550(); // tgen
+};
+//SIG(1 ee07550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07550 ::~ee07550(){ note_dtor("ee07550", this);} // tgen
+ee07550 ::ee07550(){ note_ctor("ee07550", this);} // tgen
+
+static void Test_ee07550()
+{
+ extern Class_Descriptor cd_ee07550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07550, buf);
+ ee07550 *dp, &lv = *(dp=new (buf) ee07550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee07550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee07550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(16,12), "ee07550");
+ check_base_class_offset(lv, (dd7550*), 0, "ee07550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07550.e");
+ test_class_info(&lv, &cd_ee07550);
+ dp->~ee07550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07550(Test_ee07550, "ee07550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07550C1Ev();
+extern void _ZN7ee07550D1Ev();
+Name_Map name_map_ee07550[] = {
+ NSPAIR(_ZN7ee07550C1Ev),
+ NSPAIR(_ZN7ee07550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee07550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee07550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee07550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee07550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee07550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee07550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee07550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07550[] = {
+ {&(_ZTV7ee07550[5]), 5,18},
+ {&(_tg__ZTV6dd7550__7ee07550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee07550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee07550[4]), 4,5},
+ {&(_ZTV7ee07550[12]), 12,18},
+ {&(_ZTV7ee07550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee07550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee07550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee07550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07550[];
+extern VTBL_ENTRY _ZTV7ee07550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07550[];
+static VTBL_ENTRY alt_thunk_names300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07550 = { "ee07550", // class name
+ bases_ee07550, 4,
+ &(vtc_ee07550[0]), // expected_vtbl_contents
+ &(vtt_ee07550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17550 : virtual dd7550 {
+ int e;
+ ~ee17550(); // tgen
+ ee17550(); // tgen
+};
+//SIG(1 ee17550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17550 ::~ee17550(){ note_dtor("ee17550", this);} // tgen
+ee17550 ::ee17550(){ note_ctor("ee17550", this);} // tgen
+
+static void Test_ee17550()
+{
+ extern Class_Descriptor cd_ee17550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17550, buf);
+ ee17550 *dp, &lv = *(dp=new (buf) ee17550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee17550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee17550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(32,16), "ee17550");
+ check_base_class_offset(lv, (dd7550*), ABISELECT(16,8), "ee17550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17550.e");
+ test_class_info(&lv, &cd_ee17550);
+ dp->~ee17550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17550(Test_ee17550, "ee17550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17550C1Ev();
+extern void _ZN7ee17550D1Ev();
+Name_Map name_map_ee17550[] = {
+ NSPAIR(_ZN7ee17550C1Ev),
+ NSPAIR(_ZN7ee17550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee17550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee17550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17550[0]),
+ 0,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee17550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee17550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee17550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee17550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee17550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee17550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17550[] = {
+ {&(_ZTV7ee17550[6]), 6,26},
+ {&(_ZTV7ee17550[13]), 13,26},
+ {&(_ZTV7ee17550[20]), 20,26},
+ {&(_ZTV7ee17550[25]), 25,26},
+ {&(_tg__ZTV6dd7550__7ee17550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee17550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee17550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee17550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee17550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee17550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17550[];
+extern VTBL_ENTRY _ZTV7ee17550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17550[];
+static VTBL_ENTRY alt_thunk_names301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17550 = { "ee17550", // class name
+ bases_ee17550, 4,
+ &(vtc_ee17550[0]), // expected_vtbl_contents
+ &(vtt_ee17550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17550),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27550 : dd7550 {
+ int e;
+ virtual void foo(); // _ZN7ee275503fooEv
+ ~ee27550(); // tgen
+ ee27550(); // tgen
+};
+//SIG(1 ee27550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27550 ::foo(){vfunc_called(this, "_ZN7ee275503fooEv");}
+ee27550 ::~ee27550(){ note_dtor("ee27550", this);} // tgen
+ee27550 ::ee27550(){ note_ctor("ee27550", this);} // tgen
+
+static void Test_ee27550()
+{
+ extern Class_Descriptor cd_ee27550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27550, buf);
+ ee27550 *dp, &lv = *(dp=new (buf) ee27550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee27550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee27550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(16,12), "ee27550");
+ check_base_class_offset(lv, (dd7550*), 0, "ee27550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27550.e");
+ test_class_info(&lv, &cd_ee27550);
+ dp->~ee27550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27550(Test_ee27550, "ee27550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27550C1Ev();
+extern void _ZN7ee27550D1Ev();
+Name_Map name_map_ee27550[] = {
+ NSPAIR(_ZN7ee27550C1Ev),
+ NSPAIR(_ZN7ee27550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee27550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN7ee275503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN7ee275503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee27550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee27550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee27550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee27550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee27550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee27550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27550[] = {
+ {&(_ZTV7ee27550[5]), 5,18},
+ {&(_tg__ZTV6dd7550__7ee27550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee27550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee27550[4]), 4,5},
+ {&(_ZTV7ee27550[12]), 12,18},
+ {&(_ZTV7ee27550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee27550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee27550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee27550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27550[];
+extern VTBL_ENTRY _ZTV7ee27550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27550[];
+static VTBL_ENTRY alt_thunk_names302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27550 = { "ee27550", // class name
+ bases_ee27550, 4,
+ &(vtc_ee27550[0]), // expected_vtbl_contents
+ &(vtt_ee27550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37550 : virtual dd7550 {
+ int e;
+ virtual void foo(); // _ZN7ee375503fooEv
+ ~ee37550(); // tgen
+ ee37550(); // tgen
+};
+//SIG(1 ee37550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37550 ::foo(){vfunc_called(this, "_ZN7ee375503fooEv");}
+ee37550 ::~ee37550(){ note_dtor("ee37550", this);} // tgen
+ee37550 ::ee37550(){ note_ctor("ee37550", this);} // tgen
+
+static void Test_ee37550()
+{
+ extern Class_Descriptor cd_ee37550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37550, buf);
+ ee37550 *dp, &lv = *(dp=new (buf) ee37550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee37550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee37550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(32,16), "ee37550");
+ check_base_class_offset(lv, (dd7550*), ABISELECT(16,8), "ee37550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37550.e");
+ test_class_info(&lv, &cd_ee37550);
+ dp->~ee37550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37550(Test_ee37550, "ee37550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37550C1Ev();
+extern void _ZN7ee37550D1Ev();
+Name_Map name_map_ee37550[] = {
+ NSPAIR(_ZN7ee37550C1Ev),
+ NSPAIR(_ZN7ee37550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee37550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee37550[];
+extern void _ZN7ee375503fooEv();
+extern void _ZN6dd75503barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee375503fooEv,_ZTv0_n28_N7ee375503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375503fooEv,_ZThn8_N7ee375503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37550[0]),
+ (VTBL_ENTRY)&_ZN7ee375503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee375503fooEv,_ZTv0_n28_N7ee375503fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee37550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee37550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee37550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee37550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee37550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee37550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37550[] = {
+ {&(_ZTV7ee37550[6]), 6,27},
+ {&(_ZTV7ee37550[14]), 14,27},
+ {&(_ZTV7ee37550[21]), 21,27},
+ {&(_ZTV7ee37550[26]), 26,27},
+ {&(_tg__ZTV6dd7550__7ee37550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee37550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee37550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee37550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee37550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee37550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37550[];
+extern VTBL_ENTRY _ZTV7ee37550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37550[];
+static VTBL_ENTRY alt_thunk_names303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee375503fooEv,_ZTv0_n28_N7ee375503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375503fooEv,_ZThn8_N7ee375503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37550 = { "ee37550", // class name
+ bases_ee37550, 4,
+ &(vtc_ee37550[0]), // expected_vtbl_contents
+ &(vtt_ee37550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37550),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47550 : dd7550 {
+ int e;
+ virtual void bar(); // _ZN7ee475503barEv
+ ~ee47550(); // tgen
+ ee47550(); // tgen
+};
+//SIG(1 ee47550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47550 ::bar(){vfunc_called(this, "_ZN7ee475503barEv");}
+ee47550 ::~ee47550(){ note_dtor("ee47550", this);} // tgen
+ee47550 ::ee47550(){ note_ctor("ee47550", this);} // tgen
+
+static void Test_ee47550()
+{
+ extern Class_Descriptor cd_ee47550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47550, buf);
+ ee47550 *dp, &lv = *(dp=new (buf) ee47550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee47550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee47550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(16,12), "ee47550");
+ check_base_class_offset(lv, (dd7550*), 0, "ee47550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47550.e");
+ test_class_info(&lv, &cd_ee47550);
+ dp->~ee47550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47550(Test_ee47550, "ee47550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47550C1Ev();
+extern void _ZN7ee47550D1Ev();
+Name_Map name_map_ee47550[] = {
+ NSPAIR(_ZN7ee47550C1Ev),
+ NSPAIR(_ZN7ee47550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee47550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47550[];
+extern void _ZN7ee475503barEv();
+extern void _ZN6dd75503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee475503barEv,_ZTv0_n20_N7ee475503barEv)();
+extern void ABISELECT(_ZThn16_N7ee475503barEv,_ZThn12_N7ee475503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475503barEv,_ZTv0_n16_N7ee475503barEv)();
+extern void ABISELECT(_ZThn32_N7ee475503barEv,_ZThn20_N7ee475503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47550[0]),
+ (VTBL_ENTRY)&_ZN7ee475503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee475503barEv,_ZTv0_n20_N7ee475503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475503barEv,_ZTv0_n16_N7ee475503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee47550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee47550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee47550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee47550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee47550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee47550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47550[] = {
+ {&(_ZTV7ee47550[5]), 5,18},
+ {&(_tg__ZTV6dd7550__7ee47550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee47550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee47550[4]), 4,5},
+ {&(_ZTV7ee47550[12]), 12,18},
+ {&(_ZTV7ee47550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee47550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee47550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee47550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47550[];
+extern VTBL_ENTRY _ZTV7ee47550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47550[];
+static VTBL_ENTRY alt_thunk_names304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475503barEv,_ZTv0_n16_N7ee475503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475503barEv,_ZThn20_N7ee475503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee475503barEv,_ZTv0_n20_N7ee475503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475503barEv,_ZThn12_N7ee475503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47550 = { "ee47550", // class name
+ bases_ee47550, 4,
+ &(vtc_ee47550[0]), // expected_vtbl_contents
+ &(vtt_ee47550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57550 : virtual dd7550 {
+ int e;
+ virtual void bar(); // _ZN7ee575503barEv
+ ~ee57550(); // tgen
+ ee57550(); // tgen
+};
+//SIG(1 ee57550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57550 ::bar(){vfunc_called(this, "_ZN7ee575503barEv");}
+ee57550 ::~ee57550(){ note_dtor("ee57550", this);} // tgen
+ee57550 ::ee57550(){ note_ctor("ee57550", this);} // tgen
+
+static void Test_ee57550()
+{
+ extern Class_Descriptor cd_ee57550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57550, buf);
+ ee57550 *dp, &lv = *(dp=new (buf) ee57550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee57550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee57550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(32,16), "ee57550");
+ check_base_class_offset(lv, (dd7550*), ABISELECT(16,8), "ee57550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57550.e");
+ test_class_info(&lv, &cd_ee57550);
+ dp->~ee57550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57550(Test_ee57550, "ee57550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57550C1Ev();
+extern void _ZN7ee57550D1Ev();
+Name_Map name_map_ee57550[] = {
+ NSPAIR(_ZN7ee57550C1Ev),
+ NSPAIR(_ZN7ee57550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee57550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee57550[];
+extern void _ZN7ee575503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee575503barEv,_ZTv0_n24_N7ee575503barEv)();
+extern void ABISELECT(_ZThn16_N7ee575503barEv,_ZThn8_N7ee575503barEv)() __attribute__((weak));
+extern void _ZN6dd75503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575503barEv,_ZTv0_n20_N7ee575503barEv)();
+extern void ABISELECT(_ZThn32_N7ee575503barEv,_ZThn16_N7ee575503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575503barEv,_ZTv0_n16_N7ee575503barEv)();
+extern void ABISELECT(_ZThn48_N7ee575503barEv,_ZThn24_N7ee575503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57550[0]),
+ (VTBL_ENTRY)&_ZN7ee575503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee575503barEv,_ZTv0_n24_N7ee575503barEv),
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575503barEv,_ZTv0_n20_N7ee575503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575503barEv,_ZTv0_n16_N7ee575503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee57550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee57550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee57550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee57550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee57550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee57550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57550[] = {
+ {&(_ZTV7ee57550[6]), 6,27},
+ {&(_ZTV7ee57550[14]), 14,27},
+ {&(_ZTV7ee57550[21]), 21,27},
+ {&(_ZTV7ee57550[26]), 26,27},
+ {&(_tg__ZTV6dd7550__7ee57550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee57550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee57550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee57550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee57550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee57550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57550[];
+extern VTBL_ENTRY _ZTV7ee57550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57550[];
+static VTBL_ENTRY alt_thunk_names305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575503barEv,_ZTv0_n16_N7ee575503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575503barEv,_ZThn24_N7ee575503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575503barEv,_ZTv0_n20_N7ee575503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575503barEv,_ZThn16_N7ee575503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee575503barEv,_ZTv0_n24_N7ee575503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575503barEv,_ZThn8_N7ee575503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57550 = { "ee57550", // class name
+ bases_ee57550, 4,
+ &(vtc_ee57550[0]), // expected_vtbl_contents
+ &(vtt_ee57550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57550),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67550 : dd7550 {
+ int e;
+ virtual void foo(); // _ZN7ee675503fooEv
+ virtual void bar(); // _ZN7ee675503barEv
+ ~ee67550(); // tgen
+ ee67550(); // tgen
+};
+//SIG(1 ee67550) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67550 ::foo(){vfunc_called(this, "_ZN7ee675503fooEv");}
+void ee67550 ::bar(){vfunc_called(this, "_ZN7ee675503barEv");}
+ee67550 ::~ee67550(){ note_dtor("ee67550", this);} // tgen
+ee67550 ::ee67550(){ note_ctor("ee67550", this);} // tgen
+
+static void Test_ee67550()
+{
+ extern Class_Descriptor cd_ee67550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67550, buf);
+ ee67550 *dp, &lv = *(dp=new (buf) ee67550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee67550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(32,20), "ee67550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(16,12), "ee67550");
+ check_base_class_offset(lv, (dd7550*), 0, "ee67550");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67550.e");
+ test_class_info(&lv, &cd_ee67550);
+ dp->~ee67550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67550(Test_ee67550, "ee67550", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67550C1Ev();
+extern void _ZN7ee67550D1Ev();
+Name_Map name_map_ee67550[] = {
+ NSPAIR(_ZN7ee67550C1Ev),
+ NSPAIR(_ZN7ee67550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee67550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67550[];
+extern void _ZN7ee675503barEv();
+extern void _ZN7ee675503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee675503barEv,_ZTv0_n20_N7ee675503barEv)();
+extern void ABISELECT(_ZThn16_N7ee675503barEv,_ZThn12_N7ee675503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675503barEv,_ZTv0_n16_N7ee675503barEv)();
+extern void ABISELECT(_ZThn32_N7ee675503barEv,_ZThn20_N7ee675503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67550[0]),
+ (VTBL_ENTRY)&_ZN7ee675503barEv,
+ (VTBL_ENTRY)&_ZN7ee675503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee675503barEv,_ZTv0_n20_N7ee675503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675503barEv,_ZTv0_n16_N7ee675503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee67550[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee67550[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee67550[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee67550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee67550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee67550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67550[] = {
+ {&(_ZTV7ee67550[5]), 5,18},
+ {&(_tg__ZTV6dd7550__7ee67550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee67550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee67550[4]), 4,5},
+ {&(_ZTV7ee67550[12]), 12,18},
+ {&(_ZTV7ee67550[17]), 17,18},
+ {&(_tg__ZTV5cc550__7ee67550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee67550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee67550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67550[];
+extern VTBL_ENTRY _ZTV7ee67550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67550[];
+static VTBL_ENTRY alt_thunk_names306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn20_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn12_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675503barEv,_ZTv0_n16_N7ee675503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675503barEv,_ZThn20_N7ee675503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee675503barEv,_ZTv0_n20_N7ee675503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675503barEv,_ZThn12_N7ee675503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67550 = { "ee67550", // class name
+ bases_ee67550, 4,
+ &(vtc_ee67550[0]), // expected_vtbl_contents
+ &(vtt_ee67550[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67550),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67550),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67550),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77550 : virtual dd7550 {
+ int e;
+ virtual void foo(); // _ZN7ee775503fooEv
+ virtual void bar(); // _ZN7ee775503barEv
+ ~ee77550(); // tgen
+ ee77550(); // tgen
+};
+//SIG(1 ee77550) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77550 ::foo(){vfunc_called(this, "_ZN7ee775503fooEv");}
+void ee77550 ::bar(){vfunc_called(this, "_ZN7ee775503barEv");}
+ee77550 ::~ee77550(){ note_dtor("ee77550", this);} // tgen
+ee77550 ::ee77550(){ note_ctor("ee77550", this);} // tgen
+
+static void Test_ee77550()
+{
+ extern Class_Descriptor cd_ee77550;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77550, buf);
+ ee77550 *dp, &lv = *(dp=new (buf) ee77550());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77550)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77550)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee77550");
+ check_base_class_offset(lv, (bb50*)(cc550*), ABISELECT(48,24), "ee77550");
+ check_base_class_offset(lv, (cc550*)(dd7550*), ABISELECT(32,16), "ee77550");
+ check_base_class_offset(lv, (dd7550*), ABISELECT(16,8), "ee77550");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77550.e");
+ test_class_info(&lv, &cd_ee77550);
+ dp->~ee77550();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77550(Test_ee77550, "ee77550", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77550C1Ev();
+extern void _ZN7ee77550D1Ev();
+Name_Map name_map_ee77550[] = {
+ NSPAIR(_ZN7ee77550C1Ev),
+ NSPAIR(_ZN7ee77550D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc550;
+extern VTBL_ENTRY _ZTI5cc550[];
+extern VTBL_ENTRY _ZTV5cc550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc550[];
+extern Class_Descriptor cd_dd7550;
+extern VTBL_ENTRY _ZTI6dd7550[];
+extern VTBL_ENTRY _ZTV6dd7550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7550[];
+static Base_Class bases_ee77550[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc550, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7550, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee77550[];
+extern void _ZN7ee775503fooEv();
+extern void _ZN7ee775503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee775503barEv,_ZTv0_n24_N7ee775503barEv)();
+extern void ABISELECT(_ZThn16_N7ee775503barEv,_ZThn8_N7ee775503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee775503fooEv,_ZTv0_n28_N7ee775503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775503fooEv,_ZThn8_N7ee775503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee775503barEv,_ZTv0_n20_N7ee775503barEv)();
+extern void ABISELECT(_ZThn32_N7ee775503barEv,_ZThn16_N7ee775503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775503barEv,_ZTv0_n16_N7ee775503barEv)();
+extern void ABISELECT(_ZThn48_N7ee775503barEv,_ZThn24_N7ee775503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77550[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77550[0]),
+ (VTBL_ENTRY)&_ZN7ee775503fooEv,
+ (VTBL_ENTRY)&_ZN7ee775503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775503barEv,_ZTv0_n24_N7ee775503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee775503fooEv,_ZTv0_n28_N7ee775503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775503barEv,_ZTv0_n20_N7ee775503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775503barEv,_ZTv0_n16_N7ee775503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77550[];
+extern void _ZN6dd75503barEv();
+extern void _ZN6dd75503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7550__7ee77550[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&_ZN6dd75503barEv,
+ (VTBL_ENTRY)&_ZN6dd75503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv)();
+extern void ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc550__6dd7550__7ee77550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv)();
+extern void ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7550__7ee77550[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv),
+};
+extern void _ZN5cc5503barEv();
+static VTBL_ENTRY _tg__ZTV5cc550__7ee77550[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&_ZN5cc5503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv)();
+extern void ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc550__7ee77550[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc550[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee77550[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77550[] = {
+ {&(_ZTV7ee77550[6]), 6,28},
+ {&(_ZTV7ee77550[15]), 15,28},
+ {&(_ZTV7ee77550[22]), 22,28},
+ {&(_ZTV7ee77550[27]), 27,28},
+ {&(_tg__ZTV6dd7550__7ee77550[5]), 5,7},
+ {&(_tg__ZTV5cc550__6dd7550__7ee77550[5]), 5,6},
+ {&(_tg__ZTV4bb50__6dd7550__7ee77550[4]), 4,5},
+ {&(_tg__ZTV5cc550__7ee77550[4]), 4,5},
+ {&(_tg__ZTV4bb50__5cc550__7ee77550[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee77550[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77550[];
+extern VTBL_ENTRY _ZTV7ee77550[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77550[];
+static VTBL_ENTRY alt_thunk_names307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5503barEv,_ZTv0_n16_N5cc5503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5503barEv,_ZThn8_N5cc5503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75503barEv,_ZTv0_n16_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75503barEv,_ZThn16_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75503barEv,_ZTv0_n20_N6dd75503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75503barEv,_ZThn8_N6dd75503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775503barEv,_ZTv0_n16_N7ee775503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775503barEv,_ZThn24_N7ee775503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775503barEv,_ZTv0_n20_N7ee775503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775503barEv,_ZThn16_N7ee775503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee775503fooEv,_ZTv0_n28_N7ee775503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775503fooEv,_ZThn8_N7ee775503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775503barEv,_ZTv0_n24_N7ee775503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775503barEv,_ZThn8_N7ee775503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77550 = { "ee77550", // class name
+ bases_ee77550, 4,
+ &(vtc_ee77550[0]), // expected_vtbl_contents
+ &(vtt_ee77550[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77550),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77550),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77550),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc650 : bb50 {
+ int c;
+ virtual void foo(); // _ZN5cc6503fooEv
+ virtual void bar(); // _ZN5cc6503barEv
+ ~cc650(); // tgen
+ cc650(); // tgen
+};
+//SIG(-1 cc650) C1{ BC2{ VBC3{ Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc650 ::foo(){vfunc_called(this, "_ZN5cc6503fooEv");}
+void cc650 ::bar(){vfunc_called(this, "_ZN5cc6503barEv");}
+cc650 ::~cc650(){ note_dtor("cc650", this);} // tgen
+cc650 ::cc650(){ note_ctor("cc650", this);} // tgen
+
+static void Test_cc650()
+{
+ extern Class_Descriptor cd_cc650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,5)];
+ init_test(&cd_cc650, buf);
+ cc650 *dp, &lv = *(dp=new (buf) cc650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,16), "sizeof(cc650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc650)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(16,12), "cc650");
+ check_base_class_offset(lv, (bb50*), 0, "cc650");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc650.c");
+ test_class_info(&lv, &cd_cc650);
+ dp->~cc650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc650(Test_cc650, "cc650", ABISELECT(24,16));
+
+#else // __cplusplus
+
+extern void _ZN5cc650C1Ev();
+extern void _ZN5cc650D1Ev();
+Name_Map name_map_cc650[] = {
+ NSPAIR(_ZN5cc650C1Ev),
+ NSPAIR(_ZN5cc650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 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
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_cc650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc650[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc650[] = {
+ {&(_ZTV5cc650[3]), 3,5},
+ {&(_tg__ZTV4bb50__5cc650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+Class_Descriptor cd_cc650 = { "cc650", // class name
+ bases_cc650, 2,
+ &(vtc_cc650[0]), // expected_vtbl_contents
+ &(vtt_cc650[0]), // expected_vtt_contents
+ ABISELECT(24,16), // object size
+ NSPAIRA(_ZTI5cc650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc650),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0650 : cc650 {
+ int d;
+ ~dd0650(); // tgen
+ dd0650(); // tgen
+};
+//SIG(-1 dd0650) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0650 ::~dd0650(){ note_dtor("dd0650", this);} // tgen
+dd0650 ::dd0650(){ note_ctor("dd0650", this);} // tgen
+
+static void Test_dd0650()
+{
+ extern Class_Descriptor cd_dd0650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd0650, buf);
+ dd0650 *dp, &lv = *(dp=new (buf) dd0650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd0650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(20,16), "dd0650");
+ check_base_class_offset(lv, (bb50*)(cc650*), 0, "dd0650");
+ check_base_class_offset(lv, (cc650*), 0, "dd0650");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0650.d");
+ test_class_info(&lv, &cd_dd0650);
+ dp->~dd0650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0650(Test_dd0650, "dd0650", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd0650C1Ev();
+extern void _ZN6dd0650D1Ev();
+Name_Map name_map_dd0650[] = {
+ NSPAIR(_ZN6dd0650C1Ev),
+ NSPAIR(_ZN6dd0650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd0650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_dd0650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd0650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd0650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0650[] = {
+ {&(_ZTV6dd0650[3]), 3,5},
+ {&(_tg__ZTV5cc650__6dd0650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd0650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+Class_Descriptor cd_dd0650 = { "dd0650", // class name
+ bases_dd0650, 3,
+ &(vtc_dd0650[0]), // expected_vtbl_contents
+ &(vtt_dd0650[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd0650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0650),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00650 : dd0650 {
+ int e;
+ ~ee00650(); // tgen
+ ee00650(); // tgen
+};
+//SIG(1 ee00650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00650 ::~ee00650(){ note_dtor("ee00650", this);} // tgen
+ee00650 ::ee00650(){ note_ctor("ee00650", this);} // tgen
+
+static void Test_ee00650()
+{
+ extern Class_Descriptor cd_ee00650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee00650, buf);
+ ee00650 *dp, &lv = *(dp=new (buf) ee00650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee00650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(24,20), "ee00650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), 0, "ee00650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), 0, "ee00650");
+ check_base_class_offset(lv, (dd0650*), 0, "ee00650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00650.e");
+ test_class_info(&lv, &cd_ee00650);
+ dp->~ee00650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00650(Test_ee00650, "ee00650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee00650C1Ev();
+extern void _ZN7ee00650D1Ev();
+Name_Map name_map_ee00650[] = {
+ NSPAIR(_ZN7ee00650C1Ev),
+ NSPAIR(_ZN7ee00650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee00650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee00650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee00650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee00650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee00650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00650[] = {
+ {&(_ZTV7ee00650[3]), 3,5},
+ {&(_tg__ZTV6dd0650__7ee00650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee00650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee00650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00650[];
+extern VTBL_ENTRY _ZTV7ee00650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00650[];
+Class_Descriptor cd_ee00650 = { "ee00650", // class name
+ bases_ee00650, 4,
+ &(vtc_ee00650[0]), // expected_vtbl_contents
+ &(vtt_ee00650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee00650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10650 : virtual dd0650 {
+ int e;
+ ~ee10650(); // tgen
+ ee10650(); // tgen
+};
+//SIG(1 ee10650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10650 ::~ee10650(){ note_dtor("ee10650", this);} // tgen
+ee10650 ::ee10650(){ note_ctor("ee10650", this);} // tgen
+
+static void Test_ee10650()
+{
+ extern Class_Descriptor cd_ee10650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee10650, buf);
+ ee10650 *dp, &lv = *(dp=new (buf) ee10650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee10650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(36,24), "ee10650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), ABISELECT(16,8), "ee10650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), ABISELECT(16,8), "ee10650");
+ check_base_class_offset(lv, (dd0650*), ABISELECT(16,8), "ee10650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10650.e");
+ test_class_info(&lv, &cd_ee10650);
+ dp->~ee10650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10650(Test_ee10650, "ee10650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee10650C1Ev();
+extern void _ZN7ee10650D1Ev();
+Name_Map name_map_ee10650[] = {
+ NSPAIR(_ZN7ee10650C1Ev),
+ NSPAIR(_ZN7ee10650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee10650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee10650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10650[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee10650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee10650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee10650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10650[] = {
+ {&(_ZTV7ee10650[4]), 4,11},
+ {&(_ZTV7ee10650[9]), 9,11},
+ {&(_tg__ZTV6dd0650__7ee10650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee10650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee10650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10650[];
+extern VTBL_ENTRY _ZTV7ee10650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10650[];
+Class_Descriptor cd_ee10650 = { "ee10650", // class name
+ bases_ee10650, 4,
+ &(vtc_ee10650[0]), // expected_vtbl_contents
+ &(vtt_ee10650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee10650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20650 : dd0650 {
+ int e;
+ virtual void foo(); // _ZN7ee206503fooEv
+ ~ee20650(); // tgen
+ ee20650(); // tgen
+};
+//SIG(1 ee20650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20650 ::foo(){vfunc_called(this, "_ZN7ee206503fooEv");}
+ee20650 ::~ee20650(){ note_dtor("ee20650", this);} // tgen
+ee20650 ::ee20650(){ note_ctor("ee20650", this);} // tgen
+
+static void Test_ee20650()
+{
+ extern Class_Descriptor cd_ee20650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee20650, buf);
+ ee20650 *dp, &lv = *(dp=new (buf) ee20650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee20650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(24,20), "ee20650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), 0, "ee20650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), 0, "ee20650");
+ check_base_class_offset(lv, (dd0650*), 0, "ee20650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20650.e");
+ test_class_info(&lv, &cd_ee20650);
+ dp->~ee20650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20650(Test_ee20650, "ee20650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee20650C1Ev();
+extern void _ZN7ee20650D1Ev();
+Name_Map name_map_ee20650[] = {
+ NSPAIR(_ZN7ee20650C1Ev),
+ NSPAIR(_ZN7ee20650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee20650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN7ee206503fooEv();
+static VTBL_ENTRY vtc_ee20650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN7ee206503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee20650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee20650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee20650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee20650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20650[] = {
+ {&(_ZTV7ee20650[3]), 3,5},
+ {&(_tg__ZTV6dd0650__7ee20650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee20650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee20650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20650[];
+extern VTBL_ENTRY _ZTV7ee20650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20650[];
+Class_Descriptor cd_ee20650 = { "ee20650", // class name
+ bases_ee20650, 4,
+ &(vtc_ee20650[0]), // expected_vtbl_contents
+ &(vtt_ee20650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee20650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30650 : virtual dd0650 {
+ int e;
+ virtual void foo(); // _ZN7ee306503fooEv
+ ~ee30650(); // tgen
+ ee30650(); // tgen
+};
+//SIG(1 ee30650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30650 ::foo(){vfunc_called(this, "_ZN7ee306503fooEv");}
+ee30650 ::~ee30650(){ note_dtor("ee30650", this);} // tgen
+ee30650 ::ee30650(){ note_ctor("ee30650", this);} // tgen
+
+static void Test_ee30650()
+{
+ extern Class_Descriptor cd_ee30650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee30650, buf);
+ ee30650 *dp, &lv = *(dp=new (buf) ee30650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee30650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(36,24), "ee30650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), ABISELECT(16,8), "ee30650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), ABISELECT(16,8), "ee30650");
+ check_base_class_offset(lv, (dd0650*), ABISELECT(16,8), "ee30650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30650.e");
+ test_class_info(&lv, &cd_ee30650);
+ dp->~ee30650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30650(Test_ee30650, "ee30650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee30650C1Ev();
+extern void _ZN7ee30650D1Ev();
+Name_Map name_map_ee30650[] = {
+ NSPAIR(_ZN7ee30650C1Ev),
+ NSPAIR(_ZN7ee30650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee30650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30650[];
+extern void _ZN7ee306503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee306503fooEv,_ZTv0_n20_N7ee306503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306503fooEv,_ZThn8_N7ee306503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30650[0]),
+ (VTBL_ENTRY)&_ZN7ee306503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee306503fooEv,_ZTv0_n20_N7ee306503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee30650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee30650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee30650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30650[] = {
+ {&(_ZTV7ee30650[4]), 4,12},
+ {&(_ZTV7ee30650[10]), 10,12},
+ {&(_tg__ZTV6dd0650__7ee30650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee30650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee30650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30650[];
+extern VTBL_ENTRY _ZTV7ee30650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30650[];
+static VTBL_ENTRY alt_thunk_names308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee306503fooEv,_ZTv0_n20_N7ee306503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306503fooEv,_ZThn8_N7ee306503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30650 = { "ee30650", // class name
+ bases_ee30650, 4,
+ &(vtc_ee30650[0]), // expected_vtbl_contents
+ &(vtt_ee30650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee30650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40650 : dd0650 {
+ int e;
+ virtual void bar(); // _ZN7ee406503barEv
+ ~ee40650(); // tgen
+ ee40650(); // tgen
+};
+//SIG(1 ee40650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40650 ::bar(){vfunc_called(this, "_ZN7ee406503barEv");}
+ee40650 ::~ee40650(){ note_dtor("ee40650", this);} // tgen
+ee40650 ::ee40650(){ note_ctor("ee40650", this);} // tgen
+
+static void Test_ee40650()
+{
+ extern Class_Descriptor cd_ee40650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee40650, buf);
+ ee40650 *dp, &lv = *(dp=new (buf) ee40650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee40650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(24,20), "ee40650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), 0, "ee40650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), 0, "ee40650");
+ check_base_class_offset(lv, (dd0650*), 0, "ee40650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40650.e");
+ test_class_info(&lv, &cd_ee40650);
+ dp->~ee40650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40650(Test_ee40650, "ee40650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee40650C1Ev();
+extern void _ZN7ee40650D1Ev();
+Name_Map name_map_ee40650[] = {
+ NSPAIR(_ZN7ee40650C1Ev),
+ NSPAIR(_ZN7ee40650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee40650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40650[];
+extern void _ZN7ee406503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee40650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40650[0]),
+ (VTBL_ENTRY)&_ZN7ee406503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee40650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee40650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee40650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40650[] = {
+ {&(_ZTV7ee40650[3]), 3,5},
+ {&(_tg__ZTV6dd0650__7ee40650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee40650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee40650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40650[];
+extern VTBL_ENTRY _ZTV7ee40650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40650[];
+Class_Descriptor cd_ee40650 = { "ee40650", // class name
+ bases_ee40650, 4,
+ &(vtc_ee40650[0]), // expected_vtbl_contents
+ &(vtt_ee40650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee40650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50650 : virtual dd0650 {
+ int e;
+ virtual void bar(); // _ZN7ee506503barEv
+ ~ee50650(); // tgen
+ ee50650(); // tgen
+};
+//SIG(1 ee50650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50650 ::bar(){vfunc_called(this, "_ZN7ee506503barEv");}
+ee50650 ::~ee50650(){ note_dtor("ee50650", this);} // tgen
+ee50650 ::ee50650(){ note_ctor("ee50650", this);} // tgen
+
+static void Test_ee50650()
+{
+ extern Class_Descriptor cd_ee50650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee50650, buf);
+ ee50650 *dp, &lv = *(dp=new (buf) ee50650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee50650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(36,24), "ee50650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), ABISELECT(16,8), "ee50650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), ABISELECT(16,8), "ee50650");
+ check_base_class_offset(lv, (dd0650*), ABISELECT(16,8), "ee50650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50650.e");
+ test_class_info(&lv, &cd_ee50650);
+ dp->~ee50650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50650(Test_ee50650, "ee50650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee50650C1Ev();
+extern void _ZN7ee50650D1Ev();
+Name_Map name_map_ee50650[] = {
+ NSPAIR(_ZN7ee50650C1Ev),
+ NSPAIR(_ZN7ee50650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee50650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50650[];
+extern void _ZN7ee506503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506503barEv,_ZTv0_n16_N7ee506503barEv)();
+extern void ABISELECT(_ZThn16_N7ee506503barEv,_ZThn8_N7ee506503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee50650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50650[0]),
+ (VTBL_ENTRY)&_ZN7ee506503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506503barEv,_ZTv0_n16_N7ee506503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee50650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee50650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee50650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50650[] = {
+ {&(_ZTV7ee50650[4]), 4,12},
+ {&(_ZTV7ee50650[10]), 10,12},
+ {&(_tg__ZTV6dd0650__7ee50650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee50650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee50650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50650[];
+extern VTBL_ENTRY _ZTV7ee50650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50650[];
+static VTBL_ENTRY alt_thunk_names309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506503barEv,_ZTv0_n16_N7ee506503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506503barEv,_ZThn8_N7ee506503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50650 = { "ee50650", // class name
+ bases_ee50650, 4,
+ &(vtc_ee50650[0]), // expected_vtbl_contents
+ &(vtt_ee50650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee50650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60650 : dd0650 {
+ int e;
+ virtual void foo(); // _ZN7ee606503fooEv
+ virtual void bar(); // _ZN7ee606503barEv
+ ~ee60650(); // tgen
+ ee60650(); // tgen
+};
+//SIG(1 ee60650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60650 ::foo(){vfunc_called(this, "_ZN7ee606503fooEv");}
+void ee60650 ::bar(){vfunc_called(this, "_ZN7ee606503barEv");}
+ee60650 ::~ee60650(){ note_dtor("ee60650", this);} // tgen
+ee60650 ::ee60650(){ note_ctor("ee60650", this);} // tgen
+
+static void Test_ee60650()
+{
+ extern Class_Descriptor cd_ee60650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee60650, buf);
+ ee60650 *dp, &lv = *(dp=new (buf) ee60650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee60650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(24,20), "ee60650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), 0, "ee60650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), 0, "ee60650");
+ check_base_class_offset(lv, (dd0650*), 0, "ee60650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60650.e");
+ test_class_info(&lv, &cd_ee60650);
+ dp->~ee60650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60650(Test_ee60650, "ee60650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee60650C1Ev();
+extern void _ZN7ee60650D1Ev();
+Name_Map name_map_ee60650[] = {
+ NSPAIR(_ZN7ee60650C1Ev),
+ NSPAIR(_ZN7ee60650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee60650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60650[];
+extern void _ZN7ee606503barEv();
+extern void _ZN7ee606503fooEv();
+static VTBL_ENTRY vtc_ee60650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60650[0]),
+ (VTBL_ENTRY)&_ZN7ee606503barEv,
+ (VTBL_ENTRY)&_ZN7ee606503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee60650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee60650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee60650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee60650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60650[] = {
+ {&(_ZTV7ee60650[3]), 3,5},
+ {&(_tg__ZTV6dd0650__7ee60650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee60650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee60650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60650[];
+extern VTBL_ENTRY _ZTV7ee60650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60650[];
+Class_Descriptor cd_ee60650 = { "ee60650", // class name
+ bases_ee60650, 4,
+ &(vtc_ee60650[0]), // expected_vtbl_contents
+ &(vtt_ee60650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee60650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70650 : virtual dd0650 {
+ int e;
+ virtual void foo(); // _ZN7ee706503fooEv
+ virtual void bar(); // _ZN7ee706503barEv
+ ~ee70650(); // tgen
+ ee70650(); // tgen
+};
+//SIG(1 ee70650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70650 ::foo(){vfunc_called(this, "_ZN7ee706503fooEv");}
+void ee70650 ::bar(){vfunc_called(this, "_ZN7ee706503barEv");}
+ee70650 ::~ee70650(){ note_dtor("ee70650", this);} // tgen
+ee70650 ::ee70650(){ note_ctor("ee70650", this);} // tgen
+
+static void Test_ee70650()
+{
+ extern Class_Descriptor cd_ee70650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee70650, buf);
+ ee70650 *dp, &lv = *(dp=new (buf) ee70650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee70650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd0650*), ABISELECT(36,24), "ee70650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd0650*), ABISELECT(16,8), "ee70650");
+ check_base_class_offset(lv, (cc650*)(dd0650*), ABISELECT(16,8), "ee70650");
+ check_base_class_offset(lv, (dd0650*), ABISELECT(16,8), "ee70650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70650.e");
+ test_class_info(&lv, &cd_ee70650);
+ dp->~ee70650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70650(Test_ee70650, "ee70650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee70650C1Ev();
+extern void _ZN7ee70650D1Ev();
+Name_Map name_map_ee70650[] = {
+ NSPAIR(_ZN7ee70650C1Ev),
+ NSPAIR(_ZN7ee70650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd0650;
+extern VTBL_ENTRY _ZTI6dd0650[];
+extern VTBL_ENTRY _ZTV6dd0650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0650[];
+static Base_Class bases_ee70650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70650[];
+extern void _ZN7ee706503fooEv();
+extern void _ZN7ee706503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee706503barEv,_ZTv0_n16_N7ee706503barEv)();
+extern void ABISELECT(_ZThn16_N7ee706503barEv,_ZThn8_N7ee706503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee706503fooEv,_ZTv0_n20_N7ee706503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706503fooEv,_ZThn8_N7ee706503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70650[0]),
+ (VTBL_ENTRY)&_ZN7ee706503fooEv,
+ (VTBL_ENTRY)&_ZN7ee706503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706503barEv,_ZTv0_n16_N7ee706503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee706503fooEv,_ZTv0_n20_N7ee706503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0650__7ee70650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd0650__7ee70650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd0650__7ee70650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70650[] = {
+ {&(_ZTV7ee70650[4]), 4,13},
+ {&(_ZTV7ee70650[11]), 11,13},
+ {&(_tg__ZTV6dd0650__7ee70650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd0650__7ee70650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd0650__7ee70650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70650[];
+extern VTBL_ENTRY _ZTV7ee70650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70650[];
+static VTBL_ENTRY alt_thunk_names310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee706503fooEv,_ZTv0_n20_N7ee706503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706503fooEv,_ZThn8_N7ee706503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706503barEv,_ZTv0_n16_N7ee706503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706503barEv,_ZThn8_N7ee706503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70650 = { "ee70650", // class name
+ bases_ee70650, 4,
+ &(vtc_ee70650[0]), // expected_vtbl_contents
+ &(vtt_ee70650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee70650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1650 : virtual cc650 {
+ int d;
+ ~dd1650(); // tgen
+ dd1650(); // tgen
+};
+//SIG(-1 dd1650) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1650 ::~dd1650(){ note_dtor("dd1650", this);} // tgen
+dd1650 ::dd1650(){ note_ctor("dd1650", this);} // tgen
+
+static void Test_dd1650()
+{
+ extern Class_Descriptor cd_dd1650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd1650, buf);
+ dd1650 *dp, &lv = *(dp=new (buf) dd1650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd1650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,20), "dd1650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,8), "dd1650");
+ check_base_class_offset(lv, (cc650*), ABISELECT(16,8), "dd1650");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1650.d");
+ test_class_info(&lv, &cd_dd1650);
+ dp->~dd1650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1650(Test_dd1650, "dd1650", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd1650C1Ev();
+extern void _ZN6dd1650D1Ev();
+Name_Map name_map_dd1650[] = {
+ NSPAIR(_ZN6dd1650C1Ev),
+ NSPAIR(_ZN6dd1650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd1650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_dd1650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd1650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1650[] = {
+ {&(_ZTV6dd1650[4]), 4,11},
+ {&(_ZTV6dd1650[9]), 9,11},
+ {&(_tg__ZTV5cc650__6dd1650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd1650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+Class_Descriptor cd_dd1650 = { "dd1650", // class name
+ bases_dd1650, 3,
+ &(vtc_dd1650[0]), // expected_vtbl_contents
+ &(vtt_dd1650[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd1650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1650),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01650 : dd1650 {
+ int e;
+ ~ee01650(); // tgen
+ ee01650(); // tgen
+};
+//SIG(1 ee01650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01650 ::~ee01650(){ note_dtor("ee01650", this);} // tgen
+ee01650 ::ee01650(){ note_ctor("ee01650", this);} // tgen
+
+static void Test_ee01650()
+{
+ extern Class_Descriptor cd_ee01650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee01650, buf);
+ ee01650 *dp, &lv = *(dp=new (buf) ee01650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee01650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee01650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee01650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(16,12), "ee01650");
+ check_base_class_offset(lv, (dd1650*), 0, "ee01650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01650.e");
+ test_class_info(&lv, &cd_ee01650);
+ dp->~ee01650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01650(Test_ee01650, "ee01650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee01650C1Ev();
+extern void _ZN7ee01650D1Ev();
+Name_Map name_map_ee01650[] = {
+ NSPAIR(_ZN7ee01650C1Ev),
+ NSPAIR(_ZN7ee01650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee01650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee01650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01650[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee01650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee01650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee01650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee01650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01650[] = {
+ {&(_ZTV7ee01650[4]), 4,11},
+ {&(_tg__ZTV6dd1650__7ee01650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee01650[5]), 5,7},
+ {&(_ZTV7ee01650[9]), 9,11},
+ {&(_tg__ZTV5cc650__7ee01650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee01650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01650[];
+extern VTBL_ENTRY _ZTV7ee01650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01650[];
+Class_Descriptor cd_ee01650 = { "ee01650", // class name
+ bases_ee01650, 4,
+ &(vtc_ee01650[0]), // expected_vtbl_contents
+ &(vtt_ee01650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee01650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11650 : virtual dd1650 {
+ int e;
+ ~ee11650(); // tgen
+ ee11650(); // tgen
+};
+//SIG(1 ee11650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11650 ::~ee11650(){ note_dtor("ee11650", this);} // tgen
+ee11650 ::ee11650(){ note_ctor("ee11650", this);} // tgen
+
+static void Test_ee11650()
+{
+ extern Class_Descriptor cd_ee11650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee11650, buf);
+ ee11650 *dp, &lv = *(dp=new (buf) ee11650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee11650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee11650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee11650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(32,16), "ee11650");
+ check_base_class_offset(lv, (dd1650*), ABISELECT(16,8), "ee11650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11650.e");
+ test_class_info(&lv, &cd_ee11650);
+ dp->~ee11650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11650(Test_ee11650, "ee11650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee11650C1Ev();
+extern void _ZN7ee11650D1Ev();
+Name_Map name_map_ee11650[] = {
+ NSPAIR(_ZN7ee11650C1Ev),
+ NSPAIR(_ZN7ee11650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee11650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI7ee11650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee11650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11650[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11650[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee11650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee11650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee11650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee11650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11650[] = {
+ {&(_ZTV7ee11650[5]), 5,16},
+ {&(_ZTV7ee11650[9]), 9,16},
+ {&(_ZTV7ee11650[14]), 14,16},
+ {&(_tg__ZTV6dd1650__7ee11650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee11650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee11650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee11650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11650[];
+extern VTBL_ENTRY _ZTV7ee11650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11650[];
+Class_Descriptor cd_ee11650 = { "ee11650", // class name
+ bases_ee11650, 4,
+ &(vtc_ee11650[0]), // expected_vtbl_contents
+ &(vtt_ee11650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee11650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11650),16, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21650 : dd1650 {
+ int e;
+ virtual void foo(); // _ZN7ee216503fooEv
+ ~ee21650(); // tgen
+ ee21650(); // tgen
+};
+//SIG(1 ee21650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21650 ::foo(){vfunc_called(this, "_ZN7ee216503fooEv");}
+ee21650 ::~ee21650(){ note_dtor("ee21650", this);} // tgen
+ee21650 ::ee21650(){ note_ctor("ee21650", this);} // tgen
+
+static void Test_ee21650()
+{
+ extern Class_Descriptor cd_ee21650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee21650, buf);
+ ee21650 *dp, &lv = *(dp=new (buf) ee21650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee21650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee21650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee21650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(16,12), "ee21650");
+ check_base_class_offset(lv, (dd1650*), 0, "ee21650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21650.e");
+ test_class_info(&lv, &cd_ee21650);
+ dp->~ee21650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21650(Test_ee21650, "ee21650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee21650C1Ev();
+extern void _ZN7ee21650D1Ev();
+Name_Map name_map_ee21650[] = {
+ NSPAIR(_ZN7ee21650C1Ev),
+ NSPAIR(_ZN7ee21650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee21650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21650[];
+extern void _ZN7ee216503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee216503fooEv,_ZTv0_n20_N7ee216503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216503fooEv,_ZThn12_N7ee216503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21650[0]),
+ (VTBL_ENTRY)&_ZN7ee216503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee216503fooEv,_ZTv0_n20_N7ee216503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee21650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee21650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee21650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee21650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21650[] = {
+ {&(_ZTV7ee21650[4]), 4,12},
+ {&(_tg__ZTV6dd1650__7ee21650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee21650[5]), 5,7},
+ {&(_ZTV7ee21650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee21650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee21650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21650[];
+extern VTBL_ENTRY _ZTV7ee21650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21650[];
+static VTBL_ENTRY alt_thunk_names311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee216503fooEv,_ZTv0_n20_N7ee216503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216503fooEv,_ZThn12_N7ee216503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21650 = { "ee21650", // class name
+ bases_ee21650, 4,
+ &(vtc_ee21650[0]), // expected_vtbl_contents
+ &(vtt_ee21650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee21650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31650 : virtual dd1650 {
+ int e;
+ virtual void foo(); // _ZN7ee316503fooEv
+ ~ee31650(); // tgen
+ ee31650(); // tgen
+};
+//SIG(1 ee31650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31650 ::foo(){vfunc_called(this, "_ZN7ee316503fooEv");}
+ee31650 ::~ee31650(){ note_dtor("ee31650", this);} // tgen
+ee31650 ::ee31650(){ note_ctor("ee31650", this);} // tgen
+
+static void Test_ee31650()
+{
+ extern Class_Descriptor cd_ee31650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee31650, buf);
+ ee31650 *dp, &lv = *(dp=new (buf) ee31650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee31650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee31650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee31650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(32,16), "ee31650");
+ check_base_class_offset(lv, (dd1650*), ABISELECT(16,8), "ee31650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31650.e");
+ test_class_info(&lv, &cd_ee31650);
+ dp->~ee31650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31650(Test_ee31650, "ee31650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee31650C1Ev();
+extern void _ZN7ee31650D1Ev();
+Name_Map name_map_ee31650[] = {
+ NSPAIR(_ZN7ee31650C1Ev),
+ NSPAIR(_ZN7ee31650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee31650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31650[];
+extern void _ZN7ee316503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee316503fooEv,_ZTv0_n20_N7ee316503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316503fooEv,_ZThn16_N7ee316503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31650[0]),
+ (VTBL_ENTRY)&_ZN7ee316503fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31650[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee316503fooEv,_ZTv0_n20_N7ee316503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee31650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee31650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee31650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee31650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31650[] = {
+ {&(_ZTV7ee31650[5]), 5,17},
+ {&(_ZTV7ee31650[10]), 10,17},
+ {&(_ZTV7ee31650[15]), 15,17},
+ {&(_tg__ZTV6dd1650__7ee31650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee31650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee31650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee31650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31650[];
+extern VTBL_ENTRY _ZTV7ee31650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31650[];
+static VTBL_ENTRY alt_thunk_names312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee316503fooEv,_ZTv0_n20_N7ee316503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316503fooEv,_ZThn16_N7ee316503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31650 = { "ee31650", // class name
+ bases_ee31650, 4,
+ &(vtc_ee31650[0]), // expected_vtbl_contents
+ &(vtt_ee31650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee31650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31650),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41650 : dd1650 {
+ int e;
+ virtual void bar(); // _ZN7ee416503barEv
+ ~ee41650(); // tgen
+ ee41650(); // tgen
+};
+//SIG(1 ee41650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41650 ::bar(){vfunc_called(this, "_ZN7ee416503barEv");}
+ee41650 ::~ee41650(){ note_dtor("ee41650", this);} // tgen
+ee41650 ::ee41650(){ note_ctor("ee41650", this);} // tgen
+
+static void Test_ee41650()
+{
+ extern Class_Descriptor cd_ee41650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee41650, buf);
+ ee41650 *dp, &lv = *(dp=new (buf) ee41650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee41650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee41650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee41650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(16,12), "ee41650");
+ check_base_class_offset(lv, (dd1650*), 0, "ee41650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41650.e");
+ test_class_info(&lv, &cd_ee41650);
+ dp->~ee41650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41650(Test_ee41650, "ee41650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee41650C1Ev();
+extern void _ZN7ee41650D1Ev();
+Name_Map name_map_ee41650[] = {
+ NSPAIR(_ZN7ee41650C1Ev),
+ NSPAIR(_ZN7ee41650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee41650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41650[];
+extern void _ZN7ee416503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416503barEv,_ZTv0_n16_N7ee416503barEv)();
+extern void ABISELECT(_ZThn16_N7ee416503barEv,_ZThn12_N7ee416503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee41650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41650[0]),
+ (VTBL_ENTRY)&_ZN7ee416503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416503barEv,_ZTv0_n16_N7ee416503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee41650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee41650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee41650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee41650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41650[] = {
+ {&(_ZTV7ee41650[4]), 4,12},
+ {&(_tg__ZTV6dd1650__7ee41650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee41650[5]), 5,7},
+ {&(_ZTV7ee41650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee41650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee41650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41650[];
+extern VTBL_ENTRY _ZTV7ee41650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41650[];
+static VTBL_ENTRY alt_thunk_names313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416503barEv,_ZTv0_n16_N7ee416503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416503barEv,_ZThn12_N7ee416503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41650 = { "ee41650", // class name
+ bases_ee41650, 4,
+ &(vtc_ee41650[0]), // expected_vtbl_contents
+ &(vtt_ee41650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee41650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51650 : virtual dd1650 {
+ int e;
+ virtual void bar(); // _ZN7ee516503barEv
+ ~ee51650(); // tgen
+ ee51650(); // tgen
+};
+//SIG(1 ee51650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51650 ::bar(){vfunc_called(this, "_ZN7ee516503barEv");}
+ee51650 ::~ee51650(){ note_dtor("ee51650", this);} // tgen
+ee51650 ::ee51650(){ note_ctor("ee51650", this);} // tgen
+
+static void Test_ee51650()
+{
+ extern Class_Descriptor cd_ee51650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee51650, buf);
+ ee51650 *dp, &lv = *(dp=new (buf) ee51650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee51650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee51650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee51650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(32,16), "ee51650");
+ check_base_class_offset(lv, (dd1650*), ABISELECT(16,8), "ee51650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51650.e");
+ test_class_info(&lv, &cd_ee51650);
+ dp->~ee51650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51650(Test_ee51650, "ee51650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee51650C1Ev();
+extern void _ZN7ee51650D1Ev();
+Name_Map name_map_ee51650[] = {
+ NSPAIR(_ZN7ee51650C1Ev),
+ NSPAIR(_ZN7ee51650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee51650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51650[];
+extern void _ZN7ee516503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516503barEv,_ZTv0_n16_N7ee516503barEv)();
+extern void ABISELECT(_ZThn32_N7ee516503barEv,_ZThn16_N7ee516503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee51650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51650[0]),
+ (VTBL_ENTRY)&_ZN7ee516503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51650[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516503barEv,_ZTv0_n16_N7ee516503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee51650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee51650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee51650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee51650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51650[] = {
+ {&(_ZTV7ee51650[5]), 5,17},
+ {&(_ZTV7ee51650[10]), 10,17},
+ {&(_ZTV7ee51650[15]), 15,17},
+ {&(_tg__ZTV6dd1650__7ee51650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee51650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee51650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee51650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51650[];
+extern VTBL_ENTRY _ZTV7ee51650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51650[];
+static VTBL_ENTRY alt_thunk_names314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516503barEv,_ZTv0_n16_N7ee516503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516503barEv,_ZThn16_N7ee516503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51650 = { "ee51650", // class name
+ bases_ee51650, 4,
+ &(vtc_ee51650[0]), // expected_vtbl_contents
+ &(vtt_ee51650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee51650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51650),17, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61650 : dd1650 {
+ int e;
+ virtual void foo(); // _ZN7ee616503fooEv
+ virtual void bar(); // _ZN7ee616503barEv
+ ~ee61650(); // tgen
+ ee61650(); // tgen
+};
+//SIG(1 ee61650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61650 ::foo(){vfunc_called(this, "_ZN7ee616503fooEv");}
+void ee61650 ::bar(){vfunc_called(this, "_ZN7ee616503barEv");}
+ee61650 ::~ee61650(){ note_dtor("ee61650", this);} // tgen
+ee61650 ::ee61650(){ note_ctor("ee61650", this);} // tgen
+
+static void Test_ee61650()
+{
+ extern Class_Descriptor cd_ee61650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee61650, buf);
+ ee61650 *dp, &lv = *(dp=new (buf) ee61650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee61650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee61650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee61650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(16,12), "ee61650");
+ check_base_class_offset(lv, (dd1650*), 0, "ee61650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61650.e");
+ test_class_info(&lv, &cd_ee61650);
+ dp->~ee61650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61650(Test_ee61650, "ee61650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee61650C1Ev();
+extern void _ZN7ee61650D1Ev();
+Name_Map name_map_ee61650[] = {
+ NSPAIR(_ZN7ee61650C1Ev),
+ NSPAIR(_ZN7ee61650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee61650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61650[];
+extern void _ZN7ee616503fooEv();
+extern void _ZN7ee616503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee616503barEv,_ZTv0_n16_N7ee616503barEv)();
+extern void ABISELECT(_ZThn16_N7ee616503barEv,_ZThn12_N7ee616503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee616503fooEv,_ZTv0_n20_N7ee616503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616503fooEv,_ZThn12_N7ee616503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61650[0]),
+ (VTBL_ENTRY)&_ZN7ee616503fooEv,
+ (VTBL_ENTRY)&_ZN7ee616503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616503barEv,_ZTv0_n16_N7ee616503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee616503fooEv,_ZTv0_n20_N7ee616503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee61650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee61650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee61650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee61650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61650[] = {
+ {&(_ZTV7ee61650[4]), 4,13},
+ {&(_tg__ZTV6dd1650__7ee61650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee61650[5]), 5,7},
+ {&(_ZTV7ee61650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee61650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee61650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61650[];
+extern VTBL_ENTRY _ZTV7ee61650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61650[];
+static VTBL_ENTRY alt_thunk_names315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee616503fooEv,_ZTv0_n20_N7ee616503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616503fooEv,_ZThn12_N7ee616503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616503barEv,_ZTv0_n16_N7ee616503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616503barEv,_ZThn12_N7ee616503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61650 = { "ee61650", // class name
+ bases_ee61650, 4,
+ &(vtc_ee61650[0]), // expected_vtbl_contents
+ &(vtt_ee61650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee61650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71650 : virtual dd1650 {
+ int e;
+ virtual void foo(); // _ZN7ee716503fooEv
+ virtual void bar(); // _ZN7ee716503barEv
+ ~ee71650(); // tgen
+ ee71650(); // tgen
+};
+//SIG(1 ee71650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71650 ::foo(){vfunc_called(this, "_ZN7ee716503fooEv");}
+void ee71650 ::bar(){vfunc_called(this, "_ZN7ee716503barEv");}
+ee71650 ::~ee71650(){ note_dtor("ee71650", this);} // tgen
+ee71650 ::ee71650(){ note_ctor("ee71650", this);} // tgen
+
+static void Test_ee71650()
+{
+ extern Class_Descriptor cd_ee71650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee71650, buf);
+ ee71650 *dp, &lv = *(dp=new (buf) ee71650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee71650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee71650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee71650");
+ check_base_class_offset(lv, (cc650*)(dd1650*), ABISELECT(32,16), "ee71650");
+ check_base_class_offset(lv, (dd1650*), ABISELECT(16,8), "ee71650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71650.e");
+ test_class_info(&lv, &cd_ee71650);
+ dp->~ee71650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71650(Test_ee71650, "ee71650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee71650C1Ev();
+extern void _ZN7ee71650D1Ev();
+Name_Map name_map_ee71650[] = {
+ NSPAIR(_ZN7ee71650C1Ev),
+ NSPAIR(_ZN7ee71650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd1650;
+extern VTBL_ENTRY _ZTI6dd1650[];
+extern VTBL_ENTRY _ZTV6dd1650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1650[];
+static Base_Class bases_ee71650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1650, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71650[];
+extern void _ZN7ee716503fooEv();
+extern void _ZN7ee716503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee716503barEv,_ZTv0_n16_N7ee716503barEv)();
+extern void ABISELECT(_ZThn32_N7ee716503barEv,_ZThn16_N7ee716503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee716503fooEv,_ZTv0_n20_N7ee716503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716503fooEv,_ZThn16_N7ee716503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71650[0]),
+ (VTBL_ENTRY)&_ZN7ee716503fooEv,
+ (VTBL_ENTRY)&_ZN7ee716503barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71650[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716503barEv,_ZTv0_n16_N7ee716503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee716503fooEv,_ZTv0_n20_N7ee716503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71650[];
+static VTBL_ENTRY _tg__ZTV6dd1650__7ee71650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd1650__7ee71650[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee71650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee71650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71650[] = {
+ {&(_ZTV7ee71650[5]), 5,18},
+ {&(_ZTV7ee71650[11]), 11,18},
+ {&(_ZTV7ee71650[16]), 16,18},
+ {&(_tg__ZTV6dd1650__7ee71650[4]), 4,4},
+ {&(_tg__ZTV5cc650__6dd1650__7ee71650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee71650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee71650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71650[];
+extern VTBL_ENTRY _ZTV7ee71650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71650[];
+static VTBL_ENTRY alt_thunk_names316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee716503fooEv,_ZTv0_n20_N7ee716503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716503fooEv,_ZThn16_N7ee716503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716503barEv,_ZTv0_n16_N7ee716503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716503barEv,_ZThn16_N7ee716503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71650 = { "ee71650", // class name
+ bases_ee71650, 4,
+ &(vtc_ee71650[0]), // expected_vtbl_contents
+ &(vtt_ee71650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee71650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71650),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2650 : cc650 {
+ int d;
+ virtual void foo(); // _ZN6dd26503fooEv
+ ~dd2650(); // tgen
+ dd2650(); // tgen
+};
+//SIG(-1 dd2650) C1{ BC2{ BC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2650 ::foo(){vfunc_called(this, "_ZN6dd26503fooEv");}
+dd2650 ::~dd2650(){ note_dtor("dd2650", this);} // tgen
+dd2650 ::dd2650(){ note_ctor("dd2650", this);} // tgen
+
+static void Test_dd2650()
+{
+ extern Class_Descriptor cd_dd2650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd2650, buf);
+ dd2650 *dp, &lv = *(dp=new (buf) dd2650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd2650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(20,16), "dd2650");
+ check_base_class_offset(lv, (bb50*)(cc650*), 0, "dd2650");
+ check_base_class_offset(lv, (cc650*), 0, "dd2650");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2650.d");
+ test_class_info(&lv, &cd_dd2650);
+ dp->~dd2650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2650(Test_dd2650, "dd2650", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd2650C1Ev();
+extern void _ZN6dd2650D1Ev();
+Name_Map name_map_dd2650[] = {
+ NSPAIR(_ZN6dd2650C1Ev),
+ NSPAIR(_ZN6dd2650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd2650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY vtc_dd2650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd2650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd2650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2650[] = {
+ {&(_ZTV6dd2650[3]), 3,5},
+ {&(_tg__ZTV5cc650__6dd2650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd2650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+Class_Descriptor cd_dd2650 = { "dd2650", // class name
+ bases_dd2650, 3,
+ &(vtc_dd2650[0]), // expected_vtbl_contents
+ &(vtt_dd2650[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd2650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2650),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02650 : dd2650 {
+ int e;
+ ~ee02650(); // tgen
+ ee02650(); // tgen
+};
+//SIG(1 ee02650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02650 ::~ee02650(){ note_dtor("ee02650", this);} // tgen
+ee02650 ::ee02650(){ note_ctor("ee02650", this);} // tgen
+
+static void Test_ee02650()
+{
+ extern Class_Descriptor cd_ee02650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee02650, buf);
+ ee02650 *dp, &lv = *(dp=new (buf) ee02650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee02650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(24,20), "ee02650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), 0, "ee02650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), 0, "ee02650");
+ check_base_class_offset(lv, (dd2650*), 0, "ee02650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02650.e");
+ test_class_info(&lv, &cd_ee02650);
+ dp->~ee02650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02650(Test_ee02650, "ee02650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee02650C1Ev();
+extern void _ZN7ee02650D1Ev();
+Name_Map name_map_ee02650[] = {
+ NSPAIR(_ZN7ee02650C1Ev),
+ NSPAIR(_ZN7ee02650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee02650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY vtc_ee02650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee02650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee02650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee02650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee02650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02650[] = {
+ {&(_ZTV7ee02650[3]), 3,5},
+ {&(_tg__ZTV6dd2650__7ee02650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee02650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee02650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02650[];
+extern VTBL_ENTRY _ZTV7ee02650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02650[];
+Class_Descriptor cd_ee02650 = { "ee02650", // class name
+ bases_ee02650, 4,
+ &(vtc_ee02650[0]), // expected_vtbl_contents
+ &(vtt_ee02650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee02650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12650 : virtual dd2650 {
+ int e;
+ ~ee12650(); // tgen
+ ee12650(); // tgen
+};
+//SIG(1 ee12650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12650 ::~ee12650(){ note_dtor("ee12650", this);} // tgen
+ee12650 ::ee12650(){ note_ctor("ee12650", this);} // tgen
+
+static void Test_ee12650()
+{
+ extern Class_Descriptor cd_ee12650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee12650, buf);
+ ee12650 *dp, &lv = *(dp=new (buf) ee12650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee12650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(36,24), "ee12650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), ABISELECT(16,8), "ee12650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), ABISELECT(16,8), "ee12650");
+ check_base_class_offset(lv, (dd2650*), ABISELECT(16,8), "ee12650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12650.e");
+ test_class_info(&lv, &cd_ee12650);
+ dp->~ee12650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12650(Test_ee12650, "ee12650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee12650C1Ev();
+extern void _ZN7ee12650D1Ev();
+Name_Map name_map_ee12650[] = {
+ NSPAIR(_ZN7ee12650C1Ev),
+ NSPAIR(_ZN7ee12650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee12650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY vtc_ee12650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12650[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee12650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee12650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee12650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee12650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12650[] = {
+ {&(_ZTV7ee12650[4]), 4,11},
+ {&(_ZTV7ee12650[9]), 9,11},
+ {&(_tg__ZTV6dd2650__7ee12650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee12650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee12650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12650[];
+extern VTBL_ENTRY _ZTV7ee12650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12650[];
+Class_Descriptor cd_ee12650 = { "ee12650", // class name
+ bases_ee12650, 4,
+ &(vtc_ee12650[0]), // expected_vtbl_contents
+ &(vtt_ee12650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee12650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22650 : dd2650 {
+ int e;
+ virtual void foo(); // _ZN7ee226503fooEv
+ ~ee22650(); // tgen
+ ee22650(); // tgen
+};
+//SIG(1 ee22650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22650 ::foo(){vfunc_called(this, "_ZN7ee226503fooEv");}
+ee22650 ::~ee22650(){ note_dtor("ee22650", this);} // tgen
+ee22650 ::ee22650(){ note_ctor("ee22650", this);} // tgen
+
+static void Test_ee22650()
+{
+ extern Class_Descriptor cd_ee22650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee22650, buf);
+ ee22650 *dp, &lv = *(dp=new (buf) ee22650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee22650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(24,20), "ee22650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), 0, "ee22650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), 0, "ee22650");
+ check_base_class_offset(lv, (dd2650*), 0, "ee22650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22650.e");
+ test_class_info(&lv, &cd_ee22650);
+ dp->~ee22650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22650(Test_ee22650, "ee22650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee22650C1Ev();
+extern void _ZN7ee22650D1Ev();
+Name_Map name_map_ee22650[] = {
+ NSPAIR(_ZN7ee22650C1Ev),
+ NSPAIR(_ZN7ee22650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee22650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN7ee226503fooEv();
+static VTBL_ENTRY vtc_ee22650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN7ee226503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee22650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee22650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee22650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee22650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22650[] = {
+ {&(_ZTV7ee22650[3]), 3,5},
+ {&(_tg__ZTV6dd2650__7ee22650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee22650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee22650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22650[];
+extern VTBL_ENTRY _ZTV7ee22650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22650[];
+Class_Descriptor cd_ee22650 = { "ee22650", // class name
+ bases_ee22650, 4,
+ &(vtc_ee22650[0]), // expected_vtbl_contents
+ &(vtt_ee22650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee22650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32650 : virtual dd2650 {
+ int e;
+ virtual void foo(); // _ZN7ee326503fooEv
+ ~ee32650(); // tgen
+ ee32650(); // tgen
+};
+//SIG(1 ee32650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32650 ::foo(){vfunc_called(this, "_ZN7ee326503fooEv");}
+ee32650 ::~ee32650(){ note_dtor("ee32650", this);} // tgen
+ee32650 ::ee32650(){ note_ctor("ee32650", this);} // tgen
+
+static void Test_ee32650()
+{
+ extern Class_Descriptor cd_ee32650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee32650, buf);
+ ee32650 *dp, &lv = *(dp=new (buf) ee32650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee32650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(36,24), "ee32650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), ABISELECT(16,8), "ee32650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), ABISELECT(16,8), "ee32650");
+ check_base_class_offset(lv, (dd2650*), ABISELECT(16,8), "ee32650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32650.e");
+ test_class_info(&lv, &cd_ee32650);
+ dp->~ee32650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32650(Test_ee32650, "ee32650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee32650C1Ev();
+extern void _ZN7ee32650D1Ev();
+Name_Map name_map_ee32650[] = {
+ NSPAIR(_ZN7ee32650C1Ev),
+ NSPAIR(_ZN7ee32650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee32650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32650[];
+extern void _ZN7ee326503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee326503fooEv,_ZTv0_n20_N7ee326503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326503fooEv,_ZThn8_N7ee326503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32650[0]),
+ (VTBL_ENTRY)&_ZN7ee326503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee326503fooEv,_ZTv0_n20_N7ee326503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee32650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee32650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee32650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32650[] = {
+ {&(_ZTV7ee32650[4]), 4,12},
+ {&(_ZTV7ee32650[10]), 10,12},
+ {&(_tg__ZTV6dd2650__7ee32650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee32650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee32650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32650[];
+extern VTBL_ENTRY _ZTV7ee32650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32650[];
+static VTBL_ENTRY alt_thunk_names317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee326503fooEv,_ZTv0_n20_N7ee326503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326503fooEv,_ZThn8_N7ee326503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32650 = { "ee32650", // class name
+ bases_ee32650, 4,
+ &(vtc_ee32650[0]), // expected_vtbl_contents
+ &(vtt_ee32650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee32650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42650 : dd2650 {
+ int e;
+ virtual void bar(); // _ZN7ee426503barEv
+ ~ee42650(); // tgen
+ ee42650(); // tgen
+};
+//SIG(1 ee42650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42650 ::bar(){vfunc_called(this, "_ZN7ee426503barEv");}
+ee42650 ::~ee42650(){ note_dtor("ee42650", this);} // tgen
+ee42650 ::ee42650(){ note_ctor("ee42650", this);} // tgen
+
+static void Test_ee42650()
+{
+ extern Class_Descriptor cd_ee42650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee42650, buf);
+ ee42650 *dp, &lv = *(dp=new (buf) ee42650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee42650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(24,20), "ee42650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), 0, "ee42650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), 0, "ee42650");
+ check_base_class_offset(lv, (dd2650*), 0, "ee42650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42650.e");
+ test_class_info(&lv, &cd_ee42650);
+ dp->~ee42650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42650(Test_ee42650, "ee42650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee42650C1Ev();
+extern void _ZN7ee42650D1Ev();
+Name_Map name_map_ee42650[] = {
+ NSPAIR(_ZN7ee42650C1Ev),
+ NSPAIR(_ZN7ee42650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee42650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42650[];
+extern void _ZN7ee426503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY vtc_ee42650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42650[0]),
+ (VTBL_ENTRY)&_ZN7ee426503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee42650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee42650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee42650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee42650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42650[] = {
+ {&(_ZTV7ee42650[3]), 3,5},
+ {&(_tg__ZTV6dd2650__7ee42650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee42650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee42650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42650[];
+extern VTBL_ENTRY _ZTV7ee42650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42650[];
+Class_Descriptor cd_ee42650 = { "ee42650", // class name
+ bases_ee42650, 4,
+ &(vtc_ee42650[0]), // expected_vtbl_contents
+ &(vtt_ee42650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee42650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52650 : virtual dd2650 {
+ int e;
+ virtual void bar(); // _ZN7ee526503barEv
+ ~ee52650(); // tgen
+ ee52650(); // tgen
+};
+//SIG(1 ee52650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52650 ::bar(){vfunc_called(this, "_ZN7ee526503barEv");}
+ee52650 ::~ee52650(){ note_dtor("ee52650", this);} // tgen
+ee52650 ::ee52650(){ note_ctor("ee52650", this);} // tgen
+
+static void Test_ee52650()
+{
+ extern Class_Descriptor cd_ee52650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee52650, buf);
+ ee52650 *dp, &lv = *(dp=new (buf) ee52650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee52650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(36,24), "ee52650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), ABISELECT(16,8), "ee52650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), ABISELECT(16,8), "ee52650");
+ check_base_class_offset(lv, (dd2650*), ABISELECT(16,8), "ee52650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52650.e");
+ test_class_info(&lv, &cd_ee52650);
+ dp->~ee52650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52650(Test_ee52650, "ee52650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee52650C1Ev();
+extern void _ZN7ee52650D1Ev();
+Name_Map name_map_ee52650[] = {
+ NSPAIR(_ZN7ee52650C1Ev),
+ NSPAIR(_ZN7ee52650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee52650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52650[];
+extern void _ZN7ee526503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526503barEv,_ZTv0_n16_N7ee526503barEv)();
+extern void ABISELECT(_ZThn16_N7ee526503barEv,_ZThn8_N7ee526503barEv)() __attribute__((weak));
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY vtc_ee52650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52650[0]),
+ (VTBL_ENTRY)&_ZN7ee526503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526503barEv,_ZTv0_n16_N7ee526503barEv),
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee52650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee52650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee52650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee52650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52650[] = {
+ {&(_ZTV7ee52650[4]), 4,12},
+ {&(_ZTV7ee52650[10]), 10,12},
+ {&(_tg__ZTV6dd2650__7ee52650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee52650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee52650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52650[];
+extern VTBL_ENTRY _ZTV7ee52650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52650[];
+static VTBL_ENTRY alt_thunk_names318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526503barEv,_ZTv0_n16_N7ee526503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526503barEv,_ZThn8_N7ee526503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52650 = { "ee52650", // class name
+ bases_ee52650, 4,
+ &(vtc_ee52650[0]), // expected_vtbl_contents
+ &(vtt_ee52650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee52650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62650 : dd2650 {
+ int e;
+ virtual void foo(); // _ZN7ee626503fooEv
+ virtual void bar(); // _ZN7ee626503barEv
+ ~ee62650(); // tgen
+ ee62650(); // tgen
+};
+//SIG(1 ee62650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62650 ::foo(){vfunc_called(this, "_ZN7ee626503fooEv");}
+void ee62650 ::bar(){vfunc_called(this, "_ZN7ee626503barEv");}
+ee62650 ::~ee62650(){ note_dtor("ee62650", this);} // tgen
+ee62650 ::ee62650(){ note_ctor("ee62650", this);} // tgen
+
+static void Test_ee62650()
+{
+ extern Class_Descriptor cd_ee62650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee62650, buf);
+ ee62650 *dp, &lv = *(dp=new (buf) ee62650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee62650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(24,20), "ee62650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), 0, "ee62650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), 0, "ee62650");
+ check_base_class_offset(lv, (dd2650*), 0, "ee62650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62650.e");
+ test_class_info(&lv, &cd_ee62650);
+ dp->~ee62650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62650(Test_ee62650, "ee62650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee62650C1Ev();
+extern void _ZN7ee62650D1Ev();
+Name_Map name_map_ee62650[] = {
+ NSPAIR(_ZN7ee62650C1Ev),
+ NSPAIR(_ZN7ee62650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee62650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62650[];
+extern void _ZN7ee626503barEv();
+extern void _ZN7ee626503fooEv();
+static VTBL_ENTRY vtc_ee62650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62650[0]),
+ (VTBL_ENTRY)&_ZN7ee626503barEv,
+ (VTBL_ENTRY)&_ZN7ee626503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee62650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee62650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee62650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee62650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62650[] = {
+ {&(_ZTV7ee62650[3]), 3,5},
+ {&(_tg__ZTV6dd2650__7ee62650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee62650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee62650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62650[];
+extern VTBL_ENTRY _ZTV7ee62650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62650[];
+Class_Descriptor cd_ee62650 = { "ee62650", // class name
+ bases_ee62650, 4,
+ &(vtc_ee62650[0]), // expected_vtbl_contents
+ &(vtt_ee62650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee62650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72650 : virtual dd2650 {
+ int e;
+ virtual void foo(); // _ZN7ee726503fooEv
+ virtual void bar(); // _ZN7ee726503barEv
+ ~ee72650(); // tgen
+ ee72650(); // tgen
+};
+//SIG(1 ee72650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72650 ::foo(){vfunc_called(this, "_ZN7ee726503fooEv");}
+void ee72650 ::bar(){vfunc_called(this, "_ZN7ee726503barEv");}
+ee72650 ::~ee72650(){ note_dtor("ee72650", this);} // tgen
+ee72650 ::ee72650(){ note_ctor("ee72650", this);} // tgen
+
+static void Test_ee72650()
+{
+ extern Class_Descriptor cd_ee72650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee72650, buf);
+ ee72650 *dp, &lv = *(dp=new (buf) ee72650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee72650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd2650*), ABISELECT(36,24), "ee72650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd2650*), ABISELECT(16,8), "ee72650");
+ check_base_class_offset(lv, (cc650*)(dd2650*), ABISELECT(16,8), "ee72650");
+ check_base_class_offset(lv, (dd2650*), ABISELECT(16,8), "ee72650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72650.e");
+ test_class_info(&lv, &cd_ee72650);
+ dp->~ee72650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72650(Test_ee72650, "ee72650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee72650C1Ev();
+extern void _ZN7ee72650D1Ev();
+Name_Map name_map_ee72650[] = {
+ NSPAIR(_ZN7ee72650C1Ev),
+ NSPAIR(_ZN7ee72650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd2650;
+extern VTBL_ENTRY _ZTI6dd2650[];
+extern VTBL_ENTRY _ZTV6dd2650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2650[];
+static Base_Class bases_ee72650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72650[];
+extern void _ZN7ee726503fooEv();
+extern void _ZN7ee726503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee726503barEv,_ZTv0_n16_N7ee726503barEv)();
+extern void ABISELECT(_ZThn16_N7ee726503barEv,_ZThn8_N7ee726503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee726503fooEv,_ZTv0_n20_N7ee726503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726503fooEv,_ZThn8_N7ee726503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72650[0]),
+ (VTBL_ENTRY)&_ZN7ee726503fooEv,
+ (VTBL_ENTRY)&_ZN7ee726503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726503barEv,_ZTv0_n16_N7ee726503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee726503fooEv,_ZTv0_n20_N7ee726503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN6dd26503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2650__7ee72650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN6dd26503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd2650__7ee72650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd2650__7ee72650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72650[] = {
+ {&(_ZTV7ee72650[4]), 4,13},
+ {&(_ZTV7ee72650[11]), 11,13},
+ {&(_tg__ZTV6dd2650__7ee72650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd2650__7ee72650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd2650__7ee72650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72650[];
+extern VTBL_ENTRY _ZTV7ee72650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72650[];
+static VTBL_ENTRY alt_thunk_names319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee726503fooEv,_ZTv0_n20_N7ee726503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726503fooEv,_ZThn8_N7ee726503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726503barEv,_ZTv0_n16_N7ee726503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726503barEv,_ZThn8_N7ee726503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72650 = { "ee72650", // class name
+ bases_ee72650, 4,
+ &(vtc_ee72650[0]), // expected_vtbl_contents
+ &(vtt_ee72650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee72650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3650 : virtual cc650 {
+ int d;
+ virtual void foo(); // _ZN6dd36503fooEv
+ ~dd3650(); // tgen
+ dd3650(); // tgen
+};
+//SIG(-1 dd3650) C1{ VBC2{ BC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3650 ::foo(){vfunc_called(this, "_ZN6dd36503fooEv");}
+dd3650 ::~dd3650(){ note_dtor("dd3650", this);} // tgen
+dd3650 ::dd3650(){ note_ctor("dd3650", this);} // tgen
+
+static void Test_dd3650()
+{
+ extern Class_Descriptor cd_dd3650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd3650, buf);
+ dd3650 *dp, &lv = *(dp=new (buf) dd3650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd3650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,20), "dd3650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,8), "dd3650");
+ check_base_class_offset(lv, (cc650*), ABISELECT(16,8), "dd3650");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3650.d");
+ test_class_info(&lv, &cd_dd3650);
+ dp->~dd3650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3650(Test_dd3650, "dd3650", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd3650C1Ev();
+extern void _ZN6dd3650D1Ev();
+Name_Map name_map_dd3650[] = {
+ NSPAIR(_ZN6dd3650C1Ev),
+ NSPAIR(_ZN6dd3650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd3650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern void _ZN6dd36503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd3650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3650[] = {
+ {&(_ZTV6dd3650[4]), 4,12},
+ {&(_ZTV6dd3650[10]), 10,12},
+ {&(_tg__ZTV5cc650__6dd3650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd3650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static VTBL_ENTRY alt_thunk_names320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3650 = { "dd3650", // class name
+ bases_dd3650, 3,
+ &(vtc_dd3650[0]), // expected_vtbl_contents
+ &(vtt_dd3650[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd3650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3650),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03650 : dd3650 {
+ int e;
+ ~ee03650(); // tgen
+ ee03650(); // tgen
+};
+//SIG(1 ee03650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03650 ::~ee03650(){ note_dtor("ee03650", this);} // tgen
+ee03650 ::ee03650(){ note_ctor("ee03650", this);} // tgen
+
+static void Test_ee03650()
+{
+ extern Class_Descriptor cd_ee03650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee03650, buf);
+ ee03650 *dp, &lv = *(dp=new (buf) ee03650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee03650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee03650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee03650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(16,12), "ee03650");
+ check_base_class_offset(lv, (dd3650*), 0, "ee03650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03650.e");
+ test_class_info(&lv, &cd_ee03650);
+ dp->~ee03650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03650(Test_ee03650, "ee03650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee03650C1Ev();
+extern void _ZN7ee03650D1Ev();
+Name_Map name_map_ee03650[] = {
+ NSPAIR(_ZN7ee03650C1Ev),
+ NSPAIR(_ZN7ee03650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee03650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03650[];
+extern void _ZN6dd36503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee03650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee03650[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee03650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee03650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03650[] = {
+ {&(_ZTV7ee03650[4]), 4,12},
+ {&(_tg__ZTV6dd3650__7ee03650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee03650[5]), 5,7},
+ {&(_ZTV7ee03650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee03650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee03650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03650[];
+extern VTBL_ENTRY _ZTV7ee03650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03650[];
+static VTBL_ENTRY alt_thunk_names321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03650 = { "ee03650", // class name
+ bases_ee03650, 4,
+ &(vtc_ee03650[0]), // expected_vtbl_contents
+ &(vtt_ee03650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee03650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13650 : virtual dd3650 {
+ int e;
+ ~ee13650(); // tgen
+ ee13650(); // tgen
+};
+//SIG(1 ee13650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13650 ::~ee13650(){ note_dtor("ee13650", this);} // tgen
+ee13650 ::ee13650(){ note_ctor("ee13650", this);} // tgen
+
+static void Test_ee13650()
+{
+ extern Class_Descriptor cd_ee13650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee13650, buf);
+ ee13650 *dp, &lv = *(dp=new (buf) ee13650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee13650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee13650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee13650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(32,16), "ee13650");
+ check_base_class_offset(lv, (dd3650*), ABISELECT(16,8), "ee13650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13650.e");
+ test_class_info(&lv, &cd_ee13650);
+ dp->~ee13650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13650(Test_ee13650, "ee13650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee13650C1Ev();
+extern void _ZN7ee13650D1Ev();
+Name_Map name_map_ee13650[] = {
+ NSPAIR(_ZN7ee13650C1Ev),
+ NSPAIR(_ZN7ee13650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee13650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee13650[];
+extern void _ZN6dd36503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13650[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee13650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee13650[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee13650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee13650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13650[] = {
+ {&(_ZTV7ee13650[5]), 5,18},
+ {&(_ZTV7ee13650[10]), 10,18},
+ {&(_ZTV7ee13650[16]), 16,18},
+ {&(_tg__ZTV6dd3650__7ee13650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee13650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee13650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee13650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13650[];
+extern VTBL_ENTRY _ZTV7ee13650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13650[];
+static VTBL_ENTRY alt_thunk_names322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13650 = { "ee13650", // class name
+ bases_ee13650, 4,
+ &(vtc_ee13650[0]), // expected_vtbl_contents
+ &(vtt_ee13650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee13650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13650),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23650 : dd3650 {
+ int e;
+ virtual void foo(); // _ZN7ee236503fooEv
+ ~ee23650(); // tgen
+ ee23650(); // tgen
+};
+//SIG(1 ee23650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23650 ::foo(){vfunc_called(this, "_ZN7ee236503fooEv");}
+ee23650 ::~ee23650(){ note_dtor("ee23650", this);} // tgen
+ee23650 ::ee23650(){ note_ctor("ee23650", this);} // tgen
+
+static void Test_ee23650()
+{
+ extern Class_Descriptor cd_ee23650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee23650, buf);
+ ee23650 *dp, &lv = *(dp=new (buf) ee23650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee23650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee23650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee23650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(16,12), "ee23650");
+ check_base_class_offset(lv, (dd3650*), 0, "ee23650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23650.e");
+ test_class_info(&lv, &cd_ee23650);
+ dp->~ee23650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23650(Test_ee23650, "ee23650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee23650C1Ev();
+extern void _ZN7ee23650D1Ev();
+Name_Map name_map_ee23650[] = {
+ NSPAIR(_ZN7ee23650C1Ev),
+ NSPAIR(_ZN7ee23650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee23650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23650[];
+extern void _ZN7ee236503fooEv();
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee236503fooEv,_ZTv0_n20_N7ee236503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236503fooEv,_ZThn12_N7ee236503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23650[0]),
+ (VTBL_ENTRY)&_ZN7ee236503fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee236503fooEv,_ZTv0_n20_N7ee236503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee23650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee23650[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee23650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee23650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23650[] = {
+ {&(_ZTV7ee23650[4]), 4,12},
+ {&(_tg__ZTV6dd3650__7ee23650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee23650[5]), 5,7},
+ {&(_ZTV7ee23650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee23650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee23650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23650[];
+extern VTBL_ENTRY _ZTV7ee23650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23650[];
+static VTBL_ENTRY alt_thunk_names323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee236503fooEv,_ZTv0_n20_N7ee236503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236503fooEv,_ZThn12_N7ee236503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23650 = { "ee23650", // class name
+ bases_ee23650, 4,
+ &(vtc_ee23650[0]), // expected_vtbl_contents
+ &(vtt_ee23650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee23650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33650 : virtual dd3650 {
+ int e;
+ virtual void foo(); // _ZN7ee336503fooEv
+ ~ee33650(); // tgen
+ ee33650(); // tgen
+};
+//SIG(1 ee33650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33650 ::foo(){vfunc_called(this, "_ZN7ee336503fooEv");}
+ee33650 ::~ee33650(){ note_dtor("ee33650", this);} // tgen
+ee33650 ::ee33650(){ note_ctor("ee33650", this);} // tgen
+
+static void Test_ee33650()
+{
+ extern Class_Descriptor cd_ee33650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee33650, buf);
+ ee33650 *dp, &lv = *(dp=new (buf) ee33650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee33650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee33650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee33650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(32,16), "ee33650");
+ check_base_class_offset(lv, (dd3650*), ABISELECT(16,8), "ee33650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33650.e");
+ test_class_info(&lv, &cd_ee33650);
+ dp->~ee33650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33650(Test_ee33650, "ee33650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee33650C1Ev();
+extern void _ZN7ee33650D1Ev();
+Name_Map name_map_ee33650[] = {
+ NSPAIR(_ZN7ee33650C1Ev),
+ NSPAIR(_ZN7ee33650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee33650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee33650[];
+extern void _ZN7ee336503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336503fooEv,_ZTv0_n20_N7ee336503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336503fooEv,_ZThn8_N7ee336503fooEv)() __attribute__((weak));
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336503fooEv,_ZTv0_n20_N7ee336503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336503fooEv,_ZThn16_N7ee336503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33650[0]),
+ (VTBL_ENTRY)&_ZN7ee336503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336503fooEv,_ZTv0_n20_N7ee336503fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336503fooEv,_ZTv0_n20_N7ee336503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee33650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee33650[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee33650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee33650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33650[] = {
+ {&(_ZTV7ee33650[5]), 5,19},
+ {&(_ZTV7ee33650[11]), 11,19},
+ {&(_ZTV7ee33650[17]), 17,19},
+ {&(_tg__ZTV6dd3650__7ee33650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee33650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee33650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee33650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33650[];
+extern VTBL_ENTRY _ZTV7ee33650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33650[];
+static VTBL_ENTRY alt_thunk_names324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee336503fooEv,_ZTv0_n20_N7ee336503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336503fooEv,_ZThn16_N7ee336503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336503fooEv,_ZThn8_N7ee336503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33650 = { "ee33650", // class name
+ bases_ee33650, 4,
+ &(vtc_ee33650[0]), // expected_vtbl_contents
+ &(vtt_ee33650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee33650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33650),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43650 : dd3650 {
+ int e;
+ virtual void bar(); // _ZN7ee436503barEv
+ ~ee43650(); // tgen
+ ee43650(); // tgen
+};
+//SIG(1 ee43650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43650 ::bar(){vfunc_called(this, "_ZN7ee436503barEv");}
+ee43650 ::~ee43650(){ note_dtor("ee43650", this);} // tgen
+ee43650 ::ee43650(){ note_ctor("ee43650", this);} // tgen
+
+static void Test_ee43650()
+{
+ extern Class_Descriptor cd_ee43650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee43650, buf);
+ ee43650 *dp, &lv = *(dp=new (buf) ee43650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee43650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee43650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee43650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(16,12), "ee43650");
+ check_base_class_offset(lv, (dd3650*), 0, "ee43650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43650.e");
+ test_class_info(&lv, &cd_ee43650);
+ dp->~ee43650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43650(Test_ee43650, "ee43650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee43650C1Ev();
+extern void _ZN7ee43650D1Ev();
+Name_Map name_map_ee43650[] = {
+ NSPAIR(_ZN7ee43650C1Ev),
+ NSPAIR(_ZN7ee43650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee43650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43650[];
+extern void _ZN6dd36503fooEv();
+extern void _ZN7ee436503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee436503barEv,_ZTv0_n16_N7ee436503barEv)();
+extern void ABISELECT(_ZThn16_N7ee436503barEv,_ZThn12_N7ee436503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+ (VTBL_ENTRY)&_ZN7ee436503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436503barEv,_ZTv0_n16_N7ee436503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee43650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee43650[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee43650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee43650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43650[] = {
+ {&(_ZTV7ee43650[4]), 4,13},
+ {&(_tg__ZTV6dd3650__7ee43650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee43650[5]), 5,7},
+ {&(_ZTV7ee43650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee43650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee43650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43650[];
+extern VTBL_ENTRY _ZTV7ee43650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43650[];
+static VTBL_ENTRY alt_thunk_names325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436503barEv,_ZTv0_n16_N7ee436503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436503barEv,_ZThn12_N7ee436503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43650 = { "ee43650", // class name
+ bases_ee43650, 4,
+ &(vtc_ee43650[0]), // expected_vtbl_contents
+ &(vtt_ee43650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee43650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53650 : virtual dd3650 {
+ int e;
+ virtual void bar(); // _ZN7ee536503barEv
+ ~ee53650(); // tgen
+ ee53650(); // tgen
+};
+//SIG(1 ee53650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53650 ::bar(){vfunc_called(this, "_ZN7ee536503barEv");}
+ee53650 ::~ee53650(){ note_dtor("ee53650", this);} // tgen
+ee53650 ::ee53650(){ note_ctor("ee53650", this);} // tgen
+
+static void Test_ee53650()
+{
+ extern Class_Descriptor cd_ee53650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee53650, buf);
+ ee53650 *dp, &lv = *(dp=new (buf) ee53650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee53650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee53650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee53650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(32,16), "ee53650");
+ check_base_class_offset(lv, (dd3650*), ABISELECT(16,8), "ee53650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53650.e");
+ test_class_info(&lv, &cd_ee53650);
+ dp->~ee53650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53650(Test_ee53650, "ee53650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee53650C1Ev();
+extern void _ZN7ee53650D1Ev();
+Name_Map name_map_ee53650[] = {
+ NSPAIR(_ZN7ee53650C1Ev),
+ NSPAIR(_ZN7ee53650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee53650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee53650[];
+extern void _ZN7ee536503barEv();
+extern void _ZN6dd36503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee536503barEv,_ZTv0_n16_N7ee536503barEv)();
+extern void ABISELECT(_ZThn32_N7ee536503barEv,_ZThn16_N7ee536503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53650[0]),
+ (VTBL_ENTRY)&_ZN7ee536503barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536503barEv,_ZTv0_n16_N7ee536503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee53650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee53650[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee53650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee53650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53650[] = {
+ {&(_ZTV7ee53650[5]), 5,19},
+ {&(_ZTV7ee53650[11]), 11,19},
+ {&(_ZTV7ee53650[17]), 17,19},
+ {&(_tg__ZTV6dd3650__7ee53650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee53650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee53650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee53650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53650[];
+extern VTBL_ENTRY _ZTV7ee53650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53650[];
+static VTBL_ENTRY alt_thunk_names326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536503barEv,_ZTv0_n16_N7ee536503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536503barEv,_ZThn16_N7ee536503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53650 = { "ee53650", // class name
+ bases_ee53650, 4,
+ &(vtc_ee53650[0]), // expected_vtbl_contents
+ &(vtt_ee53650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee53650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53650),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63650 : dd3650 {
+ int e;
+ virtual void foo(); // _ZN7ee636503fooEv
+ virtual void bar(); // _ZN7ee636503barEv
+ ~ee63650(); // tgen
+ ee63650(); // tgen
+};
+//SIG(1 ee63650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63650 ::foo(){vfunc_called(this, "_ZN7ee636503fooEv");}
+void ee63650 ::bar(){vfunc_called(this, "_ZN7ee636503barEv");}
+ee63650 ::~ee63650(){ note_dtor("ee63650", this);} // tgen
+ee63650 ::ee63650(){ note_ctor("ee63650", this);} // tgen
+
+static void Test_ee63650()
+{
+ extern Class_Descriptor cd_ee63650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee63650, buf);
+ ee63650 *dp, &lv = *(dp=new (buf) ee63650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee63650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee63650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee63650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(16,12), "ee63650");
+ check_base_class_offset(lv, (dd3650*), 0, "ee63650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63650.e");
+ test_class_info(&lv, &cd_ee63650);
+ dp->~ee63650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63650(Test_ee63650, "ee63650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee63650C1Ev();
+extern void _ZN7ee63650D1Ev();
+Name_Map name_map_ee63650[] = {
+ NSPAIR(_ZN7ee63650C1Ev),
+ NSPAIR(_ZN7ee63650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee63650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63650[];
+extern void _ZN7ee636503fooEv();
+extern void _ZN7ee636503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee636503barEv,_ZTv0_n16_N7ee636503barEv)();
+extern void ABISELECT(_ZThn16_N7ee636503barEv,_ZThn12_N7ee636503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee636503fooEv,_ZTv0_n20_N7ee636503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636503fooEv,_ZThn12_N7ee636503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63650[0]),
+ (VTBL_ENTRY)&_ZN7ee636503fooEv,
+ (VTBL_ENTRY)&_ZN7ee636503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636503barEv,_ZTv0_n16_N7ee636503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee636503fooEv,_ZTv0_n20_N7ee636503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee63650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee63650[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee63650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee63650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63650[] = {
+ {&(_ZTV7ee63650[4]), 4,13},
+ {&(_tg__ZTV6dd3650__7ee63650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee63650[5]), 5,7},
+ {&(_ZTV7ee63650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee63650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee63650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63650[];
+extern VTBL_ENTRY _ZTV7ee63650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63650[];
+static VTBL_ENTRY alt_thunk_names327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn12_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee636503fooEv,_ZTv0_n20_N7ee636503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636503fooEv,_ZThn12_N7ee636503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636503barEv,_ZTv0_n16_N7ee636503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636503barEv,_ZThn12_N7ee636503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63650 = { "ee63650", // class name
+ bases_ee63650, 4,
+ &(vtc_ee63650[0]), // expected_vtbl_contents
+ &(vtt_ee63650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee63650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73650 : virtual dd3650 {
+ int e;
+ virtual void foo(); // _ZN7ee736503fooEv
+ virtual void bar(); // _ZN7ee736503barEv
+ ~ee73650(); // tgen
+ ee73650(); // tgen
+};
+//SIG(1 ee73650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73650 ::foo(){vfunc_called(this, "_ZN7ee736503fooEv");}
+void ee73650 ::bar(){vfunc_called(this, "_ZN7ee736503barEv");}
+ee73650 ::~ee73650(){ note_dtor("ee73650", this);} // tgen
+ee73650 ::ee73650(){ note_ctor("ee73650", this);} // tgen
+
+static void Test_ee73650()
+{
+ extern Class_Descriptor cd_ee73650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee73650, buf);
+ ee73650 *dp, &lv = *(dp=new (buf) ee73650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee73650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee73650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee73650");
+ check_base_class_offset(lv, (cc650*)(dd3650*), ABISELECT(32,16), "ee73650");
+ check_base_class_offset(lv, (dd3650*), ABISELECT(16,8), "ee73650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73650.e");
+ test_class_info(&lv, &cd_ee73650);
+ dp->~ee73650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73650(Test_ee73650, "ee73650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee73650C1Ev();
+extern void _ZN7ee73650D1Ev();
+Name_Map name_map_ee73650[] = {
+ NSPAIR(_ZN7ee73650C1Ev),
+ NSPAIR(_ZN7ee73650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd3650;
+extern VTBL_ENTRY _ZTI6dd3650[];
+extern VTBL_ENTRY _ZTV6dd3650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3650[];
+static Base_Class bases_ee73650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3650, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73650[];
+extern void _ZN7ee736503fooEv();
+extern void _ZN7ee736503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee736503fooEv,_ZTv0_n20_N7ee736503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736503fooEv,_ZThn8_N7ee736503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736503barEv,_ZTv0_n16_N7ee736503barEv)();
+extern void ABISELECT(_ZThn32_N7ee736503barEv,_ZThn16_N7ee736503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee736503fooEv,_ZTv0_n20_N7ee736503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736503fooEv,_ZThn16_N7ee736503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73650[0]),
+ (VTBL_ENTRY)&_ZN7ee736503fooEv,
+ (VTBL_ENTRY)&_ZN7ee736503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736503fooEv,_ZTv0_n20_N7ee736503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736503barEv,_ZTv0_n16_N7ee736503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736503fooEv,_ZTv0_n20_N7ee736503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73650[];
+extern void _ZN6dd36503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3650__7ee73650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN6dd36503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd3650__7ee73650[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee73650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee73650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73650[] = {
+ {&(_ZTV7ee73650[5]), 5,20},
+ {&(_ZTV7ee73650[12]), 12,20},
+ {&(_ZTV7ee73650[18]), 18,20},
+ {&(_tg__ZTV6dd3650__7ee73650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd3650__7ee73650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee73650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee73650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73650[];
+extern VTBL_ENTRY _ZTV7ee73650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73650[];
+static VTBL_ENTRY alt_thunk_names328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36503fooEv,_ZTv0_n20_N6dd36503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36503fooEv,_ZThn8_N6dd36503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736503barEv,_ZTv0_n16_N7ee736503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736503barEv,_ZThn16_N7ee736503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee736503fooEv,_ZTv0_n20_N7ee736503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736503fooEv,_ZThn16_N7ee736503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736503fooEv,_ZThn8_N7ee736503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73650 = { "ee73650", // class name
+ bases_ee73650, 4,
+ &(vtc_ee73650[0]), // expected_vtbl_contents
+ &(vtt_ee73650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee73650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73650),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4650 : cc650 {
+ int d;
+ virtual void bar(); // _ZN6dd46503barEv
+ ~dd4650(); // tgen
+ dd4650(); // tgen
+};
+//SIG(-1 dd4650) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4650 ::bar(){vfunc_called(this, "_ZN6dd46503barEv");}
+dd4650 ::~dd4650(){ note_dtor("dd4650", this);} // tgen
+dd4650 ::dd4650(){ note_ctor("dd4650", this);} // tgen
+
+static void Test_dd4650()
+{
+ extern Class_Descriptor cd_dd4650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd4650, buf);
+ dd4650 *dp, &lv = *(dp=new (buf) dd4650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd4650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(20,16), "dd4650");
+ check_base_class_offset(lv, (bb50*)(cc650*), 0, "dd4650");
+ check_base_class_offset(lv, (cc650*), 0, "dd4650");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4650.d");
+ test_class_info(&lv, &cd_dd4650);
+ dp->~dd4650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4650(Test_dd4650, "dd4650", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd4650C1Ev();
+extern void _ZN6dd4650D1Ev();
+Name_Map name_map_dd4650[] = {
+ NSPAIR(_ZN6dd4650C1Ev),
+ NSPAIR(_ZN6dd4650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd4650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_dd4650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd4650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd4650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4650[] = {
+ {&(_ZTV6dd4650[3]), 3,5},
+ {&(_tg__ZTV5cc650__6dd4650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd4650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+Class_Descriptor cd_dd4650 = { "dd4650", // class name
+ bases_dd4650, 3,
+ &(vtc_dd4650[0]), // expected_vtbl_contents
+ &(vtt_dd4650[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd4650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4650),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04650 : dd4650 {
+ int e;
+ ~ee04650(); // tgen
+ ee04650(); // tgen
+};
+//SIG(1 ee04650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04650 ::~ee04650(){ note_dtor("ee04650", this);} // tgen
+ee04650 ::ee04650(){ note_ctor("ee04650", this);} // tgen
+
+static void Test_ee04650()
+{
+ extern Class_Descriptor cd_ee04650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee04650, buf);
+ ee04650 *dp, &lv = *(dp=new (buf) ee04650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee04650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(24,20), "ee04650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), 0, "ee04650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), 0, "ee04650");
+ check_base_class_offset(lv, (dd4650*), 0, "ee04650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04650.e");
+ test_class_info(&lv, &cd_ee04650);
+ dp->~ee04650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04650(Test_ee04650, "ee04650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee04650C1Ev();
+extern void _ZN7ee04650D1Ev();
+Name_Map name_map_ee04650[] = {
+ NSPAIR(_ZN7ee04650C1Ev),
+ NSPAIR(_ZN7ee04650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee04650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee04650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee04650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee04650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee04650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04650[] = {
+ {&(_ZTV7ee04650[3]), 3,5},
+ {&(_tg__ZTV6dd4650__7ee04650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee04650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee04650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04650[];
+extern VTBL_ENTRY _ZTV7ee04650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04650[];
+Class_Descriptor cd_ee04650 = { "ee04650", // class name
+ bases_ee04650, 4,
+ &(vtc_ee04650[0]), // expected_vtbl_contents
+ &(vtt_ee04650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee04650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14650 : virtual dd4650 {
+ int e;
+ ~ee14650(); // tgen
+ ee14650(); // tgen
+};
+//SIG(1 ee14650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14650 ::~ee14650(){ note_dtor("ee14650", this);} // tgen
+ee14650 ::ee14650(){ note_ctor("ee14650", this);} // tgen
+
+static void Test_ee14650()
+{
+ extern Class_Descriptor cd_ee14650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee14650, buf);
+ ee14650 *dp, &lv = *(dp=new (buf) ee14650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee14650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(36,24), "ee14650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), ABISELECT(16,8), "ee14650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), ABISELECT(16,8), "ee14650");
+ check_base_class_offset(lv, (dd4650*), ABISELECT(16,8), "ee14650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14650.e");
+ test_class_info(&lv, &cd_ee14650);
+ dp->~ee14650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14650(Test_ee14650, "ee14650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee14650C1Ev();
+extern void _ZN7ee14650D1Ev();
+Name_Map name_map_ee14650[] = {
+ NSPAIR(_ZN7ee14650C1Ev),
+ NSPAIR(_ZN7ee14650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee14650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee14650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14650[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee14650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee14650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee14650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14650[] = {
+ {&(_ZTV7ee14650[4]), 4,11},
+ {&(_ZTV7ee14650[9]), 9,11},
+ {&(_tg__ZTV6dd4650__7ee14650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee14650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee14650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14650[];
+extern VTBL_ENTRY _ZTV7ee14650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14650[];
+Class_Descriptor cd_ee14650 = { "ee14650", // class name
+ bases_ee14650, 4,
+ &(vtc_ee14650[0]), // expected_vtbl_contents
+ &(vtt_ee14650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee14650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24650 : dd4650 {
+ int e;
+ virtual void foo(); // _ZN7ee246503fooEv
+ ~ee24650(); // tgen
+ ee24650(); // tgen
+};
+//SIG(1 ee24650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24650 ::foo(){vfunc_called(this, "_ZN7ee246503fooEv");}
+ee24650 ::~ee24650(){ note_dtor("ee24650", this);} // tgen
+ee24650 ::ee24650(){ note_ctor("ee24650", this);} // tgen
+
+static void Test_ee24650()
+{
+ extern Class_Descriptor cd_ee24650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee24650, buf);
+ ee24650 *dp, &lv = *(dp=new (buf) ee24650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee24650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(24,20), "ee24650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), 0, "ee24650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), 0, "ee24650");
+ check_base_class_offset(lv, (dd4650*), 0, "ee24650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24650.e");
+ test_class_info(&lv, &cd_ee24650);
+ dp->~ee24650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24650(Test_ee24650, "ee24650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee24650C1Ev();
+extern void _ZN7ee24650D1Ev();
+Name_Map name_map_ee24650[] = {
+ NSPAIR(_ZN7ee24650C1Ev),
+ NSPAIR(_ZN7ee24650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee24650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN7ee246503fooEv();
+static VTBL_ENTRY vtc_ee24650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN7ee246503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee24650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee24650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee24650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee24650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24650[] = {
+ {&(_ZTV7ee24650[3]), 3,5},
+ {&(_tg__ZTV6dd4650__7ee24650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee24650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee24650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24650[];
+extern VTBL_ENTRY _ZTV7ee24650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24650[];
+Class_Descriptor cd_ee24650 = { "ee24650", // class name
+ bases_ee24650, 4,
+ &(vtc_ee24650[0]), // expected_vtbl_contents
+ &(vtt_ee24650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee24650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34650 : virtual dd4650 {
+ int e;
+ virtual void foo(); // _ZN7ee346503fooEv
+ ~ee34650(); // tgen
+ ee34650(); // tgen
+};
+//SIG(1 ee34650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34650 ::foo(){vfunc_called(this, "_ZN7ee346503fooEv");}
+ee34650 ::~ee34650(){ note_dtor("ee34650", this);} // tgen
+ee34650 ::ee34650(){ note_ctor("ee34650", this);} // tgen
+
+static void Test_ee34650()
+{
+ extern Class_Descriptor cd_ee34650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee34650, buf);
+ ee34650 *dp, &lv = *(dp=new (buf) ee34650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee34650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(36,24), "ee34650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), ABISELECT(16,8), "ee34650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), ABISELECT(16,8), "ee34650");
+ check_base_class_offset(lv, (dd4650*), ABISELECT(16,8), "ee34650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34650.e");
+ test_class_info(&lv, &cd_ee34650);
+ dp->~ee34650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34650(Test_ee34650, "ee34650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee34650C1Ev();
+extern void _ZN7ee34650D1Ev();
+Name_Map name_map_ee34650[] = {
+ NSPAIR(_ZN7ee34650C1Ev),
+ NSPAIR(_ZN7ee34650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee34650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34650[];
+extern void _ZN7ee346503fooEv();
+extern void _ZN6dd46503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee346503fooEv,_ZTv0_n20_N7ee346503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346503fooEv,_ZThn8_N7ee346503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34650[0]),
+ (VTBL_ENTRY)&_ZN7ee346503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee346503fooEv,_ZTv0_n20_N7ee346503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee34650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee34650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee34650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34650[] = {
+ {&(_ZTV7ee34650[4]), 4,12},
+ {&(_ZTV7ee34650[10]), 10,12},
+ {&(_tg__ZTV6dd4650__7ee34650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee34650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee34650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34650[];
+extern VTBL_ENTRY _ZTV7ee34650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34650[];
+static VTBL_ENTRY alt_thunk_names329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee346503fooEv,_ZTv0_n20_N7ee346503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346503fooEv,_ZThn8_N7ee346503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34650 = { "ee34650", // class name
+ bases_ee34650, 4,
+ &(vtc_ee34650[0]), // expected_vtbl_contents
+ &(vtt_ee34650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee34650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44650 : dd4650 {
+ int e;
+ virtual void bar(); // _ZN7ee446503barEv
+ ~ee44650(); // tgen
+ ee44650(); // tgen
+};
+//SIG(1 ee44650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44650 ::bar(){vfunc_called(this, "_ZN7ee446503barEv");}
+ee44650 ::~ee44650(){ note_dtor("ee44650", this);} // tgen
+ee44650 ::ee44650(){ note_ctor("ee44650", this);} // tgen
+
+static void Test_ee44650()
+{
+ extern Class_Descriptor cd_ee44650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee44650, buf);
+ ee44650 *dp, &lv = *(dp=new (buf) ee44650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee44650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(24,20), "ee44650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), 0, "ee44650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), 0, "ee44650");
+ check_base_class_offset(lv, (dd4650*), 0, "ee44650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44650.e");
+ test_class_info(&lv, &cd_ee44650);
+ dp->~ee44650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44650(Test_ee44650, "ee44650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee44650C1Ev();
+extern void _ZN7ee44650D1Ev();
+Name_Map name_map_ee44650[] = {
+ NSPAIR(_ZN7ee44650C1Ev),
+ NSPAIR(_ZN7ee44650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee44650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44650[];
+extern void _ZN7ee446503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee44650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44650[0]),
+ (VTBL_ENTRY)&_ZN7ee446503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee44650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee44650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee44650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44650[] = {
+ {&(_ZTV7ee44650[3]), 3,5},
+ {&(_tg__ZTV6dd4650__7ee44650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee44650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee44650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44650[];
+extern VTBL_ENTRY _ZTV7ee44650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44650[];
+Class_Descriptor cd_ee44650 = { "ee44650", // class name
+ bases_ee44650, 4,
+ &(vtc_ee44650[0]), // expected_vtbl_contents
+ &(vtt_ee44650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee44650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54650 : virtual dd4650 {
+ int e;
+ virtual void bar(); // _ZN7ee546503barEv
+ ~ee54650(); // tgen
+ ee54650(); // tgen
+};
+//SIG(1 ee54650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54650 ::bar(){vfunc_called(this, "_ZN7ee546503barEv");}
+ee54650 ::~ee54650(){ note_dtor("ee54650", this);} // tgen
+ee54650 ::ee54650(){ note_ctor("ee54650", this);} // tgen
+
+static void Test_ee54650()
+{
+ extern Class_Descriptor cd_ee54650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee54650, buf);
+ ee54650 *dp, &lv = *(dp=new (buf) ee54650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee54650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(36,24), "ee54650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), ABISELECT(16,8), "ee54650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), ABISELECT(16,8), "ee54650");
+ check_base_class_offset(lv, (dd4650*), ABISELECT(16,8), "ee54650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54650.e");
+ test_class_info(&lv, &cd_ee54650);
+ dp->~ee54650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54650(Test_ee54650, "ee54650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee54650C1Ev();
+extern void _ZN7ee54650D1Ev();
+Name_Map name_map_ee54650[] = {
+ NSPAIR(_ZN7ee54650C1Ev),
+ NSPAIR(_ZN7ee54650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee54650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54650[];
+extern void _ZN7ee546503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546503barEv,_ZTv0_n16_N7ee546503barEv)();
+extern void ABISELECT(_ZThn16_N7ee546503barEv,_ZThn8_N7ee546503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee54650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54650[0]),
+ (VTBL_ENTRY)&_ZN7ee546503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546503barEv,_ZTv0_n16_N7ee546503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee54650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee54650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee54650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54650[] = {
+ {&(_ZTV7ee54650[4]), 4,12},
+ {&(_ZTV7ee54650[10]), 10,12},
+ {&(_tg__ZTV6dd4650__7ee54650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee54650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee54650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54650[];
+extern VTBL_ENTRY _ZTV7ee54650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54650[];
+static VTBL_ENTRY alt_thunk_names330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546503barEv,_ZTv0_n16_N7ee546503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546503barEv,_ZThn8_N7ee546503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54650 = { "ee54650", // class name
+ bases_ee54650, 4,
+ &(vtc_ee54650[0]), // expected_vtbl_contents
+ &(vtt_ee54650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee54650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64650 : dd4650 {
+ int e;
+ virtual void foo(); // _ZN7ee646503fooEv
+ virtual void bar(); // _ZN7ee646503barEv
+ ~ee64650(); // tgen
+ ee64650(); // tgen
+};
+//SIG(1 ee64650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64650 ::foo(){vfunc_called(this, "_ZN7ee646503fooEv");}
+void ee64650 ::bar(){vfunc_called(this, "_ZN7ee646503barEv");}
+ee64650 ::~ee64650(){ note_dtor("ee64650", this);} // tgen
+ee64650 ::ee64650(){ note_ctor("ee64650", this);} // tgen
+
+static void Test_ee64650()
+{
+ extern Class_Descriptor cd_ee64650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee64650, buf);
+ ee64650 *dp, &lv = *(dp=new (buf) ee64650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee64650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(24,20), "ee64650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), 0, "ee64650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), 0, "ee64650");
+ check_base_class_offset(lv, (dd4650*), 0, "ee64650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64650.e");
+ test_class_info(&lv, &cd_ee64650);
+ dp->~ee64650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64650(Test_ee64650, "ee64650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee64650C1Ev();
+extern void _ZN7ee64650D1Ev();
+Name_Map name_map_ee64650[] = {
+ NSPAIR(_ZN7ee64650C1Ev),
+ NSPAIR(_ZN7ee64650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee64650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64650[];
+extern void _ZN7ee646503barEv();
+extern void _ZN7ee646503fooEv();
+static VTBL_ENTRY vtc_ee64650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64650[0]),
+ (VTBL_ENTRY)&_ZN7ee646503barEv,
+ (VTBL_ENTRY)&_ZN7ee646503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee64650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee64650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee64650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee64650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64650[] = {
+ {&(_ZTV7ee64650[3]), 3,5},
+ {&(_tg__ZTV6dd4650__7ee64650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee64650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee64650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64650[];
+extern VTBL_ENTRY _ZTV7ee64650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64650[];
+Class_Descriptor cd_ee64650 = { "ee64650", // class name
+ bases_ee64650, 4,
+ &(vtc_ee64650[0]), // expected_vtbl_contents
+ &(vtt_ee64650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee64650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74650 : virtual dd4650 {
+ int e;
+ virtual void foo(); // _ZN7ee746503fooEv
+ virtual void bar(); // _ZN7ee746503barEv
+ ~ee74650(); // tgen
+ ee74650(); // tgen
+};
+//SIG(1 ee74650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74650 ::foo(){vfunc_called(this, "_ZN7ee746503fooEv");}
+void ee74650 ::bar(){vfunc_called(this, "_ZN7ee746503barEv");}
+ee74650 ::~ee74650(){ note_dtor("ee74650", this);} // tgen
+ee74650 ::ee74650(){ note_ctor("ee74650", this);} // tgen
+
+static void Test_ee74650()
+{
+ extern Class_Descriptor cd_ee74650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee74650, buf);
+ ee74650 *dp, &lv = *(dp=new (buf) ee74650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee74650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd4650*), ABISELECT(36,24), "ee74650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd4650*), ABISELECT(16,8), "ee74650");
+ check_base_class_offset(lv, (cc650*)(dd4650*), ABISELECT(16,8), "ee74650");
+ check_base_class_offset(lv, (dd4650*), ABISELECT(16,8), "ee74650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74650.e");
+ test_class_info(&lv, &cd_ee74650);
+ dp->~ee74650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74650(Test_ee74650, "ee74650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee74650C1Ev();
+extern void _ZN7ee74650D1Ev();
+Name_Map name_map_ee74650[] = {
+ NSPAIR(_ZN7ee74650C1Ev),
+ NSPAIR(_ZN7ee74650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd4650;
+extern VTBL_ENTRY _ZTI6dd4650[];
+extern VTBL_ENTRY _ZTV6dd4650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4650[];
+static Base_Class bases_ee74650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74650[];
+extern void _ZN7ee746503fooEv();
+extern void _ZN7ee746503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee746503barEv,_ZTv0_n16_N7ee746503barEv)();
+extern void ABISELECT(_ZThn16_N7ee746503barEv,_ZThn8_N7ee746503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee746503fooEv,_ZTv0_n20_N7ee746503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746503fooEv,_ZThn8_N7ee746503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74650[0]),
+ (VTBL_ENTRY)&_ZN7ee746503fooEv,
+ (VTBL_ENTRY)&_ZN7ee746503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746503barEv,_ZTv0_n16_N7ee746503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee746503fooEv,_ZTv0_n20_N7ee746503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74650[];
+extern void _ZN6dd46503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4650__7ee74650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4650[0]),
+ (VTBL_ENTRY)&_ZN6dd46503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd4650__7ee74650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd4650__7ee74650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74650[] = {
+ {&(_ZTV7ee74650[4]), 4,13},
+ {&(_ZTV7ee74650[11]), 11,13},
+ {&(_tg__ZTV6dd4650__7ee74650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd4650__7ee74650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd4650__7ee74650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74650[];
+extern VTBL_ENTRY _ZTV7ee74650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74650[];
+static VTBL_ENTRY alt_thunk_names331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee746503fooEv,_ZTv0_n20_N7ee746503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746503fooEv,_ZThn8_N7ee746503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746503barEv,_ZTv0_n16_N7ee746503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746503barEv,_ZThn8_N7ee746503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74650 = { "ee74650", // class name
+ bases_ee74650, 4,
+ &(vtc_ee74650[0]), // expected_vtbl_contents
+ &(vtt_ee74650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee74650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5650 : virtual cc650 {
+ int d;
+ virtual void bar(); // _ZN6dd56503barEv
+ ~dd5650(); // tgen
+ dd5650(); // tgen
+};
+//SIG(-1 dd5650) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5650 ::bar(){vfunc_called(this, "_ZN6dd56503barEv");}
+dd5650 ::~dd5650(){ note_dtor("dd5650", this);} // tgen
+dd5650 ::dd5650(){ note_ctor("dd5650", this);} // tgen
+
+static void Test_dd5650()
+{
+ extern Class_Descriptor cd_dd5650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd5650, buf);
+ dd5650 *dp, &lv = *(dp=new (buf) dd5650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd5650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,20), "dd5650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,8), "dd5650");
+ check_base_class_offset(lv, (cc650*), ABISELECT(16,8), "dd5650");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5650.d");
+ test_class_info(&lv, &cd_dd5650);
+ dp->~dd5650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5650(Test_dd5650, "dd5650", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd5650C1Ev();
+extern void _ZN6dd5650D1Ev();
+Name_Map name_map_dd5650[] = {
+ NSPAIR(_ZN6dd5650C1Ev),
+ NSPAIR(_ZN6dd5650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd5650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern void _ZN6dd56503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_dd5650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd5650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5650[] = {
+ {&(_ZTV6dd5650[4]), 4,12},
+ {&(_ZTV6dd5650[10]), 10,12},
+ {&(_tg__ZTV5cc650__6dd5650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd5650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static VTBL_ENTRY alt_thunk_names332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5650 = { "dd5650", // class name
+ bases_dd5650, 3,
+ &(vtc_dd5650[0]), // expected_vtbl_contents
+ &(vtt_dd5650[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd5650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5650),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05650 : dd5650 {
+ int e;
+ ~ee05650(); // tgen
+ ee05650(); // tgen
+};
+//SIG(1 ee05650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05650 ::~ee05650(){ note_dtor("ee05650", this);} // tgen
+ee05650 ::ee05650(){ note_ctor("ee05650", this);} // tgen
+
+static void Test_ee05650()
+{
+ extern Class_Descriptor cd_ee05650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee05650, buf);
+ ee05650 *dp, &lv = *(dp=new (buf) ee05650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee05650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee05650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee05650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(16,12), "ee05650");
+ check_base_class_offset(lv, (dd5650*), 0, "ee05650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05650.e");
+ test_class_info(&lv, &cd_ee05650);
+ dp->~ee05650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05650(Test_ee05650, "ee05650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee05650C1Ev();
+extern void _ZN7ee05650D1Ev();
+Name_Map name_map_ee05650[] = {
+ NSPAIR(_ZN7ee05650C1Ev),
+ NSPAIR(_ZN7ee05650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee05650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05650[];
+extern void _ZN6dd56503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee05650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee05650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee05650[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee05650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee05650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05650[] = {
+ {&(_ZTV7ee05650[4]), 4,12},
+ {&(_tg__ZTV6dd5650__7ee05650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee05650[5]), 5,7},
+ {&(_ZTV7ee05650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee05650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee05650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05650[];
+extern VTBL_ENTRY _ZTV7ee05650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05650[];
+static VTBL_ENTRY alt_thunk_names333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05650 = { "ee05650", // class name
+ bases_ee05650, 4,
+ &(vtc_ee05650[0]), // expected_vtbl_contents
+ &(vtt_ee05650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee05650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15650 : virtual dd5650 {
+ int e;
+ ~ee15650(); // tgen
+ ee15650(); // tgen
+};
+//SIG(1 ee15650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15650 ::~ee15650(){ note_dtor("ee15650", this);} // tgen
+ee15650 ::ee15650(){ note_ctor("ee15650", this);} // tgen
+
+static void Test_ee15650()
+{
+ extern Class_Descriptor cd_ee15650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee15650, buf);
+ ee15650 *dp, &lv = *(dp=new (buf) ee15650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee15650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee15650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee15650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(32,16), "ee15650");
+ check_base_class_offset(lv, (dd5650*), ABISELECT(16,8), "ee15650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15650.e");
+ test_class_info(&lv, &cd_ee15650);
+ dp->~ee15650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15650(Test_ee15650, "ee15650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee15650C1Ev();
+extern void _ZN7ee15650D1Ev();
+Name_Map name_map_ee15650[] = {
+ NSPAIR(_ZN7ee15650C1Ev),
+ NSPAIR(_ZN7ee15650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee15650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee15650[];
+extern void _ZN6dd56503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee15650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15650[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee15650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee15650[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee15650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee15650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15650[] = {
+ {&(_ZTV7ee15650[5]), 5,18},
+ {&(_ZTV7ee15650[10]), 10,18},
+ {&(_ZTV7ee15650[16]), 16,18},
+ {&(_tg__ZTV6dd5650__7ee15650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee15650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee15650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee15650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15650[];
+extern VTBL_ENTRY _ZTV7ee15650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15650[];
+static VTBL_ENTRY alt_thunk_names334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15650 = { "ee15650", // class name
+ bases_ee15650, 4,
+ &(vtc_ee15650[0]), // expected_vtbl_contents
+ &(vtt_ee15650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee15650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15650),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25650 : dd5650 {
+ int e;
+ virtual void foo(); // _ZN7ee256503fooEv
+ ~ee25650(); // tgen
+ ee25650(); // tgen
+};
+//SIG(1 ee25650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25650 ::foo(){vfunc_called(this, "_ZN7ee256503fooEv");}
+ee25650 ::~ee25650(){ note_dtor("ee25650", this);} // tgen
+ee25650 ::ee25650(){ note_ctor("ee25650", this);} // tgen
+
+static void Test_ee25650()
+{
+ extern Class_Descriptor cd_ee25650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee25650, buf);
+ ee25650 *dp, &lv = *(dp=new (buf) ee25650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee25650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee25650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee25650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(16,12), "ee25650");
+ check_base_class_offset(lv, (dd5650*), 0, "ee25650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25650.e");
+ test_class_info(&lv, &cd_ee25650);
+ dp->~ee25650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25650(Test_ee25650, "ee25650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee25650C1Ev();
+extern void _ZN7ee25650D1Ev();
+Name_Map name_map_ee25650[] = {
+ NSPAIR(_ZN7ee25650C1Ev),
+ NSPAIR(_ZN7ee25650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee25650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25650[];
+extern void _ZN6dd56503barEv();
+extern void _ZN7ee256503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee256503fooEv,_ZTv0_n20_N7ee256503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256503fooEv,_ZThn12_N7ee256503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+ (VTBL_ENTRY)&_ZN7ee256503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee256503fooEv,_ZTv0_n20_N7ee256503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee25650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee25650[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee25650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee25650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25650[] = {
+ {&(_ZTV7ee25650[4]), 4,13},
+ {&(_tg__ZTV6dd5650__7ee25650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee25650[5]), 5,7},
+ {&(_ZTV7ee25650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee25650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee25650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25650[];
+extern VTBL_ENTRY _ZTV7ee25650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25650[];
+static VTBL_ENTRY alt_thunk_names335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee256503fooEv,_ZTv0_n20_N7ee256503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256503fooEv,_ZThn12_N7ee256503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25650 = { "ee25650", // class name
+ bases_ee25650, 4,
+ &(vtc_ee25650[0]), // expected_vtbl_contents
+ &(vtt_ee25650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee25650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35650 : virtual dd5650 {
+ int e;
+ virtual void foo(); // _ZN7ee356503fooEv
+ ~ee35650(); // tgen
+ ee35650(); // tgen
+};
+//SIG(1 ee35650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35650 ::foo(){vfunc_called(this, "_ZN7ee356503fooEv");}
+ee35650 ::~ee35650(){ note_dtor("ee35650", this);} // tgen
+ee35650 ::ee35650(){ note_ctor("ee35650", this);} // tgen
+
+static void Test_ee35650()
+{
+ extern Class_Descriptor cd_ee35650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee35650, buf);
+ ee35650 *dp, &lv = *(dp=new (buf) ee35650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee35650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee35650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee35650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(32,16), "ee35650");
+ check_base_class_offset(lv, (dd5650*), ABISELECT(16,8), "ee35650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35650.e");
+ test_class_info(&lv, &cd_ee35650);
+ dp->~ee35650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35650(Test_ee35650, "ee35650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee35650C1Ev();
+extern void _ZN7ee35650D1Ev();
+Name_Map name_map_ee35650[] = {
+ NSPAIR(_ZN7ee35650C1Ev),
+ NSPAIR(_ZN7ee35650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee35650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee35650[];
+extern void _ZN7ee356503fooEv();
+extern void _ZN6dd56503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee356503fooEv,_ZTv0_n20_N7ee356503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356503fooEv,_ZThn16_N7ee356503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35650[0]),
+ (VTBL_ENTRY)&_ZN7ee356503fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee356503fooEv,_ZTv0_n20_N7ee356503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee35650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee35650[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee35650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee35650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35650[] = {
+ {&(_ZTV7ee35650[5]), 5,19},
+ {&(_ZTV7ee35650[11]), 11,19},
+ {&(_ZTV7ee35650[17]), 17,19},
+ {&(_tg__ZTV6dd5650__7ee35650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee35650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee35650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee35650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35650[];
+extern VTBL_ENTRY _ZTV7ee35650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35650[];
+static VTBL_ENTRY alt_thunk_names336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee356503fooEv,_ZTv0_n20_N7ee356503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356503fooEv,_ZThn16_N7ee356503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35650 = { "ee35650", // class name
+ bases_ee35650, 4,
+ &(vtc_ee35650[0]), // expected_vtbl_contents
+ &(vtt_ee35650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee35650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35650),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45650 : dd5650 {
+ int e;
+ virtual void bar(); // _ZN7ee456503barEv
+ ~ee45650(); // tgen
+ ee45650(); // tgen
+};
+//SIG(1 ee45650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45650 ::bar(){vfunc_called(this, "_ZN7ee456503barEv");}
+ee45650 ::~ee45650(){ note_dtor("ee45650", this);} // tgen
+ee45650 ::ee45650(){ note_ctor("ee45650", this);} // tgen
+
+static void Test_ee45650()
+{
+ extern Class_Descriptor cd_ee45650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee45650, buf);
+ ee45650 *dp, &lv = *(dp=new (buf) ee45650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee45650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee45650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee45650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(16,12), "ee45650");
+ check_base_class_offset(lv, (dd5650*), 0, "ee45650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45650.e");
+ test_class_info(&lv, &cd_ee45650);
+ dp->~ee45650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45650(Test_ee45650, "ee45650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee45650C1Ev();
+extern void _ZN7ee45650D1Ev();
+Name_Map name_map_ee45650[] = {
+ NSPAIR(_ZN7ee45650C1Ev),
+ NSPAIR(_ZN7ee45650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee45650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45650[];
+extern void _ZN7ee456503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456503barEv,_ZTv0_n16_N7ee456503barEv)();
+extern void ABISELECT(_ZThn16_N7ee456503barEv,_ZThn12_N7ee456503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee45650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45650[0]),
+ (VTBL_ENTRY)&_ZN7ee456503barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456503barEv,_ZTv0_n16_N7ee456503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee45650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee45650[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee45650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee45650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45650[] = {
+ {&(_ZTV7ee45650[4]), 4,12},
+ {&(_tg__ZTV6dd5650__7ee45650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee45650[5]), 5,7},
+ {&(_ZTV7ee45650[10]), 10,12},
+ {&(_tg__ZTV5cc650__7ee45650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee45650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45650[];
+extern VTBL_ENTRY _ZTV7ee45650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45650[];
+static VTBL_ENTRY alt_thunk_names337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456503barEv,_ZTv0_n16_N7ee456503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456503barEv,_ZThn12_N7ee456503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45650 = { "ee45650", // class name
+ bases_ee45650, 4,
+ &(vtc_ee45650[0]), // expected_vtbl_contents
+ &(vtt_ee45650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee45650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55650 : virtual dd5650 {
+ int e;
+ virtual void bar(); // _ZN7ee556503barEv
+ ~ee55650(); // tgen
+ ee55650(); // tgen
+};
+//SIG(1 ee55650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55650 ::bar(){vfunc_called(this, "_ZN7ee556503barEv");}
+ee55650 ::~ee55650(){ note_dtor("ee55650", this);} // tgen
+ee55650 ::ee55650(){ note_ctor("ee55650", this);} // tgen
+
+static void Test_ee55650()
+{
+ extern Class_Descriptor cd_ee55650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee55650, buf);
+ ee55650 *dp, &lv = *(dp=new (buf) ee55650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee55650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee55650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee55650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(32,16), "ee55650");
+ check_base_class_offset(lv, (dd5650*), ABISELECT(16,8), "ee55650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55650.e");
+ test_class_info(&lv, &cd_ee55650);
+ dp->~ee55650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55650(Test_ee55650, "ee55650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee55650C1Ev();
+extern void _ZN7ee55650D1Ev();
+Name_Map name_map_ee55650[] = {
+ NSPAIR(_ZN7ee55650C1Ev),
+ NSPAIR(_ZN7ee55650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee55650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI7ee55650[];
+extern void _ZN7ee556503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee556503barEv,_ZTv0_n20_N7ee556503barEv)();
+extern void ABISELECT(_ZThn16_N7ee556503barEv,_ZThn8_N7ee556503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee556503barEv,_ZTv0_n16_N7ee556503barEv)();
+extern void ABISELECT(_ZThn32_N7ee556503barEv,_ZThn16_N7ee556503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY vtc_ee55650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55650[0]),
+ (VTBL_ENTRY)&_ZN7ee556503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee556503barEv,_ZTv0_n20_N7ee556503barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556503barEv,_ZTv0_n16_N7ee556503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee55650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee55650[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee55650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee55650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55650[] = {
+ {&(_ZTV7ee55650[5]), 5,19},
+ {&(_ZTV7ee55650[11]), 11,19},
+ {&(_ZTV7ee55650[17]), 17,19},
+ {&(_tg__ZTV6dd5650__7ee55650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee55650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee55650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee55650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55650[];
+extern VTBL_ENTRY _ZTV7ee55650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55650[];
+static VTBL_ENTRY alt_thunk_names338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556503barEv,_ZTv0_n16_N7ee556503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556503barEv,_ZThn16_N7ee556503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee556503barEv,_ZTv0_n20_N7ee556503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556503barEv,_ZThn8_N7ee556503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55650 = { "ee55650", // class name
+ bases_ee55650, 4,
+ &(vtc_ee55650[0]), // expected_vtbl_contents
+ &(vtt_ee55650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee55650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55650),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65650 : dd5650 {
+ int e;
+ virtual void foo(); // _ZN7ee656503fooEv
+ virtual void bar(); // _ZN7ee656503barEv
+ ~ee65650(); // tgen
+ ee65650(); // tgen
+};
+//SIG(1 ee65650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65650 ::foo(){vfunc_called(this, "_ZN7ee656503fooEv");}
+void ee65650 ::bar(){vfunc_called(this, "_ZN7ee656503barEv");}
+ee65650 ::~ee65650(){ note_dtor("ee65650", this);} // tgen
+ee65650 ::ee65650(){ note_ctor("ee65650", this);} // tgen
+
+static void Test_ee65650()
+{
+ extern Class_Descriptor cd_ee65650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee65650, buf);
+ ee65650 *dp, &lv = *(dp=new (buf) ee65650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee65650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee65650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee65650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(16,12), "ee65650");
+ check_base_class_offset(lv, (dd5650*), 0, "ee65650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65650.e");
+ test_class_info(&lv, &cd_ee65650);
+ dp->~ee65650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65650(Test_ee65650, "ee65650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee65650C1Ev();
+extern void _ZN7ee65650D1Ev();
+Name_Map name_map_ee65650[] = {
+ NSPAIR(_ZN7ee65650C1Ev),
+ NSPAIR(_ZN7ee65650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee65650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65650[];
+extern void _ZN7ee656503barEv();
+extern void _ZN7ee656503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee656503barEv,_ZTv0_n16_N7ee656503barEv)();
+extern void ABISELECT(_ZThn16_N7ee656503barEv,_ZThn12_N7ee656503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee656503fooEv,_ZTv0_n20_N7ee656503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656503fooEv,_ZThn12_N7ee656503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65650[0]),
+ (VTBL_ENTRY)&_ZN7ee656503barEv,
+ (VTBL_ENTRY)&_ZN7ee656503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656503barEv,_ZTv0_n16_N7ee656503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee656503fooEv,_ZTv0_n20_N7ee656503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee65650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee65650[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee65650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee65650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65650[] = {
+ {&(_ZTV7ee65650[4]), 4,13},
+ {&(_tg__ZTV6dd5650__7ee65650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee65650[5]), 5,7},
+ {&(_ZTV7ee65650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee65650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee65650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65650[];
+extern VTBL_ENTRY _ZTV7ee65650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65650[];
+static VTBL_ENTRY alt_thunk_names339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn12_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee656503fooEv,_ZTv0_n20_N7ee656503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656503fooEv,_ZThn12_N7ee656503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656503barEv,_ZTv0_n16_N7ee656503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656503barEv,_ZThn12_N7ee656503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65650 = { "ee65650", // class name
+ bases_ee65650, 4,
+ &(vtc_ee65650[0]), // expected_vtbl_contents
+ &(vtt_ee65650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee65650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75650 : virtual dd5650 {
+ int e;
+ virtual void foo(); // _ZN7ee756503fooEv
+ virtual void bar(); // _ZN7ee756503barEv
+ ~ee75650(); // tgen
+ ee75650(); // tgen
+};
+//SIG(1 ee75650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75650 ::foo(){vfunc_called(this, "_ZN7ee756503fooEv");}
+void ee75650 ::bar(){vfunc_called(this, "_ZN7ee756503barEv");}
+ee75650 ::~ee75650(){ note_dtor("ee75650", this);} // tgen
+ee75650 ::ee75650(){ note_ctor("ee75650", this);} // tgen
+
+static void Test_ee75650()
+{
+ extern Class_Descriptor cd_ee75650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee75650, buf);
+ ee75650 *dp, &lv = *(dp=new (buf) ee75650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee75650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee75650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee75650");
+ check_base_class_offset(lv, (cc650*)(dd5650*), ABISELECT(32,16), "ee75650");
+ check_base_class_offset(lv, (dd5650*), ABISELECT(16,8), "ee75650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75650.e");
+ test_class_info(&lv, &cd_ee75650);
+ dp->~ee75650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75650(Test_ee75650, "ee75650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee75650C1Ev();
+extern void _ZN7ee75650D1Ev();
+Name_Map name_map_ee75650[] = {
+ NSPAIR(_ZN7ee75650C1Ev),
+ NSPAIR(_ZN7ee75650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd5650;
+extern VTBL_ENTRY _ZTI6dd5650[];
+extern VTBL_ENTRY _ZTV6dd5650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5650[];
+static Base_Class bases_ee75650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5650, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75650[];
+extern void _ZN7ee756503fooEv();
+extern void _ZN7ee756503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee756503barEv,_ZTv0_n20_N7ee756503barEv)();
+extern void ABISELECT(_ZThn16_N7ee756503barEv,_ZThn8_N7ee756503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756503barEv,_ZTv0_n16_N7ee756503barEv)();
+extern void ABISELECT(_ZThn32_N7ee756503barEv,_ZThn16_N7ee756503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee756503fooEv,_ZTv0_n20_N7ee756503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756503fooEv,_ZThn16_N7ee756503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75650[0]),
+ (VTBL_ENTRY)&_ZN7ee756503fooEv,
+ (VTBL_ENTRY)&_ZN7ee756503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756503barEv,_ZTv0_n20_N7ee756503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756503barEv,_ZTv0_n16_N7ee756503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756503fooEv,_ZTv0_n20_N7ee756503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75650[];
+extern void _ZN6dd56503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5650__7ee75650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&_ZN6dd56503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv)();
+extern void ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv)() __attribute__((weak));
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd5650__7ee75650[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv),
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee75650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee75650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75650[] = {
+ {&(_ZTV7ee75650[5]), 5,20},
+ {&(_ZTV7ee75650[12]), 12,20},
+ {&(_ZTV7ee75650[18]), 18,20},
+ {&(_tg__ZTV6dd5650__7ee75650[4]), 4,5},
+ {&(_tg__ZTV5cc650__6dd5650__7ee75650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee75650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee75650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75650[];
+extern VTBL_ENTRY _ZTV7ee75650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75650[];
+static VTBL_ENTRY alt_thunk_names340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56503barEv,_ZTv0_n16_N6dd56503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56503barEv,_ZThn8_N6dd56503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756503fooEv,_ZTv0_n20_N7ee756503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756503fooEv,_ZThn16_N7ee756503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756503barEv,_ZTv0_n16_N7ee756503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756503barEv,_ZThn16_N7ee756503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756503barEv,_ZTv0_n20_N7ee756503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756503barEv,_ZThn8_N7ee756503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75650 = { "ee75650", // class name
+ bases_ee75650, 4,
+ &(vtc_ee75650[0]), // expected_vtbl_contents
+ &(vtt_ee75650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee75650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75650),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names340,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6650 : cc650 {
+ int d;
+ virtual void bar(); // _ZN6dd66503barEv
+ virtual void foo(); // _ZN6dd66503fooEv
+ ~dd6650(); // tgen
+ dd6650(); // tgen
+};
+//SIG(-1 dd6650) C1{ BC2{ BC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6650 ::bar(){vfunc_called(this, "_ZN6dd66503barEv");}
+void dd6650 ::foo(){vfunc_called(this, "_ZN6dd66503fooEv");}
+dd6650 ::~dd6650(){ note_dtor("dd6650", this);} // tgen
+dd6650 ::dd6650(){ note_ctor("dd6650", this);} // tgen
+
+static void Test_dd6650()
+{
+ extern Class_Descriptor cd_dd6650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(4,6)];
+ init_test(&cd_dd6650, buf);
+ dd6650 *dp, &lv = *(dp=new (buf) dd6650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(24,20), "sizeof(dd6650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(20,16), "dd6650");
+ check_base_class_offset(lv, (bb50*)(cc650*), 0, "dd6650");
+ check_base_class_offset(lv, (cc650*), 0, "dd6650");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6650.d");
+ test_class_info(&lv, &cd_dd6650);
+ dp->~dd6650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6650(Test_dd6650, "dd6650", ABISELECT(24,20));
+
+#else // __cplusplus
+
+extern void _ZN6dd6650C1Ev();
+extern void _ZN6dd6650D1Ev();
+Name_Map name_map_dd6650[] = {
+ NSPAIR(_ZN6dd6650C1Ev),
+ NSPAIR(_ZN6dd6650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd6650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(20,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY vtc_dd6650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd6650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd6650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6650[] = {
+ {&(_ZTV6dd6650[3]), 3,5},
+ {&(_tg__ZTV5cc650__6dd6650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd6650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+Class_Descriptor cd_dd6650 = { "dd6650", // class name
+ bases_dd6650, 3,
+ &(vtc_dd6650[0]), // expected_vtbl_contents
+ &(vtt_dd6650[0]), // expected_vtt_contents
+ ABISELECT(24,20), // object size
+ NSPAIRA(_ZTI6dd6650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6650),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06650 : dd6650 {
+ int e;
+ ~ee06650(); // tgen
+ ee06650(); // tgen
+};
+//SIG(1 ee06650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06650 ::~ee06650(){ note_dtor("ee06650", this);} // tgen
+ee06650 ::ee06650(){ note_ctor("ee06650", this);} // tgen
+
+static void Test_ee06650()
+{
+ extern Class_Descriptor cd_ee06650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee06650, buf);
+ ee06650 *dp, &lv = *(dp=new (buf) ee06650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee06650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(24,20), "ee06650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), 0, "ee06650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), 0, "ee06650");
+ check_base_class_offset(lv, (dd6650*), 0, "ee06650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06650.e");
+ test_class_info(&lv, &cd_ee06650);
+ dp->~ee06650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06650(Test_ee06650, "ee06650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee06650C1Ev();
+extern void _ZN7ee06650D1Ev();
+Name_Map name_map_ee06650[] = {
+ NSPAIR(_ZN7ee06650C1Ev),
+ NSPAIR(_ZN7ee06650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee06650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY vtc_ee06650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee06650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee06650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee06650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee06650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06650[] = {
+ {&(_ZTV7ee06650[3]), 3,5},
+ {&(_tg__ZTV6dd6650__7ee06650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee06650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee06650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06650[];
+extern VTBL_ENTRY _ZTV7ee06650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06650[];
+Class_Descriptor cd_ee06650 = { "ee06650", // class name
+ bases_ee06650, 4,
+ &(vtc_ee06650[0]), // expected_vtbl_contents
+ &(vtt_ee06650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee06650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16650 : virtual dd6650 {
+ int e;
+ ~ee16650(); // tgen
+ ee16650(); // tgen
+};
+//SIG(1 ee16650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16650 ::~ee16650(){ note_dtor("ee16650", this);} // tgen
+ee16650 ::ee16650(){ note_ctor("ee16650", this);} // tgen
+
+static void Test_ee16650()
+{
+ extern Class_Descriptor cd_ee16650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee16650, buf);
+ ee16650 *dp, &lv = *(dp=new (buf) ee16650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee16650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(36,24), "ee16650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), ABISELECT(16,8), "ee16650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), ABISELECT(16,8), "ee16650");
+ check_base_class_offset(lv, (dd6650*), ABISELECT(16,8), "ee16650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16650.e");
+ test_class_info(&lv, &cd_ee16650);
+ dp->~ee16650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16650(Test_ee16650, "ee16650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee16650C1Ev();
+extern void _ZN7ee16650D1Ev();
+Name_Map name_map_ee16650[] = {
+ NSPAIR(_ZN7ee16650C1Ev),
+ NSPAIR(_ZN7ee16650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee16650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY vtc_ee16650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16650[0]),
+ 0,
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee16650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee16650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee16650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee16650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16650[] = {
+ {&(_ZTV7ee16650[4]), 4,11},
+ {&(_ZTV7ee16650[9]), 9,11},
+ {&(_tg__ZTV6dd6650__7ee16650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee16650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee16650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16650[];
+extern VTBL_ENTRY _ZTV7ee16650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16650[];
+Class_Descriptor cd_ee16650 = { "ee16650", // class name
+ bases_ee16650, 4,
+ &(vtc_ee16650[0]), // expected_vtbl_contents
+ &(vtt_ee16650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee16650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16650),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26650 : dd6650 {
+ int e;
+ virtual void foo(); // _ZN7ee266503fooEv
+ ~ee26650(); // tgen
+ ee26650(); // tgen
+};
+//SIG(1 ee26650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26650 ::foo(){vfunc_called(this, "_ZN7ee266503fooEv");}
+ee26650 ::~ee26650(){ note_dtor("ee26650", this);} // tgen
+ee26650 ::ee26650(){ note_ctor("ee26650", this);} // tgen
+
+static void Test_ee26650()
+{
+ extern Class_Descriptor cd_ee26650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee26650, buf);
+ ee26650 *dp, &lv = *(dp=new (buf) ee26650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee26650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(24,20), "ee26650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), 0, "ee26650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), 0, "ee26650");
+ check_base_class_offset(lv, (dd6650*), 0, "ee26650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26650.e");
+ test_class_info(&lv, &cd_ee26650);
+ dp->~ee26650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26650(Test_ee26650, "ee26650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee26650C1Ev();
+extern void _ZN7ee26650D1Ev();
+Name_Map name_map_ee26650[] = {
+ NSPAIR(_ZN7ee26650C1Ev),
+ NSPAIR(_ZN7ee26650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee26650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN7ee266503fooEv();
+static VTBL_ENTRY vtc_ee26650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN7ee266503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee26650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee26650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee26650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee26650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26650[] = {
+ {&(_ZTV7ee26650[3]), 3,5},
+ {&(_tg__ZTV6dd6650__7ee26650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee26650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee26650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26650[];
+extern VTBL_ENTRY _ZTV7ee26650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26650[];
+Class_Descriptor cd_ee26650 = { "ee26650", // class name
+ bases_ee26650, 4,
+ &(vtc_ee26650[0]), // expected_vtbl_contents
+ &(vtt_ee26650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee26650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36650 : virtual dd6650 {
+ int e;
+ virtual void foo(); // _ZN7ee366503fooEv
+ ~ee36650(); // tgen
+ ee36650(); // tgen
+};
+//SIG(1 ee36650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36650 ::foo(){vfunc_called(this, "_ZN7ee366503fooEv");}
+ee36650 ::~ee36650(){ note_dtor("ee36650", this);} // tgen
+ee36650 ::ee36650(){ note_ctor("ee36650", this);} // tgen
+
+static void Test_ee36650()
+{
+ extern Class_Descriptor cd_ee36650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee36650, buf);
+ ee36650 *dp, &lv = *(dp=new (buf) ee36650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee36650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(36,24), "ee36650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), ABISELECT(16,8), "ee36650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), ABISELECT(16,8), "ee36650");
+ check_base_class_offset(lv, (dd6650*), ABISELECT(16,8), "ee36650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36650.e");
+ test_class_info(&lv, &cd_ee36650);
+ dp->~ee36650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36650(Test_ee36650, "ee36650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee36650C1Ev();
+extern void _ZN7ee36650D1Ev();
+Name_Map name_map_ee36650[] = {
+ NSPAIR(_ZN7ee36650C1Ev),
+ NSPAIR(_ZN7ee36650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee36650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36650[];
+extern void _ZN7ee366503fooEv();
+extern void _ZN6dd66503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee366503fooEv,_ZTv0_n20_N7ee366503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366503fooEv,_ZThn8_N7ee366503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36650[0]),
+ (VTBL_ENTRY)&_ZN7ee366503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee366503fooEv,_ZTv0_n20_N7ee366503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee36650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee36650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee36650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36650[] = {
+ {&(_ZTV7ee36650[4]), 4,12},
+ {&(_ZTV7ee36650[10]), 10,12},
+ {&(_tg__ZTV6dd6650__7ee36650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee36650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee36650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36650[];
+extern VTBL_ENTRY _ZTV7ee36650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36650[];
+static VTBL_ENTRY alt_thunk_names341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee366503fooEv,_ZTv0_n20_N7ee366503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366503fooEv,_ZThn8_N7ee366503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36650 = { "ee36650", // class name
+ bases_ee36650, 4,
+ &(vtc_ee36650[0]), // expected_vtbl_contents
+ &(vtt_ee36650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee36650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46650 : dd6650 {
+ int e;
+ virtual void bar(); // _ZN7ee466503barEv
+ ~ee46650(); // tgen
+ ee46650(); // tgen
+};
+//SIG(1 ee46650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46650 ::bar(){vfunc_called(this, "_ZN7ee466503barEv");}
+ee46650 ::~ee46650(){ note_dtor("ee46650", this);} // tgen
+ee46650 ::ee46650(){ note_ctor("ee46650", this);} // tgen
+
+static void Test_ee46650()
+{
+ extern Class_Descriptor cd_ee46650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee46650, buf);
+ ee46650 *dp, &lv = *(dp=new (buf) ee46650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee46650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(24,20), "ee46650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), 0, "ee46650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), 0, "ee46650");
+ check_base_class_offset(lv, (dd6650*), 0, "ee46650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46650.e");
+ test_class_info(&lv, &cd_ee46650);
+ dp->~ee46650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46650(Test_ee46650, "ee46650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee46650C1Ev();
+extern void _ZN7ee46650D1Ev();
+Name_Map name_map_ee46650[] = {
+ NSPAIR(_ZN7ee46650C1Ev),
+ NSPAIR(_ZN7ee46650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee46650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46650[];
+extern void _ZN7ee466503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY vtc_ee46650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46650[0]),
+ (VTBL_ENTRY)&_ZN7ee466503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee46650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee46650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee46650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee46650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46650[] = {
+ {&(_ZTV7ee46650[3]), 3,5},
+ {&(_tg__ZTV6dd6650__7ee46650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee46650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee46650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46650[];
+extern VTBL_ENTRY _ZTV7ee46650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46650[];
+Class_Descriptor cd_ee46650 = { "ee46650", // class name
+ bases_ee46650, 4,
+ &(vtc_ee46650[0]), // expected_vtbl_contents
+ &(vtt_ee46650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee46650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56650 : virtual dd6650 {
+ int e;
+ virtual void bar(); // _ZN7ee566503barEv
+ ~ee56650(); // tgen
+ ee56650(); // tgen
+};
+//SIG(1 ee56650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56650 ::bar(){vfunc_called(this, "_ZN7ee566503barEv");}
+ee56650 ::~ee56650(){ note_dtor("ee56650", this);} // tgen
+ee56650 ::ee56650(){ note_ctor("ee56650", this);} // tgen
+
+static void Test_ee56650()
+{
+ extern Class_Descriptor cd_ee56650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee56650, buf);
+ ee56650 *dp, &lv = *(dp=new (buf) ee56650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee56650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(36,24), "ee56650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), ABISELECT(16,8), "ee56650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), ABISELECT(16,8), "ee56650");
+ check_base_class_offset(lv, (dd6650*), ABISELECT(16,8), "ee56650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56650.e");
+ test_class_info(&lv, &cd_ee56650);
+ dp->~ee56650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56650(Test_ee56650, "ee56650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee56650C1Ev();
+extern void _ZN7ee56650D1Ev();
+Name_Map name_map_ee56650[] = {
+ NSPAIR(_ZN7ee56650C1Ev),
+ NSPAIR(_ZN7ee56650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee56650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56650[];
+extern void _ZN7ee566503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566503barEv,_ZTv0_n16_N7ee566503barEv)();
+extern void ABISELECT(_ZThn16_N7ee566503barEv,_ZThn8_N7ee566503barEv)() __attribute__((weak));
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY vtc_ee56650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56650[0]),
+ (VTBL_ENTRY)&_ZN7ee566503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566503barEv,_ZTv0_n16_N7ee566503barEv),
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee56650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee56650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee56650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee56650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56650[] = {
+ {&(_ZTV7ee56650[4]), 4,12},
+ {&(_ZTV7ee56650[10]), 10,12},
+ {&(_tg__ZTV6dd6650__7ee56650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee56650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee56650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56650[];
+extern VTBL_ENTRY _ZTV7ee56650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56650[];
+static VTBL_ENTRY alt_thunk_names342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566503barEv,_ZTv0_n16_N7ee566503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566503barEv,_ZThn8_N7ee566503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56650 = { "ee56650", // class name
+ bases_ee56650, 4,
+ &(vtc_ee56650[0]), // expected_vtbl_contents
+ &(vtt_ee56650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee56650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56650),12, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66650 : dd6650 {
+ int e;
+ virtual void foo(); // _ZN7ee666503fooEv
+ virtual void bar(); // _ZN7ee666503barEv
+ ~ee66650(); // tgen
+ ee66650(); // tgen
+};
+//SIG(1 ee66650) C1{ BC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66650 ::foo(){vfunc_called(this, "_ZN7ee666503fooEv");}
+void ee66650 ::bar(){vfunc_called(this, "_ZN7ee666503barEv");}
+ee66650 ::~ee66650(){ note_dtor("ee66650", this);} // tgen
+ee66650 ::ee66650(){ note_ctor("ee66650", this);} // tgen
+
+static void Test_ee66650()
+{
+ extern Class_Descriptor cd_ee66650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_ee66650, buf);
+ ee66650 *dp, &lv = *(dp=new (buf) ee66650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(ee66650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(24,20), "ee66650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), 0, "ee66650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), 0, "ee66650");
+ check_base_class_offset(lv, (dd6650*), 0, "ee66650");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66650.e");
+ test_class_info(&lv, &cd_ee66650);
+ dp->~ee66650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66650(Test_ee66650, "ee66650", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN7ee66650C1Ev();
+extern void _ZN7ee66650D1Ev();
+Name_Map name_map_ee66650[] = {
+ NSPAIR(_ZN7ee66650C1Ev),
+ NSPAIR(_ZN7ee66650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee66650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(24,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66650[];
+extern void _ZN7ee666503barEv();
+extern void _ZN7ee666503fooEv();
+static VTBL_ENTRY vtc_ee66650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66650[0]),
+ (VTBL_ENTRY)&_ZN7ee666503barEv,
+ (VTBL_ENTRY)&_ZN7ee666503fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee66650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee66650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee66650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee66650[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66650[] = {
+ {&(_ZTV7ee66650[3]), 3,5},
+ {&(_tg__ZTV6dd6650__7ee66650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee66650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee66650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66650[];
+extern VTBL_ENTRY _ZTV7ee66650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66650[];
+Class_Descriptor cd_ee66650 = { "ee66650", // class name
+ bases_ee66650, 4,
+ &(vtc_ee66650[0]), // expected_vtbl_contents
+ &(vtt_ee66650[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI7ee66650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66650),5, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66650),4, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76650 : virtual dd6650 {
+ int e;
+ virtual void foo(); // _ZN7ee766503fooEv
+ virtual void bar(); // _ZN7ee766503barEv
+ ~ee76650(); // tgen
+ ee76650(); // tgen
+};
+//SIG(1 ee76650) C1{ VBC2{ BC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76650 ::foo(){vfunc_called(this, "_ZN7ee766503fooEv");}
+void ee76650 ::bar(){vfunc_called(this, "_ZN7ee766503barEv");}
+ee76650 ::~ee76650(){ note_dtor("ee76650", this);} // tgen
+ee76650 ::ee76650(){ note_ctor("ee76650", this);} // tgen
+
+static void Test_ee76650()
+{
+ extern Class_Descriptor cd_ee76650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee76650, buf);
+ ee76650 *dp, &lv = *(dp=new (buf) ee76650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee76650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*)(dd6650*), ABISELECT(36,24), "ee76650");
+ check_base_class_offset(lv, (bb50*)(cc650*)(dd6650*), ABISELECT(16,8), "ee76650");
+ check_base_class_offset(lv, (cc650*)(dd6650*), ABISELECT(16,8), "ee76650");
+ check_base_class_offset(lv, (dd6650*), ABISELECT(16,8), "ee76650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76650.e");
+ test_class_info(&lv, &cd_ee76650);
+ dp->~ee76650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76650(Test_ee76650, "ee76650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee76650C1Ev();
+extern void _ZN7ee76650D1Ev();
+Name_Map name_map_ee76650[] = {
+ NSPAIR(_ZN7ee76650C1Ev),
+ NSPAIR(_ZN7ee76650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd6650;
+extern VTBL_ENTRY _ZTI6dd6650[];
+extern VTBL_ENTRY _ZTV6dd6650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6650[];
+static Base_Class bases_ee76650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76650[];
+extern void _ZN7ee766503fooEv();
+extern void _ZN7ee766503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee766503barEv,_ZTv0_n16_N7ee766503barEv)();
+extern void ABISELECT(_ZThn16_N7ee766503barEv,_ZThn8_N7ee766503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee766503fooEv,_ZTv0_n20_N7ee766503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766503fooEv,_ZThn8_N7ee766503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76650[] = {
+ ABISELECT(36,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76650[0]),
+ (VTBL_ENTRY)&_ZN7ee766503fooEv,
+ (VTBL_ENTRY)&_ZN7ee766503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(20,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766503barEv,_ZTv0_n16_N7ee766503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee766503fooEv,_ZTv0_n20_N7ee766503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76650[];
+extern void _ZN6dd66503barEv();
+extern void _ZN6dd66503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6650__7ee76650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6650[0]),
+ (VTBL_ENTRY)&_ZN6dd66503barEv,
+ (VTBL_ENTRY)&_ZN6dd66503fooEv,
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6506dd6650__7ee76650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc6506dd6650__7ee76650[] = {
+ ABISELECT(20,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76650[] = {
+ {&(_ZTV7ee76650[4]), 4,13},
+ {&(_ZTV7ee76650[11]), 11,13},
+ {&(_tg__ZTV6dd6650__7ee76650[3]), 3,5},
+ {&(_tg__ZTV5cc6506dd6650__7ee76650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc6506dd6650__7ee76650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76650[];
+extern VTBL_ENTRY _ZTV7ee76650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76650[];
+static VTBL_ENTRY alt_thunk_names343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee766503fooEv,_ZTv0_n20_N7ee766503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766503fooEv,_ZThn8_N7ee766503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766503barEv,_ZTv0_n16_N7ee766503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766503barEv,_ZThn8_N7ee766503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76650 = { "ee76650", // class name
+ bases_ee76650, 4,
+ &(vtc_ee76650[0]), // expected_vtbl_contents
+ &(vtt_ee76650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee76650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76650),5, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7650 : virtual cc650 {
+ int d;
+ virtual void bar(); // _ZN6dd76503barEv
+ virtual void foo(); // _ZN6dd76503fooEv
+ ~dd7650(); // tgen
+ dd7650(); // tgen
+};
+//SIG(-1 dd7650) C1{ VBC2{ BC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7650 ::bar(){vfunc_called(this, "_ZN6dd76503barEv");}
+void dd7650 ::foo(){vfunc_called(this, "_ZN6dd76503fooEv");}
+dd7650 ::~dd7650(){ note_dtor("dd7650", this);} // tgen
+dd7650 ::dd7650(){ note_ctor("dd7650", this);} // tgen
+
+static void Test_dd7650()
+{
+ extern Class_Descriptor cd_dd7650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd7650, buf);
+ dd7650 *dp, &lv = *(dp=new (buf) dd7650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd7650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,20), "dd7650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,8), "dd7650");
+ check_base_class_offset(lv, (cc650*), ABISELECT(16,8), "dd7650");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7650.d");
+ test_class_info(&lv, &cd_dd7650);
+ dp->~dd7650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7650(Test_dd7650, "dd7650", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd7650C1Ev();
+extern void _ZN6dd7650D1Ev();
+Name_Map name_map_dd7650[] = {
+ NSPAIR(_ZN6dd7650C1Ev),
+ NSPAIR(_ZN6dd7650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+static Base_Class bases_dd7650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__6dd7650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7650[] = {
+ {&(_ZTV6dd7650[4]), 4,13},
+ {&(_ZTV6dd7650[11]), 11,13},
+ {&(_tg__ZTV5cc650__6dd7650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__6dd7650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static VTBL_ENTRY alt_thunk_names344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7650 = { "dd7650", // class name
+ bases_dd7650, 3,
+ &(vtc_dd7650[0]), // expected_vtbl_contents
+ &(vtt_dd7650[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd7650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7650),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07650 : dd7650 {
+ int e;
+ ~ee07650(); // tgen
+ ee07650(); // tgen
+};
+//SIG(1 ee07650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07650 ::~ee07650(){ note_dtor("ee07650", this);} // tgen
+ee07650 ::ee07650(){ note_ctor("ee07650", this);} // tgen
+
+static void Test_ee07650()
+{
+ extern Class_Descriptor cd_ee07650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee07650, buf);
+ ee07650 *dp, &lv = *(dp=new (buf) ee07650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee07650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee07650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee07650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(16,12), "ee07650");
+ check_base_class_offset(lv, (dd7650*), 0, "ee07650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07650.e");
+ test_class_info(&lv, &cd_ee07650);
+ dp->~ee07650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07650(Test_ee07650, "ee07650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee07650C1Ev();
+extern void _ZN7ee07650D1Ev();
+Name_Map name_map_ee07650[] = {
+ NSPAIR(_ZN7ee07650C1Ev),
+ NSPAIR(_ZN7ee07650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee07650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee07650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee07650[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee07650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee07650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07650[] = {
+ {&(_ZTV7ee07650[4]), 4,13},
+ {&(_tg__ZTV6dd7650__7ee07650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee07650[5]), 5,7},
+ {&(_ZTV7ee07650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee07650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee07650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07650[];
+extern VTBL_ENTRY _ZTV7ee07650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07650[];
+static VTBL_ENTRY alt_thunk_names345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07650 = { "ee07650", // class name
+ bases_ee07650, 4,
+ &(vtc_ee07650[0]), // expected_vtbl_contents
+ &(vtt_ee07650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee07650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17650 : virtual dd7650 {
+ int e;
+ ~ee17650(); // tgen
+ ee17650(); // tgen
+};
+//SIG(1 ee17650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17650 ::~ee17650(){ note_dtor("ee17650", this);} // tgen
+ee17650 ::ee17650(){ note_ctor("ee17650", this);} // tgen
+
+static void Test_ee17650()
+{
+ extern Class_Descriptor cd_ee17650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee17650, buf);
+ ee17650 *dp, &lv = *(dp=new (buf) ee17650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee17650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee17650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee17650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(32,16), "ee17650");
+ check_base_class_offset(lv, (dd7650*), ABISELECT(16,8), "ee17650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17650.e");
+ test_class_info(&lv, &cd_ee17650);
+ dp->~ee17650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17650(Test_ee17650, "ee17650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee17650C1Ev();
+extern void _ZN7ee17650D1Ev();
+Name_Map name_map_ee17650[] = {
+ NSPAIR(_ZN7ee17650C1Ev),
+ NSPAIR(_ZN7ee17650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee17650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee17650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17650[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee17650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee17650[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee17650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee17650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17650[] = {
+ {&(_ZTV7ee17650[5]), 5,20},
+ {&(_ZTV7ee17650[11]), 11,20},
+ {&(_ZTV7ee17650[18]), 18,20},
+ {&(_tg__ZTV6dd7650__7ee17650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee17650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee17650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee17650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17650[];
+extern VTBL_ENTRY _ZTV7ee17650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17650[];
+static VTBL_ENTRY alt_thunk_names346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17650 = { "ee17650", // class name
+ bases_ee17650, 4,
+ &(vtc_ee17650[0]), // expected_vtbl_contents
+ &(vtt_ee17650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee17650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17650),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27650 : dd7650 {
+ int e;
+ virtual void foo(); // _ZN7ee276503fooEv
+ ~ee27650(); // tgen
+ ee27650(); // tgen
+};
+//SIG(1 ee27650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27650 ::foo(){vfunc_called(this, "_ZN7ee276503fooEv");}
+ee27650 ::~ee27650(){ note_dtor("ee27650", this);} // tgen
+ee27650 ::ee27650(){ note_ctor("ee27650", this);} // tgen
+
+static void Test_ee27650()
+{
+ extern Class_Descriptor cd_ee27650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee27650, buf);
+ ee27650 *dp, &lv = *(dp=new (buf) ee27650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee27650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee27650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee27650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(16,12), "ee27650");
+ check_base_class_offset(lv, (dd7650*), 0, "ee27650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27650.e");
+ test_class_info(&lv, &cd_ee27650);
+ dp->~ee27650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27650(Test_ee27650, "ee27650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee27650C1Ev();
+extern void _ZN7ee27650D1Ev();
+Name_Map name_map_ee27650[] = {
+ NSPAIR(_ZN7ee27650C1Ev),
+ NSPAIR(_ZN7ee27650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee27650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN7ee276503fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee276503fooEv,_ZTv0_n20_N7ee276503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276503fooEv,_ZThn12_N7ee276503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN7ee276503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee276503fooEv,_ZTv0_n20_N7ee276503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee27650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee27650[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee27650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee27650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27650[] = {
+ {&(_ZTV7ee27650[4]), 4,13},
+ {&(_tg__ZTV6dd7650__7ee27650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee27650[5]), 5,7},
+ {&(_ZTV7ee27650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee27650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee27650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27650[];
+extern VTBL_ENTRY _ZTV7ee27650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27650[];
+static VTBL_ENTRY alt_thunk_names347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee276503fooEv,_ZTv0_n20_N7ee276503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276503fooEv,_ZThn12_N7ee276503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27650 = { "ee27650", // class name
+ bases_ee27650, 4,
+ &(vtc_ee27650[0]), // expected_vtbl_contents
+ &(vtt_ee27650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee27650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37650 : virtual dd7650 {
+ int e;
+ virtual void foo(); // _ZN7ee376503fooEv
+ ~ee37650(); // tgen
+ ee37650(); // tgen
+};
+//SIG(1 ee37650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37650 ::foo(){vfunc_called(this, "_ZN7ee376503fooEv");}
+ee37650 ::~ee37650(){ note_dtor("ee37650", this);} // tgen
+ee37650 ::ee37650(){ note_ctor("ee37650", this);} // tgen
+
+static void Test_ee37650()
+{
+ extern Class_Descriptor cd_ee37650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee37650, buf);
+ ee37650 *dp, &lv = *(dp=new (buf) ee37650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee37650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee37650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee37650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(32,16), "ee37650");
+ check_base_class_offset(lv, (dd7650*), ABISELECT(16,8), "ee37650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37650.e");
+ test_class_info(&lv, &cd_ee37650);
+ dp->~ee37650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37650(Test_ee37650, "ee37650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee37650C1Ev();
+extern void _ZN7ee37650D1Ev();
+Name_Map name_map_ee37650[] = {
+ NSPAIR(_ZN7ee37650C1Ev),
+ NSPAIR(_ZN7ee37650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee37650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee37650[];
+extern void _ZN7ee376503fooEv();
+extern void _ZN6dd76503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee376503fooEv,_ZTv0_n24_N7ee376503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376503fooEv,_ZThn8_N7ee376503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee376503fooEv,_ZTv0_n20_N7ee376503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376503fooEv,_ZThn16_N7ee376503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37650[0]),
+ (VTBL_ENTRY)&_ZN7ee376503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee376503fooEv,_ZTv0_n24_N7ee376503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376503fooEv,_ZTv0_n20_N7ee376503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee37650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee37650[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee37650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee37650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37650[] = {
+ {&(_ZTV7ee37650[5]), 5,21},
+ {&(_ZTV7ee37650[12]), 12,21},
+ {&(_ZTV7ee37650[19]), 19,21},
+ {&(_tg__ZTV6dd7650__7ee37650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee37650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee37650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee37650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37650[];
+extern VTBL_ENTRY _ZTV7ee37650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37650[];
+static VTBL_ENTRY alt_thunk_names348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376503fooEv,_ZTv0_n20_N7ee376503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376503fooEv,_ZThn16_N7ee376503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee376503fooEv,_ZTv0_n24_N7ee376503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376503fooEv,_ZThn8_N7ee376503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37650 = { "ee37650", // class name
+ bases_ee37650, 4,
+ &(vtc_ee37650[0]), // expected_vtbl_contents
+ &(vtt_ee37650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee37650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37650),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47650 : dd7650 {
+ int e;
+ virtual void bar(); // _ZN7ee476503barEv
+ ~ee47650(); // tgen
+ ee47650(); // tgen
+};
+//SIG(1 ee47650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47650 ::bar(){vfunc_called(this, "_ZN7ee476503barEv");}
+ee47650 ::~ee47650(){ note_dtor("ee47650", this);} // tgen
+ee47650 ::ee47650(){ note_ctor("ee47650", this);} // tgen
+
+static void Test_ee47650()
+{
+ extern Class_Descriptor cd_ee47650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee47650, buf);
+ ee47650 *dp, &lv = *(dp=new (buf) ee47650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee47650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee47650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee47650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(16,12), "ee47650");
+ check_base_class_offset(lv, (dd7650*), 0, "ee47650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47650.e");
+ test_class_info(&lv, &cd_ee47650);
+ dp->~ee47650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47650(Test_ee47650, "ee47650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee47650C1Ev();
+extern void _ZN7ee47650D1Ev();
+Name_Map name_map_ee47650[] = {
+ NSPAIR(_ZN7ee47650C1Ev),
+ NSPAIR(_ZN7ee47650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee47650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47650[];
+extern void _ZN7ee476503barEv();
+extern void _ZN6dd76503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee476503barEv,_ZTv0_n16_N7ee476503barEv)();
+extern void ABISELECT(_ZThn16_N7ee476503barEv,_ZThn12_N7ee476503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47650[0]),
+ (VTBL_ENTRY)&_ZN7ee476503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476503barEv,_ZTv0_n16_N7ee476503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee47650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee47650[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee47650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee47650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47650[] = {
+ {&(_ZTV7ee47650[4]), 4,13},
+ {&(_tg__ZTV6dd7650__7ee47650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee47650[5]), 5,7},
+ {&(_ZTV7ee47650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee47650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee47650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47650[];
+extern VTBL_ENTRY _ZTV7ee47650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47650[];
+static VTBL_ENTRY alt_thunk_names349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476503barEv,_ZTv0_n16_N7ee476503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476503barEv,_ZThn12_N7ee476503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47650 = { "ee47650", // class name
+ bases_ee47650, 4,
+ &(vtc_ee47650[0]), // expected_vtbl_contents
+ &(vtt_ee47650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee47650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names349,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57650 : virtual dd7650 {
+ int e;
+ virtual void bar(); // _ZN7ee576503barEv
+ ~ee57650(); // tgen
+ ee57650(); // tgen
+};
+//SIG(1 ee57650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57650 ::bar(){vfunc_called(this, "_ZN7ee576503barEv");}
+ee57650 ::~ee57650(){ note_dtor("ee57650", this);} // tgen
+ee57650 ::ee57650(){ note_ctor("ee57650", this);} // tgen
+
+static void Test_ee57650()
+{
+ extern Class_Descriptor cd_ee57650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee57650, buf);
+ ee57650 *dp, &lv = *(dp=new (buf) ee57650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee57650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee57650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee57650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(32,16), "ee57650");
+ check_base_class_offset(lv, (dd7650*), ABISELECT(16,8), "ee57650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57650.e");
+ test_class_info(&lv, &cd_ee57650);
+ dp->~ee57650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57650(Test_ee57650, "ee57650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee57650C1Ev();
+extern void _ZN7ee57650D1Ev();
+Name_Map name_map_ee57650[] = {
+ NSPAIR(_ZN7ee57650C1Ev),
+ NSPAIR(_ZN7ee57650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee57650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee57650[];
+extern void _ZN7ee576503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee576503barEv,_ZTv0_n20_N7ee576503barEv)();
+extern void ABISELECT(_ZThn16_N7ee576503barEv,_ZThn8_N7ee576503barEv)() __attribute__((weak));
+extern void _ZN6dd76503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576503barEv,_ZTv0_n16_N7ee576503barEv)();
+extern void ABISELECT(_ZThn32_N7ee576503barEv,_ZThn16_N7ee576503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57650[0]),
+ (VTBL_ENTRY)&_ZN7ee576503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee576503barEv,_ZTv0_n20_N7ee576503barEv),
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576503barEv,_ZTv0_n16_N7ee576503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee57650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee57650[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee57650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee57650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57650[] = {
+ {&(_ZTV7ee57650[5]), 5,21},
+ {&(_ZTV7ee57650[12]), 12,21},
+ {&(_ZTV7ee57650[19]), 19,21},
+ {&(_tg__ZTV6dd7650__7ee57650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee57650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee57650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee57650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57650[];
+extern VTBL_ENTRY _ZTV7ee57650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57650[];
+static VTBL_ENTRY alt_thunk_names350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576503barEv,_ZTv0_n16_N7ee576503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576503barEv,_ZThn16_N7ee576503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee576503barEv,_ZTv0_n20_N7ee576503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576503barEv,_ZThn8_N7ee576503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57650 = { "ee57650", // class name
+ bases_ee57650, 4,
+ &(vtc_ee57650[0]), // expected_vtbl_contents
+ &(vtt_ee57650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee57650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57650),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67650 : dd7650 {
+ int e;
+ virtual void foo(); // _ZN7ee676503fooEv
+ virtual void bar(); // _ZN7ee676503barEv
+ ~ee67650(); // tgen
+ ee67650(); // tgen
+};
+//SIG(1 ee67650) C1{ BC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67650 ::foo(){vfunc_called(this, "_ZN7ee676503fooEv");}
+void ee67650 ::bar(){vfunc_called(this, "_ZN7ee676503barEv");}
+ee67650 ::~ee67650(){ note_dtor("ee67650", this);} // tgen
+ee67650 ::ee67650(){ note_ctor("ee67650", this);} // tgen
+
+static void Test_ee67650()
+{
+ extern Class_Descriptor cd_ee67650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee67650, buf);
+ ee67650 *dp, &lv = *(dp=new (buf) ee67650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee67650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(32,24), "ee67650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(16,12), "ee67650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(16,12), "ee67650");
+ check_base_class_offset(lv, (dd7650*), 0, "ee67650");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67650.e");
+ test_class_info(&lv, &cd_ee67650);
+ dp->~ee67650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67650(Test_ee67650, "ee67650", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee67650C1Ev();
+extern void _ZN7ee67650D1Ev();
+Name_Map name_map_ee67650[] = {
+ NSPAIR(_ZN7ee67650C1Ev),
+ NSPAIR(_ZN7ee67650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee67650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(32,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67650[];
+extern void _ZN7ee676503barEv();
+extern void _ZN7ee676503fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee676503barEv,_ZTv0_n16_N7ee676503barEv)();
+extern void ABISELECT(_ZThn16_N7ee676503barEv,_ZThn12_N7ee676503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee676503fooEv,_ZTv0_n20_N7ee676503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676503fooEv,_ZThn12_N7ee676503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67650[0]),
+ (VTBL_ENTRY)&_ZN7ee676503barEv,
+ (VTBL_ENTRY)&_ZN7ee676503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676503barEv,_ZTv0_n16_N7ee676503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee676503fooEv,_ZTv0_n20_N7ee676503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee67650[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee67650[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee67650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee67650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67650[] = {
+ {&(_ZTV7ee67650[4]), 4,13},
+ {&(_tg__ZTV6dd7650__7ee67650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee67650[5]), 5,7},
+ {&(_ZTV7ee67650[11]), 11,13},
+ {&(_tg__ZTV5cc650__7ee67650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee67650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67650[];
+extern VTBL_ENTRY _ZTV7ee67650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67650[];
+static VTBL_ENTRY alt_thunk_names351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn12_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn12_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee676503fooEv,_ZTv0_n20_N7ee676503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676503fooEv,_ZThn12_N7ee676503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676503barEv,_ZTv0_n16_N7ee676503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676503barEv,_ZThn12_N7ee676503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67650 = { "ee67650", // class name
+ bases_ee67650, 4,
+ &(vtc_ee67650[0]), // expected_vtbl_contents
+ &(vtt_ee67650[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee67650),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67650),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67650),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77650 : virtual dd7650 {
+ int e;
+ virtual void foo(); // _ZN7ee776503fooEv
+ virtual void bar(); // _ZN7ee776503barEv
+ ~ee77650(); // tgen
+ ee77650(); // tgen
+};
+//SIG(1 ee77650) C1{ VBC2{ VBC3{ BC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77650 ::foo(){vfunc_called(this, "_ZN7ee776503fooEv");}
+void ee77650 ::bar(){vfunc_called(this, "_ZN7ee776503barEv");}
+ee77650 ::~ee77650(){ note_dtor("ee77650", this);} // tgen
+ee77650 ::ee77650(){ note_ctor("ee77650", this);} // tgen
+
+static void Test_ee77650()
+{
+ extern Class_Descriptor cd_ee77650;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee77650, buf);
+ ee77650 *dp, &lv = *(dp=new (buf) ee77650());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee77650)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77650)");
+ check_base_class_offset(lv, (aa0*)(bb50*)(cc650*), ABISELECT(48,28), "ee77650");
+ check_base_class_offset(lv, (bb50*)(cc650*), ABISELECT(32,16), "ee77650");
+ check_base_class_offset(lv, (cc650*)(dd7650*), ABISELECT(32,16), "ee77650");
+ check_base_class_offset(lv, (dd7650*), ABISELECT(16,8), "ee77650");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77650.e");
+ test_class_info(&lv, &cd_ee77650);
+ dp->~ee77650();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77650(Test_ee77650, "ee77650", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee77650C1Ev();
+extern void _ZN7ee77650D1Ev();
+Name_Map name_map_ee77650[] = {
+ NSPAIR(_ZN7ee77650C1Ev),
+ NSPAIR(_ZN7ee77650D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc650;
+extern VTBL_ENTRY _ZTI5cc650[];
+extern VTBL_ENTRY _ZTV5cc650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc650[];
+extern Class_Descriptor cd_dd7650;
+extern VTBL_ENTRY _ZTI6dd7650[];
+extern VTBL_ENTRY _ZTV6dd7650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7650[];
+static Base_Class bases_ee77650[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, 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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc650, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7650, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee77650[];
+extern void _ZN7ee776503fooEv();
+extern void _ZN7ee776503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee776503barEv,_ZTv0_n20_N7ee776503barEv)();
+extern void ABISELECT(_ZThn16_N7ee776503barEv,_ZThn8_N7ee776503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee776503fooEv,_ZTv0_n24_N7ee776503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776503fooEv,_ZThn8_N7ee776503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776503barEv,_ZTv0_n16_N7ee776503barEv)();
+extern void ABISELECT(_ZThn32_N7ee776503barEv,_ZThn16_N7ee776503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776503fooEv,_ZTv0_n20_N7ee776503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776503fooEv,_ZThn16_N7ee776503fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77650[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77650[0]),
+ (VTBL_ENTRY)&_ZN7ee776503fooEv,
+ (VTBL_ENTRY)&_ZN7ee776503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776503barEv,_ZTv0_n20_N7ee776503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee776503fooEv,_ZTv0_n24_N7ee776503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776503barEv,_ZTv0_n16_N7ee776503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776503fooEv,_ZTv0_n20_N7ee776503fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77650[];
+extern void _ZN6dd76503barEv();
+extern void _ZN6dd76503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7650__7ee77650[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&_ZN6dd76503barEv,
+ (VTBL_ENTRY)&_ZN6dd76503fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv)();
+extern void ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc650__6dd7650__7ee77650[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7650[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv),
+};
+extern void _ZN5cc6503barEv();
+extern void _ZN5cc6503fooEv();
+static VTBL_ENTRY _tg__ZTV5cc650__7ee77650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc650[0]),
+ (VTBL_ENTRY)&_ZN5cc6503barEv,
+ (VTBL_ENTRY)&_ZN5cc6503fooEv,
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb505cc650__7ee77650[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77650[] = {
+ {&(_ZTV7ee77650[5]), 5,22},
+ {&(_ZTV7ee77650[13]), 13,22},
+ {&(_ZTV7ee77650[20]), 20,22},
+ {&(_tg__ZTV6dd7650__7ee77650[4]), 4,6},
+ {&(_tg__ZTV5cc650__6dd7650__7ee77650[5]), 5,7},
+ {&(_tg__ZTV5cc650__7ee77650[3]), 3,5},
+ {&(_tg__ZTV4bb505cc650__7ee77650[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77650[];
+extern VTBL_ENTRY _ZTV7ee77650[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77650[];
+static VTBL_ENTRY alt_thunk_names352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76503fooEv,_ZTv0_n20_N6dd76503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503fooEv,_ZThn8_N6dd76503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76503barEv,_ZTv0_n16_N6dd76503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76503barEv,_ZThn8_N6dd76503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776503fooEv,_ZTv0_n20_N7ee776503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776503fooEv,_ZThn16_N7ee776503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776503barEv,_ZTv0_n16_N7ee776503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776503barEv,_ZThn16_N7ee776503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee776503fooEv,_ZTv0_n24_N7ee776503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776503fooEv,_ZThn8_N7ee776503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776503barEv,_ZTv0_n20_N7ee776503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776503barEv,_ZThn8_N7ee776503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77650 = { "ee77650", // class name
+ bases_ee77650, 4,
+ &(vtc_ee77650[0]), // expected_vtbl_contents
+ &(vtt_ee77650[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee77650),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77650),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77650),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc750 : virtual bb50 {
+ int c;
+ virtual void foo(); // _ZN5cc7503fooEv
+ virtual void bar(); // _ZN5cc7503barEv
+ ~cc750(); // tgen
+ cc750(); // tgen
+};
+//SIG(-1 cc750) C1{ VBC2{ VBC3{ Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc750 ::foo(){vfunc_called(this, "_ZN5cc7503fooEv");}
+void cc750 ::bar(){vfunc_called(this, "_ZN5cc7503barEv");}
+cc750 ::~cc750(){ note_dtor("cc750", this);} // tgen
+cc750 ::cc750(){ note_ctor("cc750", this);} // tgen
+
+static void Test_cc750()
+{
+ extern Class_Descriptor cd_cc750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc750, buf);
+ cc750 *dp, &lv = *(dp=new (buf) cc750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,16), "cc750");
+ check_base_class_offset(lv, (bb50*), ABISELECT(16,8), "cc750");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc750.c");
+ test_class_info(&lv, &cd_cc750);
+ dp->~cc750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc750(Test_cc750, "cc750", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc750C1Ev();
+extern void _ZN5cc750D1Ev();
+Name_Map name_map_cc750[] = {
+ NSPAIR(_ZN5cc750C1Ev),
+ NSPAIR(_ZN5cc750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+static Base_Class bases_cc750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, 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
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV5cc750[];
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_cc750[] = {
+ {&(_ZTV5cc750[4]), 4,11},
+ {&(_ZTV5cc750[10]), 10,11},
+ {&(_tg__ZTV4bb50__5cc750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static VTBL_ENTRY alt_thunk_names353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc750 = { "cc750", // class name
+ bases_cc750, 2,
+ &(vtc_cc750[0]), // expected_vtbl_contents
+ &(vtt_cc750[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc750),3, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0750 : cc750 {
+ int d;
+ ~dd0750(); // tgen
+ dd0750(); // tgen
+};
+//SIG(-1 dd0750) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0750 ::~dd0750(){ note_dtor("dd0750", this);} // tgen
+dd0750 ::dd0750(){ note_ctor("dd0750", this);} // tgen
+
+static void Test_dd0750()
+{
+ extern Class_Descriptor cd_dd0750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd0750, buf);
+ dd0750 *dp, &lv = *(dp=new (buf) dd0750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd0750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd0750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(16,12), "dd0750");
+ check_base_class_offset(lv, (cc750*), 0, "dd0750");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0750.d");
+ test_class_info(&lv, &cd_dd0750);
+ dp->~dd0750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0750(Test_dd0750, "dd0750", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0750C1Ev();
+extern void _ZN6dd0750D1Ev();
+Name_Map name_map_dd0750[] = {
+ NSPAIR(_ZN6dd0750C1Ev),
+ NSPAIR(_ZN6dd0750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd0750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd0750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd0750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd0750[] = {
+ {&(_ZTV6dd0750[4]), 4,11},
+ {&(_tg__ZTV5cc750__6dd0750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd0750[4]), 4,5},
+ {&(_ZTV6dd0750[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd0750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static VTBL_ENTRY alt_thunk_names354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0750 = { "dd0750", // class name
+ bases_dd0750, 3,
+ &(vtc_dd0750[0]), // expected_vtbl_contents
+ &(vtt_dd0750[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd0750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0750),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00750 : dd0750 {
+ int e;
+ ~ee00750(); // tgen
+ ee00750(); // tgen
+};
+//SIG(1 ee00750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00750 ::~ee00750(){ note_dtor("ee00750", this);} // tgen
+ee00750 ::ee00750(){ note_ctor("ee00750", this);} // tgen
+
+static void Test_ee00750()
+{
+ extern Class_Descriptor cd_ee00750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00750, buf);
+ ee00750 *dp, &lv = *(dp=new (buf) ee00750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee00750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(24,16), "ee00750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), 0, "ee00750");
+ check_base_class_offset(lv, (dd0750*), 0, "ee00750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00750.e");
+ test_class_info(&lv, &cd_ee00750);
+ dp->~ee00750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00750(Test_ee00750, "ee00750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00750C1Ev();
+extern void _ZN7ee00750D1Ev();
+Name_Map name_map_ee00750[] = {
+ NSPAIR(_ZN7ee00750C1Ev),
+ NSPAIR(_ZN7ee00750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee00750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee00750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee00750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee00750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee00750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee00750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee00750[] = {
+ {&(_ZTV7ee00750[4]), 4,11},
+ {&(_tg__ZTV6dd0750__7ee00750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee00750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee00750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee00750[4]), 4,5},
+ {&(_ZTV7ee00750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee00750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00750[];
+extern VTBL_ENTRY _ZTV7ee00750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00750[];
+static VTBL_ENTRY alt_thunk_names355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00750 = { "ee00750", // class name
+ bases_ee00750, 4,
+ &(vtc_ee00750[0]), // expected_vtbl_contents
+ &(vtt_ee00750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10750 : virtual dd0750 {
+ int e;
+ ~ee10750(); // tgen
+ ee10750(); // tgen
+};
+//SIG(1 ee10750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10750 ::~ee10750(){ note_dtor("ee10750", this);} // tgen
+ee10750 ::ee10750(){ note_ctor("ee10750", this);} // tgen
+
+static void Test_ee10750()
+{
+ extern Class_Descriptor cd_ee10750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee10750, buf);
+ ee10750 *dp, &lv = *(dp=new (buf) ee10750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee10750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee10750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(32,20), "ee10750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), ABISELECT(16,8), "ee10750");
+ check_base_class_offset(lv, (dd0750*), ABISELECT(16,8), "ee10750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10750.e");
+ test_class_info(&lv, &cd_ee10750);
+ dp->~ee10750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10750(Test_ee10750, "ee10750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10750C1Ev();
+extern void _ZN7ee10750D1Ev();
+Name_Map name_map_ee10750[] = {
+ NSPAIR(_ZN7ee10750C1Ev),
+ NSPAIR(_ZN7ee10750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee10750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee10750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10750[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee10750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee10750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee10750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee10750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee10750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee10750[] = {
+ {&(_ZTV7ee10750[5]), 5,18},
+ {&(_ZTV7ee10750[11]), 11,18},
+ {&(_ZTV7ee10750[17]), 17,18},
+ {&(_tg__ZTV6dd0750__7ee10750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee10750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee10750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee10750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee10750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10750[];
+extern VTBL_ENTRY _ZTV7ee10750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10750[];
+static VTBL_ENTRY alt_thunk_names356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10750 = { "ee10750", // class name
+ bases_ee10750, 4,
+ &(vtc_ee10750[0]), // expected_vtbl_contents
+ &(vtt_ee10750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee10750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20750 : dd0750 {
+ int e;
+ virtual void foo(); // _ZN7ee207503fooEv
+ ~ee20750(); // tgen
+ ee20750(); // tgen
+};
+//SIG(1 ee20750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20750 ::foo(){vfunc_called(this, "_ZN7ee207503fooEv");}
+ee20750 ::~ee20750(){ note_dtor("ee20750", this);} // tgen
+ee20750 ::ee20750(){ note_ctor("ee20750", this);} // tgen
+
+static void Test_ee20750()
+{
+ extern Class_Descriptor cd_ee20750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20750, buf);
+ ee20750 *dp, &lv = *(dp=new (buf) ee20750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee20750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(24,16), "ee20750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), 0, "ee20750");
+ check_base_class_offset(lv, (dd0750*), 0, "ee20750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20750.e");
+ test_class_info(&lv, &cd_ee20750);
+ dp->~ee20750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20750(Test_ee20750, "ee20750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20750C1Ev();
+extern void _ZN7ee20750D1Ev();
+Name_Map name_map_ee20750[] = {
+ NSPAIR(_ZN7ee20750C1Ev),
+ NSPAIR(_ZN7ee20750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee20750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20750[];
+extern void _ZN7ee207503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20750[0]),
+ (VTBL_ENTRY)&_ZN7ee207503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee20750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee20750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee20750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee20750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee20750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee20750[] = {
+ {&(_ZTV7ee20750[4]), 4,11},
+ {&(_tg__ZTV6dd0750__7ee20750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee20750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee20750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee20750[4]), 4,5},
+ {&(_ZTV7ee20750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee20750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20750[];
+extern VTBL_ENTRY _ZTV7ee20750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20750[];
+static VTBL_ENTRY alt_thunk_names357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20750 = { "ee20750", // class name
+ bases_ee20750, 4,
+ &(vtc_ee20750[0]), // expected_vtbl_contents
+ &(vtt_ee20750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30750 : virtual dd0750 {
+ int e;
+ virtual void foo(); // _ZN7ee307503fooEv
+ ~ee30750(); // tgen
+ ee30750(); // tgen
+};
+//SIG(1 ee30750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30750 ::foo(){vfunc_called(this, "_ZN7ee307503fooEv");}
+ee30750 ::~ee30750(){ note_dtor("ee30750", this);} // tgen
+ee30750 ::ee30750(){ note_ctor("ee30750", this);} // tgen
+
+static void Test_ee30750()
+{
+ extern Class_Descriptor cd_ee30750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee30750, buf);
+ ee30750 *dp, &lv = *(dp=new (buf) ee30750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee30750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee30750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(32,20), "ee30750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), ABISELECT(16,8), "ee30750");
+ check_base_class_offset(lv, (dd0750*), ABISELECT(16,8), "ee30750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30750.e");
+ test_class_info(&lv, &cd_ee30750);
+ dp->~ee30750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30750(Test_ee30750, "ee30750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30750C1Ev();
+extern void _ZN7ee30750D1Ev();
+Name_Map name_map_ee30750[] = {
+ NSPAIR(_ZN7ee30750C1Ev),
+ NSPAIR(_ZN7ee30750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee30750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee30750[];
+extern void _ZN7ee307503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee307503fooEv,_ZTv0_n20_N7ee307503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307503fooEv,_ZThn8_N7ee307503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30750[0]),
+ (VTBL_ENTRY)&_ZN7ee307503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee307503fooEv,_ZTv0_n20_N7ee307503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee30750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee30750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee30750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee30750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee30750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee30750[] = {
+ {&(_ZTV7ee30750[5]), 5,19},
+ {&(_ZTV7ee30750[12]), 12,19},
+ {&(_ZTV7ee30750[18]), 18,19},
+ {&(_tg__ZTV6dd0750__7ee30750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee30750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee30750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee30750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee30750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30750[];
+extern VTBL_ENTRY _ZTV7ee30750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30750[];
+static VTBL_ENTRY alt_thunk_names358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee307503fooEv,_ZTv0_n20_N7ee307503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307503fooEv,_ZThn8_N7ee307503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30750 = { "ee30750", // class name
+ bases_ee30750, 4,
+ &(vtc_ee30750[0]), // expected_vtbl_contents
+ &(vtt_ee30750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee30750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40750 : dd0750 {
+ int e;
+ virtual void bar(); // _ZN7ee407503barEv
+ ~ee40750(); // tgen
+ ee40750(); // tgen
+};
+//SIG(1 ee40750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40750 ::bar(){vfunc_called(this, "_ZN7ee407503barEv");}
+ee40750 ::~ee40750(){ note_dtor("ee40750", this);} // tgen
+ee40750 ::ee40750(){ note_ctor("ee40750", this);} // tgen
+
+static void Test_ee40750()
+{
+ extern Class_Descriptor cd_ee40750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40750, buf);
+ ee40750 *dp, &lv = *(dp=new (buf) ee40750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee40750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(24,16), "ee40750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), 0, "ee40750");
+ check_base_class_offset(lv, (dd0750*), 0, "ee40750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40750.e");
+ test_class_info(&lv, &cd_ee40750);
+ dp->~ee40750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40750(Test_ee40750, "ee40750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40750C1Ev();
+extern void _ZN7ee40750D1Ev();
+Name_Map name_map_ee40750[] = {
+ NSPAIR(_ZN7ee40750C1Ev),
+ NSPAIR(_ZN7ee40750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee40750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN7ee407503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee407503barEv,_ZTv0_n16_N7ee407503barEv)();
+extern void ABISELECT(_ZThn24_N7ee407503barEv,_ZThn16_N7ee407503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN7ee407503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407503barEv,_ZTv0_n16_N7ee407503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee40750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee40750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee40750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee40750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee40750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee40750[] = {
+ {&(_ZTV7ee40750[4]), 4,11},
+ {&(_tg__ZTV6dd0750__7ee40750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee40750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee40750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee40750[4]), 4,5},
+ {&(_ZTV7ee40750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee40750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40750[];
+extern VTBL_ENTRY _ZTV7ee40750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40750[];
+static VTBL_ENTRY alt_thunk_names359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407503barEv,_ZTv0_n16_N7ee407503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407503barEv,_ZThn16_N7ee407503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40750 = { "ee40750", // class name
+ bases_ee40750, 4,
+ &(vtc_ee40750[0]), // expected_vtbl_contents
+ &(vtt_ee40750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50750 : virtual dd0750 {
+ int e;
+ virtual void bar(); // _ZN7ee507503barEv
+ ~ee50750(); // tgen
+ ee50750(); // tgen
+};
+//SIG(1 ee50750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50750 ::bar(){vfunc_called(this, "_ZN7ee507503barEv");}
+ee50750 ::~ee50750(){ note_dtor("ee50750", this);} // tgen
+ee50750 ::ee50750(){ note_ctor("ee50750", this);} // tgen
+
+static void Test_ee50750()
+{
+ extern Class_Descriptor cd_ee50750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee50750, buf);
+ ee50750 *dp, &lv = *(dp=new (buf) ee50750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee50750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee50750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(32,20), "ee50750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), ABISELECT(16,8), "ee50750");
+ check_base_class_offset(lv, (dd0750*), ABISELECT(16,8), "ee50750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50750.e");
+ test_class_info(&lv, &cd_ee50750);
+ dp->~ee50750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50750(Test_ee50750, "ee50750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50750C1Ev();
+extern void _ZN7ee50750D1Ev();
+Name_Map name_map_ee50750[] = {
+ NSPAIR(_ZN7ee50750C1Ev),
+ NSPAIR(_ZN7ee50750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee50750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee50750[];
+extern void _ZN7ee507503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee507503barEv,_ZTv0_n24_N7ee507503barEv)();
+extern void ABISELECT(_ZThn16_N7ee507503barEv,_ZThn8_N7ee507503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507503barEv,_ZTv0_n16_N7ee507503barEv)();
+extern void ABISELECT(_ZThn32_N7ee507503barEv,_ZThn20_N7ee507503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50750[0]),
+ (VTBL_ENTRY)&_ZN7ee507503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee507503barEv,_ZTv0_n24_N7ee507503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507503barEv,_ZTv0_n16_N7ee507503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee50750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee50750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee50750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee50750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee50750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee50750[] = {
+ {&(_ZTV7ee50750[5]), 5,19},
+ {&(_ZTV7ee50750[12]), 12,19},
+ {&(_ZTV7ee50750[18]), 18,19},
+ {&(_tg__ZTV6dd0750__7ee50750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee50750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee50750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee50750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee50750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50750[];
+extern VTBL_ENTRY _ZTV7ee50750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50750[];
+static VTBL_ENTRY alt_thunk_names360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507503barEv,_ZTv0_n16_N7ee507503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507503barEv,_ZThn20_N7ee507503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee507503barEv,_ZTv0_n24_N7ee507503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507503barEv,_ZThn8_N7ee507503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50750 = { "ee50750", // class name
+ bases_ee50750, 4,
+ &(vtc_ee50750[0]), // expected_vtbl_contents
+ &(vtt_ee50750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee50750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60750 : dd0750 {
+ int e;
+ virtual void foo(); // _ZN7ee607503fooEv
+ virtual void bar(); // _ZN7ee607503barEv
+ ~ee60750(); // tgen
+ ee60750(); // tgen
+};
+//SIG(1 ee60750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60750 ::foo(){vfunc_called(this, "_ZN7ee607503fooEv");}
+void ee60750 ::bar(){vfunc_called(this, "_ZN7ee607503barEv");}
+ee60750 ::~ee60750(){ note_dtor("ee60750", this);} // tgen
+ee60750 ::ee60750(){ note_ctor("ee60750", this);} // tgen
+
+static void Test_ee60750()
+{
+ extern Class_Descriptor cd_ee60750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60750, buf);
+ ee60750 *dp, &lv = *(dp=new (buf) ee60750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee60750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(24,16), "ee60750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), 0, "ee60750");
+ check_base_class_offset(lv, (dd0750*), 0, "ee60750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60750.e");
+ test_class_info(&lv, &cd_ee60750);
+ dp->~ee60750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60750(Test_ee60750, "ee60750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60750C1Ev();
+extern void _ZN7ee60750D1Ev();
+Name_Map name_map_ee60750[] = {
+ NSPAIR(_ZN7ee60750C1Ev),
+ NSPAIR(_ZN7ee60750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee60750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60750[];
+extern void _ZN7ee607503fooEv();
+extern void _ZN7ee607503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee607503barEv,_ZTv0_n16_N7ee607503barEv)();
+extern void ABISELECT(_ZThn24_N7ee607503barEv,_ZThn16_N7ee607503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60750[0]),
+ (VTBL_ENTRY)&_ZN7ee607503fooEv,
+ (VTBL_ENTRY)&_ZN7ee607503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607503barEv,_ZTv0_n16_N7ee607503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee60750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee60750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee60750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee60750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee60750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee60750[] = {
+ {&(_ZTV7ee60750[4]), 4,11},
+ {&(_tg__ZTV6dd0750__7ee60750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee60750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee60750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee60750[4]), 4,5},
+ {&(_ZTV7ee60750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee60750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60750[];
+extern VTBL_ENTRY _ZTV7ee60750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60750[];
+static VTBL_ENTRY alt_thunk_names361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607503barEv,_ZTv0_n16_N7ee607503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607503barEv,_ZThn16_N7ee607503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60750 = { "ee60750", // class name
+ bases_ee60750, 4,
+ &(vtc_ee60750[0]), // expected_vtbl_contents
+ &(vtt_ee60750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70750 : virtual dd0750 {
+ int e;
+ virtual void foo(); // _ZN7ee707503fooEv
+ virtual void bar(); // _ZN7ee707503barEv
+ ~ee70750(); // tgen
+ ee70750(); // tgen
+};
+//SIG(1 ee70750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70750 ::foo(){vfunc_called(this, "_ZN7ee707503fooEv");}
+void ee70750 ::bar(){vfunc_called(this, "_ZN7ee707503barEv");}
+ee70750 ::~ee70750(){ note_dtor("ee70750", this);} // tgen
+ee70750 ::ee70750(){ note_ctor("ee70750", this);} // tgen
+
+static void Test_ee70750()
+{
+ extern Class_Descriptor cd_ee70750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee70750, buf);
+ ee70750 *dp, &lv = *(dp=new (buf) ee70750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee70750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee70750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd0750*), ABISELECT(32,20), "ee70750");
+ check_base_class_offset(lv, (cc750*)(dd0750*), ABISELECT(16,8), "ee70750");
+ check_base_class_offset(lv, (dd0750*), ABISELECT(16,8), "ee70750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70750.e");
+ test_class_info(&lv, &cd_ee70750);
+ dp->~ee70750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70750(Test_ee70750, "ee70750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70750C1Ev();
+extern void _ZN7ee70750D1Ev();
+Name_Map name_map_ee70750[] = {
+ NSPAIR(_ZN7ee70750C1Ev),
+ NSPAIR(_ZN7ee70750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd0750;
+extern VTBL_ENTRY _ZTI6dd0750[];
+extern VTBL_ENTRY _ZTV6dd0750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0750[];
+static Base_Class bases_ee70750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee70750[];
+extern void _ZN7ee707503fooEv();
+extern void _ZN7ee707503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee707503fooEv,_ZTv0_n20_N7ee707503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707503fooEv,_ZThn8_N7ee707503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee707503barEv,_ZTv0_n24_N7ee707503barEv)();
+extern void ABISELECT(_ZThn16_N7ee707503barEv,_ZThn8_N7ee707503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707503barEv,_ZTv0_n16_N7ee707503barEv)();
+extern void ABISELECT(_ZThn32_N7ee707503barEv,_ZThn20_N7ee707503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70750[0]),
+ (VTBL_ENTRY)&_ZN7ee707503fooEv,
+ (VTBL_ENTRY)&_ZN7ee707503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707503fooEv,_ZTv0_n20_N7ee707503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee707503barEv,_ZTv0_n24_N7ee707503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707503barEv,_ZTv0_n16_N7ee707503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd0750__7ee70750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd0750__7ee70750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd0750__7ee70750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd0750__7ee70750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee70750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee70750[] = {
+ {&(_ZTV7ee70750[5]), 5,20},
+ {&(_ZTV7ee70750[13]), 13,20},
+ {&(_ZTV7ee70750[19]), 19,20},
+ {&(_tg__ZTV6dd0750__7ee70750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd0750__7ee70750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd0750__7ee70750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd0750__7ee70750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee70750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70750[];
+extern VTBL_ENTRY _ZTV7ee70750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70750[];
+static VTBL_ENTRY alt_thunk_names362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707503barEv,_ZTv0_n16_N7ee707503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707503barEv,_ZThn20_N7ee707503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee707503barEv,_ZTv0_n24_N7ee707503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707503barEv,_ZThn8_N7ee707503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707503fooEv,_ZTv0_n20_N7ee707503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707503fooEv,_ZThn8_N7ee707503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70750 = { "ee70750", // class name
+ bases_ee70750, 4,
+ &(vtc_ee70750[0]), // expected_vtbl_contents
+ &(vtt_ee70750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee70750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1750 : virtual cc750 {
+ int d;
+ ~dd1750(); // tgen
+ dd1750(); // tgen
+};
+//SIG(-1 dd1750) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1750 ::~dd1750(){ note_dtor("dd1750", this);} // tgen
+dd1750 ::dd1750(){ note_ctor("dd1750", this);} // tgen
+
+static void Test_dd1750()
+{
+ extern Class_Descriptor cd_dd1750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1750, buf);
+ dd1750 *dp, &lv = *(dp=new (buf) dd1750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd1750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,16), "dd1750");
+ check_base_class_offset(lv, (cc750*), ABISELECT(16,8), "dd1750");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1750.d");
+ test_class_info(&lv, &cd_dd1750);
+ dp->~dd1750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1750(Test_dd1750, "dd1750", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1750C1Ev();
+extern void _ZN6dd1750D1Ev();
+Name_Map name_map_dd1750[] = {
+ NSPAIR(_ZN6dd1750C1Ev),
+ NSPAIR(_ZN6dd1750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd1750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd1750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd1750[] = {
+ {&(_ZTV6dd1750[5]), 5,18},
+ {&(_ZTV6dd1750[11]), 11,18},
+ {&(_ZTV6dd1750[17]), 17,18},
+ {&(_tg__ZTV5cc750__6dd1750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd1750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd1750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static VTBL_ENTRY alt_thunk_names363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1750 = { "dd1750", // class name
+ bases_dd1750, 3,
+ &(vtc_dd1750[0]), // expected_vtbl_contents
+ &(vtt_dd1750[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1750),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01750 : dd1750 {
+ int e;
+ ~ee01750(); // tgen
+ ee01750(); // tgen
+};
+//SIG(1 ee01750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01750 ::~ee01750(){ note_dtor("ee01750", this);} // tgen
+ee01750 ::ee01750(){ note_ctor("ee01750", this);} // tgen
+
+static void Test_ee01750()
+{
+ extern Class_Descriptor cd_ee01750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01750, buf);
+ ee01750 *dp, &lv = *(dp=new (buf) ee01750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee01750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee01750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(16,12), "ee01750");
+ check_base_class_offset(lv, (dd1750*), 0, "ee01750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01750.e");
+ test_class_info(&lv, &cd_ee01750);
+ dp->~ee01750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01750(Test_ee01750, "ee01750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01750C1Ev();
+extern void _ZN7ee01750D1Ev();
+Name_Map name_map_ee01750[] = {
+ NSPAIR(_ZN7ee01750C1Ev),
+ NSPAIR(_ZN7ee01750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee01750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01750[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee01750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee01750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee01750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee01750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee01750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee01750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee01750[] = {
+ {&(_ZTV7ee01750[5]), 5,18},
+ {&(_tg__ZTV6dd1750__7ee01750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee01750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee01750[4]), 4,5},
+ {&(_ZTV7ee01750[11]), 11,18},
+ {&(_ZTV7ee01750[17]), 17,18},
+ {&(_tg__ZTV5cc750__7ee01750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee01750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee01750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01750[];
+extern VTBL_ENTRY _ZTV7ee01750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01750[];
+static VTBL_ENTRY alt_thunk_names364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01750 = { "ee01750", // class name
+ bases_ee01750, 4,
+ &(vtc_ee01750[0]), // expected_vtbl_contents
+ &(vtt_ee01750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11750 : virtual dd1750 {
+ int e;
+ ~ee11750(); // tgen
+ ee11750(); // tgen
+};
+//SIG(1 ee11750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11750 ::~ee11750(){ note_dtor("ee11750", this);} // tgen
+ee11750 ::ee11750(){ note_ctor("ee11750", this);} // tgen
+
+static void Test_ee11750()
+{
+ extern Class_Descriptor cd_ee11750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11750, buf);
+ ee11750 *dp, &lv = *(dp=new (buf) ee11750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee11750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee11750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(32,16), "ee11750");
+ check_base_class_offset(lv, (dd1750*), ABISELECT(16,8), "ee11750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11750.e");
+ test_class_info(&lv, &cd_ee11750);
+ dp->~ee11750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11750(Test_ee11750, "ee11750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11750C1Ev();
+extern void _ZN7ee11750D1Ev();
+Name_Map name_map_ee11750[] = {
+ NSPAIR(_ZN7ee11750C1Ev),
+ NSPAIR(_ZN7ee11750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee11750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI7ee11750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11750[0]),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11750[0]),
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee11750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee11750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee11750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee11750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee11750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee11750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee11750[] = {
+ {&(_ZTV7ee11750[6]), 6,24},
+ {&(_ZTV7ee11750[11]), 11,24},
+ {&(_ZTV7ee11750[17]), 17,24},
+ {&(_ZTV7ee11750[23]), 23,24},
+ {&(_tg__ZTV6dd1750__7ee11750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee11750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee11750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee11750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee11750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee11750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11750[];
+extern VTBL_ENTRY _ZTV7ee11750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11750[];
+static VTBL_ENTRY alt_thunk_names365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11750 = { "ee11750", // class name
+ bases_ee11750, 4,
+ &(vtc_ee11750[0]), // expected_vtbl_contents
+ &(vtt_ee11750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11750),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21750 : dd1750 {
+ int e;
+ virtual void foo(); // _ZN7ee217503fooEv
+ ~ee21750(); // tgen
+ ee21750(); // tgen
+};
+//SIG(1 ee21750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21750 ::foo(){vfunc_called(this, "_ZN7ee217503fooEv");}
+ee21750 ::~ee21750(){ note_dtor("ee21750", this);} // tgen
+ee21750 ::ee21750(){ note_ctor("ee21750", this);} // tgen
+
+static void Test_ee21750()
+{
+ extern Class_Descriptor cd_ee21750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21750, buf);
+ ee21750 *dp, &lv = *(dp=new (buf) ee21750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee21750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee21750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(16,12), "ee21750");
+ check_base_class_offset(lv, (dd1750*), 0, "ee21750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21750.e");
+ test_class_info(&lv, &cd_ee21750);
+ dp->~ee21750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21750(Test_ee21750, "ee21750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21750C1Ev();
+extern void _ZN7ee21750D1Ev();
+Name_Map name_map_ee21750[] = {
+ NSPAIR(_ZN7ee21750C1Ev),
+ NSPAIR(_ZN7ee21750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee21750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21750[];
+extern void _ZN7ee217503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee217503fooEv,_ZTv0_n20_N7ee217503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217503fooEv,_ZThn12_N7ee217503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21750[0]),
+ (VTBL_ENTRY)&_ZN7ee217503fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee217503fooEv,_ZTv0_n20_N7ee217503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee21750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee21750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee21750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee21750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee21750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee21750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee21750[] = {
+ {&(_ZTV7ee21750[5]), 5,19},
+ {&(_tg__ZTV6dd1750__7ee21750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee21750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee21750[4]), 4,5},
+ {&(_ZTV7ee21750[12]), 12,19},
+ {&(_ZTV7ee21750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee21750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee21750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee21750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21750[];
+extern VTBL_ENTRY _ZTV7ee21750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21750[];
+static VTBL_ENTRY alt_thunk_names366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee217503fooEv,_ZTv0_n20_N7ee217503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217503fooEv,_ZThn12_N7ee217503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21750 = { "ee21750", // class name
+ bases_ee21750, 4,
+ &(vtc_ee21750[0]), // expected_vtbl_contents
+ &(vtt_ee21750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names366,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31750 : virtual dd1750 {
+ int e;
+ virtual void foo(); // _ZN7ee317503fooEv
+ ~ee31750(); // tgen
+ ee31750(); // tgen
+};
+//SIG(1 ee31750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31750 ::foo(){vfunc_called(this, "_ZN7ee317503fooEv");}
+ee31750 ::~ee31750(){ note_dtor("ee31750", this);} // tgen
+ee31750 ::ee31750(){ note_ctor("ee31750", this);} // tgen
+
+static void Test_ee31750()
+{
+ extern Class_Descriptor cd_ee31750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31750, buf);
+ ee31750 *dp, &lv = *(dp=new (buf) ee31750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee31750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee31750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(32,16), "ee31750");
+ check_base_class_offset(lv, (dd1750*), ABISELECT(16,8), "ee31750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31750.e");
+ test_class_info(&lv, &cd_ee31750);
+ dp->~ee31750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31750(Test_ee31750, "ee31750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31750C1Ev();
+extern void _ZN7ee31750D1Ev();
+Name_Map name_map_ee31750[] = {
+ NSPAIR(_ZN7ee31750C1Ev),
+ NSPAIR(_ZN7ee31750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee31750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31750[];
+extern void _ZN7ee317503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee317503fooEv,_ZTv0_n20_N7ee317503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317503fooEv,_ZThn16_N7ee317503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31750[0]),
+ (VTBL_ENTRY)&_ZN7ee317503fooEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31750[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee317503fooEv,_ZTv0_n20_N7ee317503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee31750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee31750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee31750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee31750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee31750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee31750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee31750[] = {
+ {&(_ZTV7ee31750[6]), 6,25},
+ {&(_ZTV7ee31750[12]), 12,25},
+ {&(_ZTV7ee31750[18]), 18,25},
+ {&(_ZTV7ee31750[24]), 24,25},
+ {&(_tg__ZTV6dd1750__7ee31750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee31750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee31750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee31750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee31750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee31750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31750[];
+extern VTBL_ENTRY _ZTV7ee31750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31750[];
+static VTBL_ENTRY alt_thunk_names367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee317503fooEv,_ZTv0_n20_N7ee317503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317503fooEv,_ZThn16_N7ee317503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31750 = { "ee31750", // class name
+ bases_ee31750, 4,
+ &(vtc_ee31750[0]), // expected_vtbl_contents
+ &(vtt_ee31750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31750),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41750 : dd1750 {
+ int e;
+ virtual void bar(); // _ZN7ee417503barEv
+ ~ee41750(); // tgen
+ ee41750(); // tgen
+};
+//SIG(1 ee41750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41750 ::bar(){vfunc_called(this, "_ZN7ee417503barEv");}
+ee41750 ::~ee41750(){ note_dtor("ee41750", this);} // tgen
+ee41750 ::ee41750(){ note_ctor("ee41750", this);} // tgen
+
+static void Test_ee41750()
+{
+ extern Class_Descriptor cd_ee41750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41750, buf);
+ ee41750 *dp, &lv = *(dp=new (buf) ee41750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee41750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee41750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(16,12), "ee41750");
+ check_base_class_offset(lv, (dd1750*), 0, "ee41750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41750.e");
+ test_class_info(&lv, &cd_ee41750);
+ dp->~ee41750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41750(Test_ee41750, "ee41750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41750C1Ev();
+extern void _ZN7ee41750D1Ev();
+Name_Map name_map_ee41750[] = {
+ NSPAIR(_ZN7ee41750C1Ev),
+ NSPAIR(_ZN7ee41750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee41750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41750[];
+extern void _ZN7ee417503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee417503barEv,_ZTv0_n24_N7ee417503barEv)();
+extern void ABISELECT(_ZThn16_N7ee417503barEv,_ZThn12_N7ee417503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417503barEv,_ZTv0_n16_N7ee417503barEv)();
+extern void ABISELECT(_ZThn32_N7ee417503barEv,_ZThn20_N7ee417503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41750[0]),
+ (VTBL_ENTRY)&_ZN7ee417503barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee417503barEv,_ZTv0_n24_N7ee417503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417503barEv,_ZTv0_n16_N7ee417503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee41750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee41750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee41750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee41750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee41750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee41750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee41750[] = {
+ {&(_ZTV7ee41750[5]), 5,19},
+ {&(_tg__ZTV6dd1750__7ee41750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee41750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee41750[4]), 4,5},
+ {&(_ZTV7ee41750[12]), 12,19},
+ {&(_ZTV7ee41750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee41750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee41750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee41750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41750[];
+extern VTBL_ENTRY _ZTV7ee41750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41750[];
+static VTBL_ENTRY alt_thunk_names368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417503barEv,_ZTv0_n16_N7ee417503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417503barEv,_ZThn20_N7ee417503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee417503barEv,_ZTv0_n24_N7ee417503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417503barEv,_ZThn12_N7ee417503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41750 = { "ee41750", // class name
+ bases_ee41750, 4,
+ &(vtc_ee41750[0]), // expected_vtbl_contents
+ &(vtt_ee41750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51750 : virtual dd1750 {
+ int e;
+ virtual void bar(); // _ZN7ee517503barEv
+ ~ee51750(); // tgen
+ ee51750(); // tgen
+};
+//SIG(1 ee51750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51750 ::bar(){vfunc_called(this, "_ZN7ee517503barEv");}
+ee51750 ::~ee51750(){ note_dtor("ee51750", this);} // tgen
+ee51750 ::ee51750(){ note_ctor("ee51750", this);} // tgen
+
+static void Test_ee51750()
+{
+ extern Class_Descriptor cd_ee51750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51750, buf);
+ ee51750 *dp, &lv = *(dp=new (buf) ee51750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee51750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee51750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(32,16), "ee51750");
+ check_base_class_offset(lv, (dd1750*), ABISELECT(16,8), "ee51750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51750.e");
+ test_class_info(&lv, &cd_ee51750);
+ dp->~ee51750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51750(Test_ee51750, "ee51750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51750C1Ev();
+extern void _ZN7ee51750D1Ev();
+Name_Map name_map_ee51750[] = {
+ NSPAIR(_ZN7ee51750C1Ev),
+ NSPAIR(_ZN7ee51750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee51750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51750[];
+extern void _ZN7ee517503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee517503barEv,_ZTv0_n24_N7ee517503barEv)();
+extern void ABISELECT(_ZThn32_N7ee517503barEv,_ZThn16_N7ee517503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517503barEv,_ZTv0_n16_N7ee517503barEv)();
+extern void ABISELECT(_ZThn48_N7ee517503barEv,_ZThn24_N7ee517503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51750[0]),
+ (VTBL_ENTRY)&_ZN7ee517503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51750[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee517503barEv,_ZTv0_n24_N7ee517503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517503barEv,_ZTv0_n16_N7ee517503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee51750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee51750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee51750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee51750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee51750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee51750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee51750[] = {
+ {&(_ZTV7ee51750[6]), 6,25},
+ {&(_ZTV7ee51750[12]), 12,25},
+ {&(_ZTV7ee51750[18]), 18,25},
+ {&(_ZTV7ee51750[24]), 24,25},
+ {&(_tg__ZTV6dd1750__7ee51750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee51750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee51750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee51750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee51750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee51750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51750[];
+extern VTBL_ENTRY _ZTV7ee51750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51750[];
+static VTBL_ENTRY alt_thunk_names369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517503barEv,_ZTv0_n16_N7ee517503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517503barEv,_ZThn24_N7ee517503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee517503barEv,_ZTv0_n24_N7ee517503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517503barEv,_ZThn16_N7ee517503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51750 = { "ee51750", // class name
+ bases_ee51750, 4,
+ &(vtc_ee51750[0]), // expected_vtbl_contents
+ &(vtt_ee51750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51750),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61750 : dd1750 {
+ int e;
+ virtual void foo(); // _ZN7ee617503fooEv
+ virtual void bar(); // _ZN7ee617503barEv
+ ~ee61750(); // tgen
+ ee61750(); // tgen
+};
+//SIG(1 ee61750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61750 ::foo(){vfunc_called(this, "_ZN7ee617503fooEv");}
+void ee61750 ::bar(){vfunc_called(this, "_ZN7ee617503barEv");}
+ee61750 ::~ee61750(){ note_dtor("ee61750", this);} // tgen
+ee61750 ::ee61750(){ note_ctor("ee61750", this);} // tgen
+
+static void Test_ee61750()
+{
+ extern Class_Descriptor cd_ee61750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61750, buf);
+ ee61750 *dp, &lv = *(dp=new (buf) ee61750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee61750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee61750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(16,12), "ee61750");
+ check_base_class_offset(lv, (dd1750*), 0, "ee61750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61750.e");
+ test_class_info(&lv, &cd_ee61750);
+ dp->~ee61750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61750(Test_ee61750, "ee61750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61750C1Ev();
+extern void _ZN7ee61750D1Ev();
+Name_Map name_map_ee61750[] = {
+ NSPAIR(_ZN7ee61750C1Ev),
+ NSPAIR(_ZN7ee61750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee61750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61750[];
+extern void _ZN7ee617503fooEv();
+extern void _ZN7ee617503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee617503fooEv,_ZTv0_n20_N7ee617503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617503fooEv,_ZThn12_N7ee617503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee617503barEv,_ZTv0_n24_N7ee617503barEv)();
+extern void ABISELECT(_ZThn16_N7ee617503barEv,_ZThn12_N7ee617503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617503barEv,_ZTv0_n16_N7ee617503barEv)();
+extern void ABISELECT(_ZThn32_N7ee617503barEv,_ZThn20_N7ee617503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61750[0]),
+ (VTBL_ENTRY)&_ZN7ee617503fooEv,
+ (VTBL_ENTRY)&_ZN7ee617503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617503fooEv,_ZTv0_n20_N7ee617503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee617503barEv,_ZTv0_n24_N7ee617503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617503barEv,_ZTv0_n16_N7ee617503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee61750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee61750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee61750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee61750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee61750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee61750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee61750[] = {
+ {&(_ZTV7ee61750[5]), 5,20},
+ {&(_tg__ZTV6dd1750__7ee61750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee61750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee61750[4]), 4,5},
+ {&(_ZTV7ee61750[13]), 13,20},
+ {&(_ZTV7ee61750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee61750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee61750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee61750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61750[];
+extern VTBL_ENTRY _ZTV7ee61750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61750[];
+static VTBL_ENTRY alt_thunk_names370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617503barEv,_ZTv0_n16_N7ee617503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617503barEv,_ZThn20_N7ee617503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee617503barEv,_ZTv0_n24_N7ee617503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617503barEv,_ZThn12_N7ee617503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617503fooEv,_ZTv0_n20_N7ee617503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617503fooEv,_ZThn12_N7ee617503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61750 = { "ee61750", // class name
+ bases_ee61750, 4,
+ &(vtc_ee61750[0]), // expected_vtbl_contents
+ &(vtt_ee61750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71750 : virtual dd1750 {
+ int e;
+ virtual void foo(); // _ZN7ee717503fooEv
+ virtual void bar(); // _ZN7ee717503barEv
+ ~ee71750(); // tgen
+ ee71750(); // tgen
+};
+//SIG(1 ee71750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71750 ::foo(){vfunc_called(this, "_ZN7ee717503fooEv");}
+void ee71750 ::bar(){vfunc_called(this, "_ZN7ee717503barEv");}
+ee71750 ::~ee71750(){ note_dtor("ee71750", this);} // tgen
+ee71750 ::ee71750(){ note_ctor("ee71750", this);} // tgen
+
+static void Test_ee71750()
+{
+ extern Class_Descriptor cd_ee71750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71750, buf);
+ ee71750 *dp, &lv = *(dp=new (buf) ee71750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee71750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee71750");
+ check_base_class_offset(lv, (cc750*)(dd1750*), ABISELECT(32,16), "ee71750");
+ check_base_class_offset(lv, (dd1750*), ABISELECT(16,8), "ee71750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71750.e");
+ test_class_info(&lv, &cd_ee71750);
+ dp->~ee71750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71750(Test_ee71750, "ee71750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71750C1Ev();
+extern void _ZN7ee71750D1Ev();
+Name_Map name_map_ee71750[] = {
+ NSPAIR(_ZN7ee71750C1Ev),
+ NSPAIR(_ZN7ee71750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd1750;
+extern VTBL_ENTRY _ZTI6dd1750[];
+extern VTBL_ENTRY _ZTV6dd1750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1750[];
+static Base_Class bases_ee71750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1750, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71750[];
+extern void _ZN7ee717503fooEv();
+extern void _ZN7ee717503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee717503fooEv,_ZTv0_n20_N7ee717503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717503fooEv,_ZThn16_N7ee717503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee717503barEv,_ZTv0_n24_N7ee717503barEv)();
+extern void ABISELECT(_ZThn32_N7ee717503barEv,_ZThn16_N7ee717503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717503barEv,_ZTv0_n16_N7ee717503barEv)();
+extern void ABISELECT(_ZThn48_N7ee717503barEv,_ZThn24_N7ee717503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71750[0]),
+ (VTBL_ENTRY)&_ZN7ee717503fooEv,
+ (VTBL_ENTRY)&_ZN7ee717503barEv,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71750[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717503fooEv,_ZTv0_n20_N7ee717503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee717503barEv,_ZTv0_n24_N7ee717503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717503barEv,_ZTv0_n16_N7ee717503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71750[];
+static VTBL_ENTRY _tg__ZTV6dd1750__7ee71750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd1750__7ee71750[] = {
+ 0,
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd1750__7ee71750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee71750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee71750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee71750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee71750[] = {
+ {&(_ZTV7ee71750[6]), 6,26},
+ {&(_ZTV7ee71750[13]), 13,26},
+ {&(_ZTV7ee71750[19]), 19,26},
+ {&(_ZTV7ee71750[25]), 25,26},
+ {&(_tg__ZTV6dd1750__7ee71750[5]), 5,5},
+ {&(_tg__ZTV5cc750__6dd1750__7ee71750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd1750__7ee71750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee71750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee71750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee71750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71750[];
+extern VTBL_ENTRY _ZTV7ee71750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71750[];
+static VTBL_ENTRY alt_thunk_names371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717503barEv,_ZTv0_n16_N7ee717503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717503barEv,_ZThn24_N7ee717503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee717503barEv,_ZTv0_n24_N7ee717503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717503barEv,_ZThn16_N7ee717503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717503fooEv,_ZTv0_n20_N7ee717503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717503fooEv,_ZThn16_N7ee717503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71750 = { "ee71750", // class name
+ bases_ee71750, 4,
+ &(vtc_ee71750[0]), // expected_vtbl_contents
+ &(vtt_ee71750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71750),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2750 : cc750 {
+ int d;
+ virtual void foo(); // _ZN6dd27503fooEv
+ ~dd2750(); // tgen
+ dd2750(); // tgen
+};
+//SIG(-1 dd2750) C1{ BC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2750 ::foo(){vfunc_called(this, "_ZN6dd27503fooEv");}
+dd2750 ::~dd2750(){ note_dtor("dd2750", this);} // tgen
+dd2750 ::dd2750(){ note_ctor("dd2750", this);} // tgen
+
+static void Test_dd2750()
+{
+ extern Class_Descriptor cd_dd2750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd2750, buf);
+ dd2750 *dp, &lv = *(dp=new (buf) dd2750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd2750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd2750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(16,12), "dd2750");
+ check_base_class_offset(lv, (cc750*), 0, "dd2750");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2750.d");
+ test_class_info(&lv, &cd_dd2750);
+ dp->~dd2750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2750(Test_dd2750, "dd2750", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2750C1Ev();
+extern void _ZN6dd2750D1Ev();
+Name_Map name_map_dd2750[] = {
+ NSPAIR(_ZN6dd2750C1Ev),
+ NSPAIR(_ZN6dd2750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd2750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd2750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd2750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd2750[] = {
+ {&(_ZTV6dd2750[4]), 4,11},
+ {&(_tg__ZTV5cc750__6dd2750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd2750[4]), 4,5},
+ {&(_ZTV6dd2750[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd2750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static VTBL_ENTRY alt_thunk_names372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2750 = { "dd2750", // class name
+ bases_dd2750, 3,
+ &(vtc_dd2750[0]), // expected_vtbl_contents
+ &(vtt_dd2750[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd2750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2750),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02750 : dd2750 {
+ int e;
+ ~ee02750(); // tgen
+ ee02750(); // tgen
+};
+//SIG(1 ee02750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02750 ::~ee02750(){ note_dtor("ee02750", this);} // tgen
+ee02750 ::ee02750(){ note_ctor("ee02750", this);} // tgen
+
+static void Test_ee02750()
+{
+ extern Class_Descriptor cd_ee02750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02750, buf);
+ ee02750 *dp, &lv = *(dp=new (buf) ee02750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee02750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(24,16), "ee02750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), 0, "ee02750");
+ check_base_class_offset(lv, (dd2750*), 0, "ee02750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02750.e");
+ test_class_info(&lv, &cd_ee02750);
+ dp->~ee02750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02750(Test_ee02750, "ee02750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02750C1Ev();
+extern void _ZN7ee02750D1Ev();
+Name_Map name_map_ee02750[] = {
+ NSPAIR(_ZN7ee02750C1Ev),
+ NSPAIR(_ZN7ee02750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee02750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee02750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee02750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee02750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee02750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee02750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee02750[] = {
+ {&(_ZTV7ee02750[4]), 4,11},
+ {&(_tg__ZTV6dd2750__7ee02750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee02750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee02750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee02750[4]), 4,5},
+ {&(_ZTV7ee02750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee02750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02750[];
+extern VTBL_ENTRY _ZTV7ee02750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02750[];
+static VTBL_ENTRY alt_thunk_names373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02750 = { "ee02750", // class name
+ bases_ee02750, 4,
+ &(vtc_ee02750[0]), // expected_vtbl_contents
+ &(vtt_ee02750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12750 : virtual dd2750 {
+ int e;
+ ~ee12750(); // tgen
+ ee12750(); // tgen
+};
+//SIG(1 ee12750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12750 ::~ee12750(){ note_dtor("ee12750", this);} // tgen
+ee12750 ::ee12750(){ note_ctor("ee12750", this);} // tgen
+
+static void Test_ee12750()
+{
+ extern Class_Descriptor cd_ee12750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee12750, buf);
+ ee12750 *dp, &lv = *(dp=new (buf) ee12750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee12750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee12750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(32,20), "ee12750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), ABISELECT(16,8), "ee12750");
+ check_base_class_offset(lv, (dd2750*), ABISELECT(16,8), "ee12750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12750.e");
+ test_class_info(&lv, &cd_ee12750);
+ dp->~ee12750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12750(Test_ee12750, "ee12750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12750C1Ev();
+extern void _ZN7ee12750D1Ev();
+Name_Map name_map_ee12750[] = {
+ NSPAIR(_ZN7ee12750C1Ev),
+ NSPAIR(_ZN7ee12750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee12750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee12750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12750[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee12750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee12750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee12750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee12750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee12750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee12750[] = {
+ {&(_ZTV7ee12750[5]), 5,18},
+ {&(_ZTV7ee12750[11]), 11,18},
+ {&(_ZTV7ee12750[17]), 17,18},
+ {&(_tg__ZTV6dd2750__7ee12750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee12750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee12750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee12750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee12750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12750[];
+extern VTBL_ENTRY _ZTV7ee12750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12750[];
+static VTBL_ENTRY alt_thunk_names374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12750 = { "ee12750", // class name
+ bases_ee12750, 4,
+ &(vtc_ee12750[0]), // expected_vtbl_contents
+ &(vtt_ee12750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee12750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22750 : dd2750 {
+ int e;
+ virtual void foo(); // _ZN7ee227503fooEv
+ ~ee22750(); // tgen
+ ee22750(); // tgen
+};
+//SIG(1 ee22750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22750 ::foo(){vfunc_called(this, "_ZN7ee227503fooEv");}
+ee22750 ::~ee22750(){ note_dtor("ee22750", this);} // tgen
+ee22750 ::ee22750(){ note_ctor("ee22750", this);} // tgen
+
+static void Test_ee22750()
+{
+ extern Class_Descriptor cd_ee22750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22750, buf);
+ ee22750 *dp, &lv = *(dp=new (buf) ee22750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee22750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(24,16), "ee22750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), 0, "ee22750");
+ check_base_class_offset(lv, (dd2750*), 0, "ee22750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22750.e");
+ test_class_info(&lv, &cd_ee22750);
+ dp->~ee22750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22750(Test_ee22750, "ee22750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22750C1Ev();
+extern void _ZN7ee22750D1Ev();
+Name_Map name_map_ee22750[] = {
+ NSPAIR(_ZN7ee22750C1Ev),
+ NSPAIR(_ZN7ee22750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee22750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22750[];
+extern void _ZN7ee227503fooEv();
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22750[0]),
+ (VTBL_ENTRY)&_ZN7ee227503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee22750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee22750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee22750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee22750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee22750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee22750[] = {
+ {&(_ZTV7ee22750[4]), 4,11},
+ {&(_tg__ZTV6dd2750__7ee22750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee22750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee22750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee22750[4]), 4,5},
+ {&(_ZTV7ee22750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee22750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22750[];
+extern VTBL_ENTRY _ZTV7ee22750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22750[];
+static VTBL_ENTRY alt_thunk_names375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22750 = { "ee22750", // class name
+ bases_ee22750, 4,
+ &(vtc_ee22750[0]), // expected_vtbl_contents
+ &(vtt_ee22750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32750 : virtual dd2750 {
+ int e;
+ virtual void foo(); // _ZN7ee327503fooEv
+ ~ee32750(); // tgen
+ ee32750(); // tgen
+};
+//SIG(1 ee32750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32750 ::foo(){vfunc_called(this, "_ZN7ee327503fooEv");}
+ee32750 ::~ee32750(){ note_dtor("ee32750", this);} // tgen
+ee32750 ::ee32750(){ note_ctor("ee32750", this);} // tgen
+
+static void Test_ee32750()
+{
+ extern Class_Descriptor cd_ee32750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee32750, buf);
+ ee32750 *dp, &lv = *(dp=new (buf) ee32750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee32750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee32750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(32,20), "ee32750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), ABISELECT(16,8), "ee32750");
+ check_base_class_offset(lv, (dd2750*), ABISELECT(16,8), "ee32750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32750.e");
+ test_class_info(&lv, &cd_ee32750);
+ dp->~ee32750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32750(Test_ee32750, "ee32750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32750C1Ev();
+extern void _ZN7ee32750D1Ev();
+Name_Map name_map_ee32750[] = {
+ NSPAIR(_ZN7ee32750C1Ev),
+ NSPAIR(_ZN7ee32750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee32750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee32750[];
+extern void _ZN7ee327503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee327503fooEv,_ZTv0_n20_N7ee327503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327503fooEv,_ZThn8_N7ee327503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32750[0]),
+ (VTBL_ENTRY)&_ZN7ee327503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee327503fooEv,_ZTv0_n20_N7ee327503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee32750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee32750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee32750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee32750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee32750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee32750[] = {
+ {&(_ZTV7ee32750[5]), 5,19},
+ {&(_ZTV7ee32750[12]), 12,19},
+ {&(_ZTV7ee32750[18]), 18,19},
+ {&(_tg__ZTV6dd2750__7ee32750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee32750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee32750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee32750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee32750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32750[];
+extern VTBL_ENTRY _ZTV7ee32750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32750[];
+static VTBL_ENTRY alt_thunk_names376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee327503fooEv,_ZTv0_n20_N7ee327503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327503fooEv,_ZThn8_N7ee327503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32750 = { "ee32750", // class name
+ bases_ee32750, 4,
+ &(vtc_ee32750[0]), // expected_vtbl_contents
+ &(vtt_ee32750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee32750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42750 : dd2750 {
+ int e;
+ virtual void bar(); // _ZN7ee427503barEv
+ ~ee42750(); // tgen
+ ee42750(); // tgen
+};
+//SIG(1 ee42750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42750 ::bar(){vfunc_called(this, "_ZN7ee427503barEv");}
+ee42750 ::~ee42750(){ note_dtor("ee42750", this);} // tgen
+ee42750 ::ee42750(){ note_ctor("ee42750", this);} // tgen
+
+static void Test_ee42750()
+{
+ extern Class_Descriptor cd_ee42750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42750, buf);
+ ee42750 *dp, &lv = *(dp=new (buf) ee42750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee42750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(24,16), "ee42750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), 0, "ee42750");
+ check_base_class_offset(lv, (dd2750*), 0, "ee42750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42750.e");
+ test_class_info(&lv, &cd_ee42750);
+ dp->~ee42750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42750(Test_ee42750, "ee42750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42750C1Ev();
+extern void _ZN7ee42750D1Ev();
+Name_Map name_map_ee42750[] = {
+ NSPAIR(_ZN7ee42750C1Ev),
+ NSPAIR(_ZN7ee42750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee42750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN7ee427503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee427503barEv,_ZTv0_n16_N7ee427503barEv)();
+extern void ABISELECT(_ZThn24_N7ee427503barEv,_ZThn16_N7ee427503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN7ee427503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427503barEv,_ZTv0_n16_N7ee427503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee42750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee42750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee42750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee42750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee42750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee42750[] = {
+ {&(_ZTV7ee42750[4]), 4,11},
+ {&(_tg__ZTV6dd2750__7ee42750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee42750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee42750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee42750[4]), 4,5},
+ {&(_ZTV7ee42750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee42750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42750[];
+extern VTBL_ENTRY _ZTV7ee42750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42750[];
+static VTBL_ENTRY alt_thunk_names377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427503barEv,_ZTv0_n16_N7ee427503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427503barEv,_ZThn16_N7ee427503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42750 = { "ee42750", // class name
+ bases_ee42750, 4,
+ &(vtc_ee42750[0]), // expected_vtbl_contents
+ &(vtt_ee42750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52750 : virtual dd2750 {
+ int e;
+ virtual void bar(); // _ZN7ee527503barEv
+ ~ee52750(); // tgen
+ ee52750(); // tgen
+};
+//SIG(1 ee52750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52750 ::bar(){vfunc_called(this, "_ZN7ee527503barEv");}
+ee52750 ::~ee52750(){ note_dtor("ee52750", this);} // tgen
+ee52750 ::ee52750(){ note_ctor("ee52750", this);} // tgen
+
+static void Test_ee52750()
+{
+ extern Class_Descriptor cd_ee52750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee52750, buf);
+ ee52750 *dp, &lv = *(dp=new (buf) ee52750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee52750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee52750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(32,20), "ee52750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), ABISELECT(16,8), "ee52750");
+ check_base_class_offset(lv, (dd2750*), ABISELECT(16,8), "ee52750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52750.e");
+ test_class_info(&lv, &cd_ee52750);
+ dp->~ee52750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52750(Test_ee52750, "ee52750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52750C1Ev();
+extern void _ZN7ee52750D1Ev();
+Name_Map name_map_ee52750[] = {
+ NSPAIR(_ZN7ee52750C1Ev),
+ NSPAIR(_ZN7ee52750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee52750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee52750[];
+extern void _ZN7ee527503barEv();
+extern void _ZN6dd27503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee527503barEv,_ZTv0_n24_N7ee527503barEv)();
+extern void ABISELECT(_ZThn16_N7ee527503barEv,_ZThn8_N7ee527503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527503barEv,_ZTv0_n16_N7ee527503barEv)();
+extern void ABISELECT(_ZThn32_N7ee527503barEv,_ZThn20_N7ee527503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52750[0]),
+ (VTBL_ENTRY)&_ZN7ee527503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee527503barEv,_ZTv0_n24_N7ee527503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527503barEv,_ZTv0_n16_N7ee527503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee52750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee52750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee52750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee52750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee52750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee52750[] = {
+ {&(_ZTV7ee52750[5]), 5,19},
+ {&(_ZTV7ee52750[12]), 12,19},
+ {&(_ZTV7ee52750[18]), 18,19},
+ {&(_tg__ZTV6dd2750__7ee52750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee52750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee52750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee52750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee52750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52750[];
+extern VTBL_ENTRY _ZTV7ee52750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52750[];
+static VTBL_ENTRY alt_thunk_names378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527503barEv,_ZTv0_n16_N7ee527503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527503barEv,_ZThn20_N7ee527503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee527503barEv,_ZTv0_n24_N7ee527503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527503barEv,_ZThn8_N7ee527503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52750 = { "ee52750", // class name
+ bases_ee52750, 4,
+ &(vtc_ee52750[0]), // expected_vtbl_contents
+ &(vtt_ee52750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee52750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62750 : dd2750 {
+ int e;
+ virtual void foo(); // _ZN7ee627503fooEv
+ virtual void bar(); // _ZN7ee627503barEv
+ ~ee62750(); // tgen
+ ee62750(); // tgen
+};
+//SIG(1 ee62750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62750 ::foo(){vfunc_called(this, "_ZN7ee627503fooEv");}
+void ee62750 ::bar(){vfunc_called(this, "_ZN7ee627503barEv");}
+ee62750 ::~ee62750(){ note_dtor("ee62750", this);} // tgen
+ee62750 ::ee62750(){ note_ctor("ee62750", this);} // tgen
+
+static void Test_ee62750()
+{
+ extern Class_Descriptor cd_ee62750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62750, buf);
+ ee62750 *dp, &lv = *(dp=new (buf) ee62750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee62750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(24,16), "ee62750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), 0, "ee62750");
+ check_base_class_offset(lv, (dd2750*), 0, "ee62750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62750.e");
+ test_class_info(&lv, &cd_ee62750);
+ dp->~ee62750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62750(Test_ee62750, "ee62750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62750C1Ev();
+extern void _ZN7ee62750D1Ev();
+Name_Map name_map_ee62750[] = {
+ NSPAIR(_ZN7ee62750C1Ev),
+ NSPAIR(_ZN7ee62750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee62750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62750[];
+extern void _ZN7ee627503fooEv();
+extern void _ZN7ee627503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee627503barEv,_ZTv0_n16_N7ee627503barEv)();
+extern void ABISELECT(_ZThn24_N7ee627503barEv,_ZThn16_N7ee627503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62750[0]),
+ (VTBL_ENTRY)&_ZN7ee627503fooEv,
+ (VTBL_ENTRY)&_ZN7ee627503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627503barEv,_ZTv0_n16_N7ee627503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee62750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee62750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee62750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee62750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee62750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee62750[] = {
+ {&(_ZTV7ee62750[4]), 4,11},
+ {&(_tg__ZTV6dd2750__7ee62750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee62750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee62750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee62750[4]), 4,5},
+ {&(_ZTV7ee62750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee62750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62750[];
+extern VTBL_ENTRY _ZTV7ee62750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62750[];
+static VTBL_ENTRY alt_thunk_names379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627503barEv,_ZTv0_n16_N7ee627503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627503barEv,_ZThn16_N7ee627503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62750 = { "ee62750", // class name
+ bases_ee62750, 4,
+ &(vtc_ee62750[0]), // expected_vtbl_contents
+ &(vtt_ee62750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72750 : virtual dd2750 {
+ int e;
+ virtual void foo(); // _ZN7ee727503fooEv
+ virtual void bar(); // _ZN7ee727503barEv
+ ~ee72750(); // tgen
+ ee72750(); // tgen
+};
+//SIG(1 ee72750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72750 ::foo(){vfunc_called(this, "_ZN7ee727503fooEv");}
+void ee72750 ::bar(){vfunc_called(this, "_ZN7ee727503barEv");}
+ee72750 ::~ee72750(){ note_dtor("ee72750", this);} // tgen
+ee72750 ::ee72750(){ note_ctor("ee72750", this);} // tgen
+
+static void Test_ee72750()
+{
+ extern Class_Descriptor cd_ee72750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee72750, buf);
+ ee72750 *dp, &lv = *(dp=new (buf) ee72750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee72750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee72750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd2750*), ABISELECT(32,20), "ee72750");
+ check_base_class_offset(lv, (cc750*)(dd2750*), ABISELECT(16,8), "ee72750");
+ check_base_class_offset(lv, (dd2750*), ABISELECT(16,8), "ee72750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72750.e");
+ test_class_info(&lv, &cd_ee72750);
+ dp->~ee72750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72750(Test_ee72750, "ee72750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72750C1Ev();
+extern void _ZN7ee72750D1Ev();
+Name_Map name_map_ee72750[] = {
+ NSPAIR(_ZN7ee72750C1Ev),
+ NSPAIR(_ZN7ee72750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd2750;
+extern VTBL_ENTRY _ZTI6dd2750[];
+extern VTBL_ENTRY _ZTV6dd2750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2750[];
+static Base_Class bases_ee72750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee72750[];
+extern void _ZN7ee727503fooEv();
+extern void _ZN7ee727503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee727503fooEv,_ZTv0_n20_N7ee727503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727503fooEv,_ZThn8_N7ee727503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee727503barEv,_ZTv0_n24_N7ee727503barEv)();
+extern void ABISELECT(_ZThn16_N7ee727503barEv,_ZThn8_N7ee727503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727503barEv,_ZTv0_n16_N7ee727503barEv)();
+extern void ABISELECT(_ZThn32_N7ee727503barEv,_ZThn20_N7ee727503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72750[0]),
+ (VTBL_ENTRY)&_ZN7ee727503fooEv,
+ (VTBL_ENTRY)&_ZN7ee727503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727503fooEv,_ZTv0_n20_N7ee727503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee727503barEv,_ZTv0_n24_N7ee727503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727503barEv,_ZTv0_n16_N7ee727503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72750[];
+extern void _ZN6dd27503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV6dd2750__7ee72750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&_ZN6dd27503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd2750__7ee72750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd2750__7ee72750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd2750__7ee72750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee72750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee72750[] = {
+ {&(_ZTV7ee72750[5]), 5,20},
+ {&(_ZTV7ee72750[13]), 13,20},
+ {&(_ZTV7ee72750[19]), 19,20},
+ {&(_tg__ZTV6dd2750__7ee72750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd2750__7ee72750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd2750__7ee72750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd2750__7ee72750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee72750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72750[];
+extern VTBL_ENTRY _ZTV7ee72750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72750[];
+static VTBL_ENTRY alt_thunk_names380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727503barEv,_ZTv0_n16_N7ee727503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727503barEv,_ZThn20_N7ee727503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee727503barEv,_ZTv0_n24_N7ee727503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727503barEv,_ZThn8_N7ee727503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727503fooEv,_ZTv0_n20_N7ee727503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727503fooEv,_ZThn8_N7ee727503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72750 = { "ee72750", // class name
+ bases_ee72750, 4,
+ &(vtc_ee72750[0]), // expected_vtbl_contents
+ &(vtt_ee72750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee72750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3750 : virtual cc750 {
+ int d;
+ virtual void foo(); // _ZN6dd37503fooEv
+ ~dd3750(); // tgen
+ dd3750(); // tgen
+};
+//SIG(-1 dd3750) C1{ VBC2{ VBC3{ VBC4{ Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3750 ::foo(){vfunc_called(this, "_ZN6dd37503fooEv");}
+dd3750 ::~dd3750(){ note_dtor("dd3750", this);} // tgen
+dd3750 ::dd3750(){ note_ctor("dd3750", this);} // tgen
+
+static void Test_dd3750()
+{
+ extern Class_Descriptor cd_dd3750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3750, buf);
+ dd3750 *dp, &lv = *(dp=new (buf) dd3750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd3750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,16), "dd3750");
+ check_base_class_offset(lv, (cc750*), ABISELECT(16,8), "dd3750");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3750.d");
+ test_class_info(&lv, &cd_dd3750);
+ dp->~dd3750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3750(Test_dd3750, "dd3750", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3750C1Ev();
+extern void _ZN6dd3750D1Ev();
+Name_Map name_map_dd3750[] = {
+ NSPAIR(_ZN6dd3750C1Ev),
+ NSPAIR(_ZN6dd3750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd3750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern void _ZN6dd37503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd3750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd3750[] = {
+ {&(_ZTV6dd3750[5]), 5,19},
+ {&(_ZTV6dd3750[12]), 12,19},
+ {&(_ZTV6dd3750[18]), 18,19},
+ {&(_tg__ZTV5cc750__6dd3750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd3750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd3750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static VTBL_ENTRY alt_thunk_names381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3750 = { "dd3750", // class name
+ bases_dd3750, 3,
+ &(vtc_dd3750[0]), // expected_vtbl_contents
+ &(vtt_dd3750[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3750),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03750 : dd3750 {
+ int e;
+ ~ee03750(); // tgen
+ ee03750(); // tgen
+};
+//SIG(1 ee03750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03750 ::~ee03750(){ note_dtor("ee03750", this);} // tgen
+ee03750 ::ee03750(){ note_ctor("ee03750", this);} // tgen
+
+static void Test_ee03750()
+{
+ extern Class_Descriptor cd_ee03750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03750, buf);
+ ee03750 *dp, &lv = *(dp=new (buf) ee03750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee03750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee03750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(16,12), "ee03750");
+ check_base_class_offset(lv, (dd3750*), 0, "ee03750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03750.e");
+ test_class_info(&lv, &cd_ee03750);
+ dp->~ee03750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03750(Test_ee03750, "ee03750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03750C1Ev();
+extern void _ZN7ee03750D1Ev();
+Name_Map name_map_ee03750[] = {
+ NSPAIR(_ZN7ee03750C1Ev),
+ NSPAIR(_ZN7ee03750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee03750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03750[];
+extern void _ZN6dd37503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee03750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee03750[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee03750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee03750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee03750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee03750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee03750[] = {
+ {&(_ZTV7ee03750[5]), 5,19},
+ {&(_tg__ZTV6dd3750__7ee03750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee03750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee03750[4]), 4,5},
+ {&(_ZTV7ee03750[12]), 12,19},
+ {&(_ZTV7ee03750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee03750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee03750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee03750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03750[];
+extern VTBL_ENTRY _ZTV7ee03750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03750[];
+static VTBL_ENTRY alt_thunk_names382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03750 = { "ee03750", // class name
+ bases_ee03750, 4,
+ &(vtc_ee03750[0]), // expected_vtbl_contents
+ &(vtt_ee03750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13750 : virtual dd3750 {
+ int e;
+ ~ee13750(); // tgen
+ ee13750(); // tgen
+};
+//SIG(1 ee13750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13750 ::~ee13750(){ note_dtor("ee13750", this);} // tgen
+ee13750 ::ee13750(){ note_ctor("ee13750", this);} // tgen
+
+static void Test_ee13750()
+{
+ extern Class_Descriptor cd_ee13750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13750, buf);
+ ee13750 *dp, &lv = *(dp=new (buf) ee13750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee13750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee13750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(32,16), "ee13750");
+ check_base_class_offset(lv, (dd3750*), ABISELECT(16,8), "ee13750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13750.e");
+ test_class_info(&lv, &cd_ee13750);
+ dp->~ee13750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13750(Test_ee13750, "ee13750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13750C1Ev();
+extern void _ZN7ee13750D1Ev();
+Name_Map name_map_ee13750[] = {
+ NSPAIR(_ZN7ee13750C1Ev),
+ NSPAIR(_ZN7ee13750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee13750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee13750[];
+extern void _ZN6dd37503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13750[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee13750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee13750[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee13750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee13750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee13750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee13750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee13750[] = {
+ {&(_ZTV7ee13750[6]), 6,26},
+ {&(_ZTV7ee13750[12]), 12,26},
+ {&(_ZTV7ee13750[19]), 19,26},
+ {&(_ZTV7ee13750[25]), 25,26},
+ {&(_tg__ZTV6dd3750__7ee13750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee13750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee13750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee13750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee13750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee13750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13750[];
+extern VTBL_ENTRY _ZTV7ee13750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13750[];
+static VTBL_ENTRY alt_thunk_names383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13750 = { "ee13750", // class name
+ bases_ee13750, 4,
+ &(vtc_ee13750[0]), // expected_vtbl_contents
+ &(vtt_ee13750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13750),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23750 : dd3750 {
+ int e;
+ virtual void foo(); // _ZN7ee237503fooEv
+ ~ee23750(); // tgen
+ ee23750(); // tgen
+};
+//SIG(1 ee23750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23750 ::foo(){vfunc_called(this, "_ZN7ee237503fooEv");}
+ee23750 ::~ee23750(){ note_dtor("ee23750", this);} // tgen
+ee23750 ::ee23750(){ note_ctor("ee23750", this);} // tgen
+
+static void Test_ee23750()
+{
+ extern Class_Descriptor cd_ee23750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23750, buf);
+ ee23750 *dp, &lv = *(dp=new (buf) ee23750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee23750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee23750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(16,12), "ee23750");
+ check_base_class_offset(lv, (dd3750*), 0, "ee23750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23750.e");
+ test_class_info(&lv, &cd_ee23750);
+ dp->~ee23750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23750(Test_ee23750, "ee23750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23750C1Ev();
+extern void _ZN7ee23750D1Ev();
+Name_Map name_map_ee23750[] = {
+ NSPAIR(_ZN7ee23750C1Ev),
+ NSPAIR(_ZN7ee23750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee23750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23750[];
+extern void _ZN7ee237503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee237503fooEv,_ZTv0_n20_N7ee237503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237503fooEv,_ZThn12_N7ee237503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23750[0]),
+ (VTBL_ENTRY)&_ZN7ee237503fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee237503fooEv,_ZTv0_n20_N7ee237503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee23750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee23750[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee23750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee23750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee23750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee23750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee23750[] = {
+ {&(_ZTV7ee23750[5]), 5,19},
+ {&(_tg__ZTV6dd3750__7ee23750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee23750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee23750[4]), 4,5},
+ {&(_ZTV7ee23750[12]), 12,19},
+ {&(_ZTV7ee23750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee23750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee23750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee23750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23750[];
+extern VTBL_ENTRY _ZTV7ee23750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23750[];
+static VTBL_ENTRY alt_thunk_names384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee237503fooEv,_ZTv0_n20_N7ee237503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237503fooEv,_ZThn12_N7ee237503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23750 = { "ee23750", // class name
+ bases_ee23750, 4,
+ &(vtc_ee23750[0]), // expected_vtbl_contents
+ &(vtt_ee23750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33750 : virtual dd3750 {
+ int e;
+ virtual void foo(); // _ZN7ee337503fooEv
+ ~ee33750(); // tgen
+ ee33750(); // tgen
+};
+//SIG(1 ee33750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33750 ::foo(){vfunc_called(this, "_ZN7ee337503fooEv");}
+ee33750 ::~ee33750(){ note_dtor("ee33750", this);} // tgen
+ee33750 ::ee33750(){ note_ctor("ee33750", this);} // tgen
+
+static void Test_ee33750()
+{
+ extern Class_Descriptor cd_ee33750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33750, buf);
+ ee33750 *dp, &lv = *(dp=new (buf) ee33750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee33750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee33750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(32,16), "ee33750");
+ check_base_class_offset(lv, (dd3750*), ABISELECT(16,8), "ee33750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33750.e");
+ test_class_info(&lv, &cd_ee33750);
+ dp->~ee33750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33750(Test_ee33750, "ee33750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33750C1Ev();
+extern void _ZN7ee33750D1Ev();
+Name_Map name_map_ee33750[] = {
+ NSPAIR(_ZN7ee33750C1Ev),
+ NSPAIR(_ZN7ee33750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee33750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee33750[];
+extern void _ZN7ee337503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee337503fooEv,_ZTv0_n24_N7ee337503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337503fooEv,_ZThn8_N7ee337503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee337503fooEv,_ZTv0_n20_N7ee337503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337503fooEv,_ZThn16_N7ee337503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33750[0]),
+ (VTBL_ENTRY)&_ZN7ee337503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee337503fooEv,_ZTv0_n24_N7ee337503fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337503fooEv,_ZTv0_n20_N7ee337503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee33750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee33750[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee33750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee33750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee33750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee33750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee33750[] = {
+ {&(_ZTV7ee33750[6]), 6,27},
+ {&(_ZTV7ee33750[13]), 13,27},
+ {&(_ZTV7ee33750[20]), 20,27},
+ {&(_ZTV7ee33750[26]), 26,27},
+ {&(_tg__ZTV6dd3750__7ee33750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee33750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee33750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee33750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee33750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee33750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33750[];
+extern VTBL_ENTRY _ZTV7ee33750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33750[];
+static VTBL_ENTRY alt_thunk_names385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337503fooEv,_ZTv0_n20_N7ee337503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337503fooEv,_ZThn16_N7ee337503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee337503fooEv,_ZTv0_n24_N7ee337503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337503fooEv,_ZThn8_N7ee337503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33750 = { "ee33750", // class name
+ bases_ee33750, 4,
+ &(vtc_ee33750[0]), // expected_vtbl_contents
+ &(vtt_ee33750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33750),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43750 : dd3750 {
+ int e;
+ virtual void bar(); // _ZN7ee437503barEv
+ ~ee43750(); // tgen
+ ee43750(); // tgen
+};
+//SIG(1 ee43750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43750 ::bar(){vfunc_called(this, "_ZN7ee437503barEv");}
+ee43750 ::~ee43750(){ note_dtor("ee43750", this);} // tgen
+ee43750 ::ee43750(){ note_ctor("ee43750", this);} // tgen
+
+static void Test_ee43750()
+{
+ extern Class_Descriptor cd_ee43750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43750, buf);
+ ee43750 *dp, &lv = *(dp=new (buf) ee43750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee43750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee43750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(16,12), "ee43750");
+ check_base_class_offset(lv, (dd3750*), 0, "ee43750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43750.e");
+ test_class_info(&lv, &cd_ee43750);
+ dp->~ee43750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43750(Test_ee43750, "ee43750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43750C1Ev();
+extern void _ZN7ee43750D1Ev();
+Name_Map name_map_ee43750[] = {
+ NSPAIR(_ZN7ee43750C1Ev),
+ NSPAIR(_ZN7ee43750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee43750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43750[];
+extern void _ZN6dd37503fooEv();
+extern void _ZN7ee437503barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee437503barEv,_ZTv0_n24_N7ee437503barEv)();
+extern void ABISELECT(_ZThn16_N7ee437503barEv,_ZThn12_N7ee437503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437503barEv,_ZTv0_n16_N7ee437503barEv)();
+extern void ABISELECT(_ZThn32_N7ee437503barEv,_ZThn20_N7ee437503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+ (VTBL_ENTRY)&_ZN7ee437503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee437503barEv,_ZTv0_n24_N7ee437503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437503barEv,_ZTv0_n16_N7ee437503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee43750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee43750[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee43750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee43750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee43750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee43750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee43750[] = {
+ {&(_ZTV7ee43750[5]), 5,20},
+ {&(_tg__ZTV6dd3750__7ee43750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee43750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee43750[4]), 4,5},
+ {&(_ZTV7ee43750[13]), 13,20},
+ {&(_ZTV7ee43750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee43750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee43750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee43750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43750[];
+extern VTBL_ENTRY _ZTV7ee43750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43750[];
+static VTBL_ENTRY alt_thunk_names386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437503barEv,_ZTv0_n16_N7ee437503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437503barEv,_ZThn20_N7ee437503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee437503barEv,_ZTv0_n24_N7ee437503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437503barEv,_ZThn12_N7ee437503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43750 = { "ee43750", // class name
+ bases_ee43750, 4,
+ &(vtc_ee43750[0]), // expected_vtbl_contents
+ &(vtt_ee43750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names386,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53750 : virtual dd3750 {
+ int e;
+ virtual void bar(); // _ZN7ee537503barEv
+ ~ee53750(); // tgen
+ ee53750(); // tgen
+};
+//SIG(1 ee53750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53750 ::bar(){vfunc_called(this, "_ZN7ee537503barEv");}
+ee53750 ::~ee53750(){ note_dtor("ee53750", this);} // tgen
+ee53750 ::ee53750(){ note_ctor("ee53750", this);} // tgen
+
+static void Test_ee53750()
+{
+ extern Class_Descriptor cd_ee53750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53750, buf);
+ ee53750 *dp, &lv = *(dp=new (buf) ee53750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee53750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee53750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(32,16), "ee53750");
+ check_base_class_offset(lv, (dd3750*), ABISELECT(16,8), "ee53750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53750.e");
+ test_class_info(&lv, &cd_ee53750);
+ dp->~ee53750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53750(Test_ee53750, "ee53750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53750C1Ev();
+extern void _ZN7ee53750D1Ev();
+Name_Map name_map_ee53750[] = {
+ NSPAIR(_ZN7ee53750C1Ev),
+ NSPAIR(_ZN7ee53750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee53750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee53750[];
+extern void _ZN7ee537503barEv();
+extern void _ZN6dd37503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee537503barEv,_ZTv0_n24_N7ee537503barEv)();
+extern void ABISELECT(_ZThn32_N7ee537503barEv,_ZThn16_N7ee537503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537503barEv,_ZTv0_n16_N7ee537503barEv)();
+extern void ABISELECT(_ZThn48_N7ee537503barEv,_ZThn24_N7ee537503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53750[0]),
+ (VTBL_ENTRY)&_ZN7ee537503barEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee537503barEv,_ZTv0_n24_N7ee537503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537503barEv,_ZTv0_n16_N7ee537503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee53750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee53750[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee53750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee53750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee53750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee53750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee53750[] = {
+ {&(_ZTV7ee53750[6]), 6,27},
+ {&(_ZTV7ee53750[13]), 13,27},
+ {&(_ZTV7ee53750[20]), 20,27},
+ {&(_ZTV7ee53750[26]), 26,27},
+ {&(_tg__ZTV6dd3750__7ee53750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee53750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee53750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee53750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee53750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee53750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53750[];
+extern VTBL_ENTRY _ZTV7ee53750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53750[];
+static VTBL_ENTRY alt_thunk_names387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537503barEv,_ZTv0_n16_N7ee537503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537503barEv,_ZThn24_N7ee537503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee537503barEv,_ZTv0_n24_N7ee537503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537503barEv,_ZThn16_N7ee537503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53750 = { "ee53750", // class name
+ bases_ee53750, 4,
+ &(vtc_ee53750[0]), // expected_vtbl_contents
+ &(vtt_ee53750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53750),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63750 : dd3750 {
+ int e;
+ virtual void foo(); // _ZN7ee637503fooEv
+ virtual void bar(); // _ZN7ee637503barEv
+ ~ee63750(); // tgen
+ ee63750(); // tgen
+};
+//SIG(1 ee63750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63750 ::foo(){vfunc_called(this, "_ZN7ee637503fooEv");}
+void ee63750 ::bar(){vfunc_called(this, "_ZN7ee637503barEv");}
+ee63750 ::~ee63750(){ note_dtor("ee63750", this);} // tgen
+ee63750 ::ee63750(){ note_ctor("ee63750", this);} // tgen
+
+static void Test_ee63750()
+{
+ extern Class_Descriptor cd_ee63750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63750, buf);
+ ee63750 *dp, &lv = *(dp=new (buf) ee63750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee63750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee63750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(16,12), "ee63750");
+ check_base_class_offset(lv, (dd3750*), 0, "ee63750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63750.e");
+ test_class_info(&lv, &cd_ee63750);
+ dp->~ee63750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63750(Test_ee63750, "ee63750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63750C1Ev();
+extern void _ZN7ee63750D1Ev();
+Name_Map name_map_ee63750[] = {
+ NSPAIR(_ZN7ee63750C1Ev),
+ NSPAIR(_ZN7ee63750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee63750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63750[];
+extern void _ZN7ee637503fooEv();
+extern void _ZN7ee637503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee637503fooEv,_ZTv0_n20_N7ee637503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637503fooEv,_ZThn12_N7ee637503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee637503barEv,_ZTv0_n24_N7ee637503barEv)();
+extern void ABISELECT(_ZThn16_N7ee637503barEv,_ZThn12_N7ee637503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637503barEv,_ZTv0_n16_N7ee637503barEv)();
+extern void ABISELECT(_ZThn32_N7ee637503barEv,_ZThn20_N7ee637503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63750[0]),
+ (VTBL_ENTRY)&_ZN7ee637503fooEv,
+ (VTBL_ENTRY)&_ZN7ee637503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637503fooEv,_ZTv0_n20_N7ee637503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee637503barEv,_ZTv0_n24_N7ee637503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637503barEv,_ZTv0_n16_N7ee637503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee63750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee63750[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee63750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee63750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee63750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee63750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee63750[] = {
+ {&(_ZTV7ee63750[5]), 5,20},
+ {&(_tg__ZTV6dd3750__7ee63750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee63750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee63750[4]), 4,5},
+ {&(_ZTV7ee63750[13]), 13,20},
+ {&(_ZTV7ee63750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee63750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee63750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee63750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63750[];
+extern VTBL_ENTRY _ZTV7ee63750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63750[];
+static VTBL_ENTRY alt_thunk_names388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn12_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637503barEv,_ZTv0_n16_N7ee637503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637503barEv,_ZThn20_N7ee637503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee637503barEv,_ZTv0_n24_N7ee637503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637503barEv,_ZThn12_N7ee637503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637503fooEv,_ZTv0_n20_N7ee637503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637503fooEv,_ZThn12_N7ee637503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63750 = { "ee63750", // class name
+ bases_ee63750, 4,
+ &(vtc_ee63750[0]), // expected_vtbl_contents
+ &(vtt_ee63750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73750 : virtual dd3750 {
+ int e;
+ virtual void foo(); // _ZN7ee737503fooEv
+ virtual void bar(); // _ZN7ee737503barEv
+ ~ee73750(); // tgen
+ ee73750(); // tgen
+};
+//SIG(1 ee73750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73750 ::foo(){vfunc_called(this, "_ZN7ee737503fooEv");}
+void ee73750 ::bar(){vfunc_called(this, "_ZN7ee737503barEv");}
+ee73750 ::~ee73750(){ note_dtor("ee73750", this);} // tgen
+ee73750 ::ee73750(){ note_ctor("ee73750", this);} // tgen
+
+static void Test_ee73750()
+{
+ extern Class_Descriptor cd_ee73750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73750, buf);
+ ee73750 *dp, &lv = *(dp=new (buf) ee73750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee73750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee73750");
+ check_base_class_offset(lv, (cc750*)(dd3750*), ABISELECT(32,16), "ee73750");
+ check_base_class_offset(lv, (dd3750*), ABISELECT(16,8), "ee73750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73750.e");
+ test_class_info(&lv, &cd_ee73750);
+ dp->~ee73750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73750(Test_ee73750, "ee73750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73750C1Ev();
+extern void _ZN7ee73750D1Ev();
+Name_Map name_map_ee73750[] = {
+ NSPAIR(_ZN7ee73750C1Ev),
+ NSPAIR(_ZN7ee73750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd3750;
+extern VTBL_ENTRY _ZTI6dd3750[];
+extern VTBL_ENTRY _ZTV6dd3750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3750[];
+static Base_Class bases_ee73750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3750, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee73750[];
+extern void _ZN7ee737503fooEv();
+extern void _ZN7ee737503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee737503fooEv,_ZTv0_n24_N7ee737503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737503fooEv,_ZThn8_N7ee737503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737503fooEv,_ZTv0_n20_N7ee737503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737503fooEv,_ZThn16_N7ee737503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee737503barEv,_ZTv0_n24_N7ee737503barEv)();
+extern void ABISELECT(_ZThn32_N7ee737503barEv,_ZThn16_N7ee737503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737503barEv,_ZTv0_n16_N7ee737503barEv)();
+extern void ABISELECT(_ZThn48_N7ee737503barEv,_ZThn24_N7ee737503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73750[0]),
+ (VTBL_ENTRY)&_ZN7ee737503fooEv,
+ (VTBL_ENTRY)&_ZN7ee737503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737503fooEv,_ZTv0_n24_N7ee737503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737503fooEv,_ZTv0_n20_N7ee737503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737503barEv,_ZTv0_n24_N7ee737503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737503barEv,_ZTv0_n16_N7ee737503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73750[];
+extern void _ZN6dd37503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3750__7ee73750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&_ZN6dd37503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv)() __attribute__((weak));
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd3750__7ee73750[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv),
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd3750__7ee73750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee73750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee73750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee73750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee73750[] = {
+ {&(_ZTV7ee73750[6]), 6,28},
+ {&(_ZTV7ee73750[14]), 14,28},
+ {&(_ZTV7ee73750[21]), 21,28},
+ {&(_ZTV7ee73750[27]), 27,28},
+ {&(_tg__ZTV6dd3750__7ee73750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd3750__7ee73750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd3750__7ee73750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee73750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee73750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee73750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73750[];
+extern VTBL_ENTRY _ZTV7ee73750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73750[];
+static VTBL_ENTRY alt_thunk_names389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37503fooEv,_ZTv0_n20_N6dd37503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37503fooEv,_ZThn8_N6dd37503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737503barEv,_ZTv0_n16_N7ee737503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737503barEv,_ZThn24_N7ee737503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737503barEv,_ZTv0_n24_N7ee737503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737503barEv,_ZThn16_N7ee737503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737503fooEv,_ZTv0_n20_N7ee737503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737503fooEv,_ZThn16_N7ee737503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737503fooEv,_ZTv0_n24_N7ee737503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737503fooEv,_ZThn8_N7ee737503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73750 = { "ee73750", // class name
+ bases_ee73750, 4,
+ &(vtc_ee73750[0]), // expected_vtbl_contents
+ &(vtt_ee73750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73750),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4750 : cc750 {
+ int d;
+ virtual void bar(); // _ZN6dd47503barEv
+ ~dd4750(); // tgen
+ dd4750(); // tgen
+};
+//SIG(-1 dd4750) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4750 ::bar(){vfunc_called(this, "_ZN6dd47503barEv");}
+dd4750 ::~dd4750(){ note_dtor("dd4750", this);} // tgen
+dd4750 ::dd4750(){ note_ctor("dd4750", this);} // tgen
+
+static void Test_dd4750()
+{
+ extern Class_Descriptor cd_dd4750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd4750, buf);
+ dd4750 *dp, &lv = *(dp=new (buf) dd4750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd4750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd4750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(16,12), "dd4750");
+ check_base_class_offset(lv, (cc750*), 0, "dd4750");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4750.d");
+ test_class_info(&lv, &cd_dd4750);
+ dp->~dd4750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4750(Test_dd4750, "dd4750", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4750C1Ev();
+extern void _ZN6dd4750D1Ev();
+Name_Map name_map_dd4750[] = {
+ NSPAIR(_ZN6dd4750C1Ev),
+ NSPAIR(_ZN6dd4750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd4750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd4750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd4750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd4750[] = {
+ {&(_ZTV6dd4750[4]), 4,11},
+ {&(_tg__ZTV5cc750__6dd4750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd4750[4]), 4,5},
+ {&(_ZTV6dd4750[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd4750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static VTBL_ENTRY alt_thunk_names390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4750 = { "dd4750", // class name
+ bases_dd4750, 3,
+ &(vtc_dd4750[0]), // expected_vtbl_contents
+ &(vtt_dd4750[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd4750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4750),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04750 : dd4750 {
+ int e;
+ ~ee04750(); // tgen
+ ee04750(); // tgen
+};
+//SIG(1 ee04750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04750 ::~ee04750(){ note_dtor("ee04750", this);} // tgen
+ee04750 ::ee04750(){ note_ctor("ee04750", this);} // tgen
+
+static void Test_ee04750()
+{
+ extern Class_Descriptor cd_ee04750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04750, buf);
+ ee04750 *dp, &lv = *(dp=new (buf) ee04750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee04750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(24,16), "ee04750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), 0, "ee04750");
+ check_base_class_offset(lv, (dd4750*), 0, "ee04750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04750.e");
+ test_class_info(&lv, &cd_ee04750);
+ dp->~ee04750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04750(Test_ee04750, "ee04750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04750C1Ev();
+extern void _ZN7ee04750D1Ev();
+Name_Map name_map_ee04750[] = {
+ NSPAIR(_ZN7ee04750C1Ev),
+ NSPAIR(_ZN7ee04750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee04750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee04750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee04750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee04750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee04750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee04750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee04750[] = {
+ {&(_ZTV7ee04750[4]), 4,11},
+ {&(_tg__ZTV6dd4750__7ee04750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee04750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee04750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee04750[4]), 4,5},
+ {&(_ZTV7ee04750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee04750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04750[];
+extern VTBL_ENTRY _ZTV7ee04750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04750[];
+static VTBL_ENTRY alt_thunk_names391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04750 = { "ee04750", // class name
+ bases_ee04750, 4,
+ &(vtc_ee04750[0]), // expected_vtbl_contents
+ &(vtt_ee04750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14750 : virtual dd4750 {
+ int e;
+ ~ee14750(); // tgen
+ ee14750(); // tgen
+};
+//SIG(1 ee14750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14750 ::~ee14750(){ note_dtor("ee14750", this);} // tgen
+ee14750 ::ee14750(){ note_ctor("ee14750", this);} // tgen
+
+static void Test_ee14750()
+{
+ extern Class_Descriptor cd_ee14750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee14750, buf);
+ ee14750 *dp, &lv = *(dp=new (buf) ee14750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee14750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee14750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(32,20), "ee14750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), ABISELECT(16,8), "ee14750");
+ check_base_class_offset(lv, (dd4750*), ABISELECT(16,8), "ee14750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14750.e");
+ test_class_info(&lv, &cd_ee14750);
+ dp->~ee14750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14750(Test_ee14750, "ee14750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14750C1Ev();
+extern void _ZN7ee14750D1Ev();
+Name_Map name_map_ee14750[] = {
+ NSPAIR(_ZN7ee14750C1Ev),
+ NSPAIR(_ZN7ee14750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee14750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee14750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14750[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee14750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee14750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee14750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee14750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee14750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee14750[] = {
+ {&(_ZTV7ee14750[5]), 5,18},
+ {&(_ZTV7ee14750[11]), 11,18},
+ {&(_ZTV7ee14750[17]), 17,18},
+ {&(_tg__ZTV6dd4750__7ee14750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee14750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee14750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee14750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee14750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14750[];
+extern VTBL_ENTRY _ZTV7ee14750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14750[];
+static VTBL_ENTRY alt_thunk_names392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14750 = { "ee14750", // class name
+ bases_ee14750, 4,
+ &(vtc_ee14750[0]), // expected_vtbl_contents
+ &(vtt_ee14750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee14750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24750 : dd4750 {
+ int e;
+ virtual void foo(); // _ZN7ee247503fooEv
+ ~ee24750(); // tgen
+ ee24750(); // tgen
+};
+//SIG(1 ee24750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24750 ::foo(){vfunc_called(this, "_ZN7ee247503fooEv");}
+ee24750 ::~ee24750(){ note_dtor("ee24750", this);} // tgen
+ee24750 ::ee24750(){ note_ctor("ee24750", this);} // tgen
+
+static void Test_ee24750()
+{
+ extern Class_Descriptor cd_ee24750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24750, buf);
+ ee24750 *dp, &lv = *(dp=new (buf) ee24750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee24750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(24,16), "ee24750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), 0, "ee24750");
+ check_base_class_offset(lv, (dd4750*), 0, "ee24750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24750.e");
+ test_class_info(&lv, &cd_ee24750);
+ dp->~ee24750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24750(Test_ee24750, "ee24750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24750C1Ev();
+extern void _ZN7ee24750D1Ev();
+Name_Map name_map_ee24750[] = {
+ NSPAIR(_ZN7ee24750C1Ev),
+ NSPAIR(_ZN7ee24750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee24750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24750[];
+extern void _ZN7ee247503fooEv();
+extern void _ZN6dd47503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24750[0]),
+ (VTBL_ENTRY)&_ZN7ee247503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee24750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee24750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee24750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee24750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee24750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee24750[] = {
+ {&(_ZTV7ee24750[4]), 4,11},
+ {&(_tg__ZTV6dd4750__7ee24750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee24750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee24750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee24750[4]), 4,5},
+ {&(_ZTV7ee24750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee24750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24750[];
+extern VTBL_ENTRY _ZTV7ee24750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24750[];
+static VTBL_ENTRY alt_thunk_names393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24750 = { "ee24750", // class name
+ bases_ee24750, 4,
+ &(vtc_ee24750[0]), // expected_vtbl_contents
+ &(vtt_ee24750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34750 : virtual dd4750 {
+ int e;
+ virtual void foo(); // _ZN7ee347503fooEv
+ ~ee34750(); // tgen
+ ee34750(); // tgen
+};
+//SIG(1 ee34750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34750 ::foo(){vfunc_called(this, "_ZN7ee347503fooEv");}
+ee34750 ::~ee34750(){ note_dtor("ee34750", this);} // tgen
+ee34750 ::ee34750(){ note_ctor("ee34750", this);} // tgen
+
+static void Test_ee34750()
+{
+ extern Class_Descriptor cd_ee34750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee34750, buf);
+ ee34750 *dp, &lv = *(dp=new (buf) ee34750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee34750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee34750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(32,20), "ee34750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), ABISELECT(16,8), "ee34750");
+ check_base_class_offset(lv, (dd4750*), ABISELECT(16,8), "ee34750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34750.e");
+ test_class_info(&lv, &cd_ee34750);
+ dp->~ee34750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34750(Test_ee34750, "ee34750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34750C1Ev();
+extern void _ZN7ee34750D1Ev();
+Name_Map name_map_ee34750[] = {
+ NSPAIR(_ZN7ee34750C1Ev),
+ NSPAIR(_ZN7ee34750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee34750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee34750[];
+extern void _ZN7ee347503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee347503fooEv,_ZTv0_n20_N7ee347503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347503fooEv,_ZThn8_N7ee347503fooEv)() __attribute__((weak));
+extern void _ZN6dd47503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34750[0]),
+ (VTBL_ENTRY)&_ZN7ee347503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee347503fooEv,_ZTv0_n20_N7ee347503fooEv),
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee34750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee34750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee34750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee34750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee34750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee34750[] = {
+ {&(_ZTV7ee34750[5]), 5,19},
+ {&(_ZTV7ee34750[12]), 12,19},
+ {&(_ZTV7ee34750[18]), 18,19},
+ {&(_tg__ZTV6dd4750__7ee34750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee34750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee34750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee34750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee34750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34750[];
+extern VTBL_ENTRY _ZTV7ee34750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34750[];
+static VTBL_ENTRY alt_thunk_names394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee347503fooEv,_ZTv0_n20_N7ee347503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347503fooEv,_ZThn8_N7ee347503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34750 = { "ee34750", // class name
+ bases_ee34750, 4,
+ &(vtc_ee34750[0]), // expected_vtbl_contents
+ &(vtt_ee34750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee34750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44750 : dd4750 {
+ int e;
+ virtual void bar(); // _ZN7ee447503barEv
+ ~ee44750(); // tgen
+ ee44750(); // tgen
+};
+//SIG(1 ee44750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44750 ::bar(){vfunc_called(this, "_ZN7ee447503barEv");}
+ee44750 ::~ee44750(){ note_dtor("ee44750", this);} // tgen
+ee44750 ::ee44750(){ note_ctor("ee44750", this);} // tgen
+
+static void Test_ee44750()
+{
+ extern Class_Descriptor cd_ee44750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44750, buf);
+ ee44750 *dp, &lv = *(dp=new (buf) ee44750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee44750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(24,16), "ee44750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), 0, "ee44750");
+ check_base_class_offset(lv, (dd4750*), 0, "ee44750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44750.e");
+ test_class_info(&lv, &cd_ee44750);
+ dp->~ee44750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44750(Test_ee44750, "ee44750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44750C1Ev();
+extern void _ZN7ee44750D1Ev();
+Name_Map name_map_ee44750[] = {
+ NSPAIR(_ZN7ee44750C1Ev),
+ NSPAIR(_ZN7ee44750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee44750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN7ee447503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee447503barEv,_ZTv0_n16_N7ee447503barEv)();
+extern void ABISELECT(_ZThn24_N7ee447503barEv,_ZThn16_N7ee447503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN7ee447503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447503barEv,_ZTv0_n16_N7ee447503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee44750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee44750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee44750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee44750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee44750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee44750[] = {
+ {&(_ZTV7ee44750[4]), 4,11},
+ {&(_tg__ZTV6dd4750__7ee44750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee44750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee44750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee44750[4]), 4,5},
+ {&(_ZTV7ee44750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee44750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44750[];
+extern VTBL_ENTRY _ZTV7ee44750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44750[];
+static VTBL_ENTRY alt_thunk_names395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447503barEv,_ZTv0_n16_N7ee447503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447503barEv,_ZThn16_N7ee447503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44750 = { "ee44750", // class name
+ bases_ee44750, 4,
+ &(vtc_ee44750[0]), // expected_vtbl_contents
+ &(vtt_ee44750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names395,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54750 : virtual dd4750 {
+ int e;
+ virtual void bar(); // _ZN7ee547503barEv
+ ~ee54750(); // tgen
+ ee54750(); // tgen
+};
+//SIG(1 ee54750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54750 ::bar(){vfunc_called(this, "_ZN7ee547503barEv");}
+ee54750 ::~ee54750(){ note_dtor("ee54750", this);} // tgen
+ee54750 ::ee54750(){ note_ctor("ee54750", this);} // tgen
+
+static void Test_ee54750()
+{
+ extern Class_Descriptor cd_ee54750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee54750, buf);
+ ee54750 *dp, &lv = *(dp=new (buf) ee54750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee54750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee54750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(32,20), "ee54750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), ABISELECT(16,8), "ee54750");
+ check_base_class_offset(lv, (dd4750*), ABISELECT(16,8), "ee54750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54750.e");
+ test_class_info(&lv, &cd_ee54750);
+ dp->~ee54750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54750(Test_ee54750, "ee54750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54750C1Ev();
+extern void _ZN7ee54750D1Ev();
+Name_Map name_map_ee54750[] = {
+ NSPAIR(_ZN7ee54750C1Ev),
+ NSPAIR(_ZN7ee54750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee54750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee54750[];
+extern void _ZN7ee547503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee547503barEv,_ZTv0_n24_N7ee547503barEv)();
+extern void ABISELECT(_ZThn16_N7ee547503barEv,_ZThn8_N7ee547503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547503barEv,_ZTv0_n16_N7ee547503barEv)();
+extern void ABISELECT(_ZThn32_N7ee547503barEv,_ZThn20_N7ee547503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54750[0]),
+ (VTBL_ENTRY)&_ZN7ee547503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee547503barEv,_ZTv0_n24_N7ee547503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547503barEv,_ZTv0_n16_N7ee547503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee54750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee54750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee54750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee54750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee54750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee54750[] = {
+ {&(_ZTV7ee54750[5]), 5,19},
+ {&(_ZTV7ee54750[12]), 12,19},
+ {&(_ZTV7ee54750[18]), 18,19},
+ {&(_tg__ZTV6dd4750__7ee54750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee54750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee54750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee54750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee54750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54750[];
+extern VTBL_ENTRY _ZTV7ee54750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54750[];
+static VTBL_ENTRY alt_thunk_names396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547503barEv,_ZTv0_n16_N7ee547503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547503barEv,_ZThn20_N7ee547503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee547503barEv,_ZTv0_n24_N7ee547503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547503barEv,_ZThn8_N7ee547503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54750 = { "ee54750", // class name
+ bases_ee54750, 4,
+ &(vtc_ee54750[0]), // expected_vtbl_contents
+ &(vtt_ee54750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee54750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names396,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64750 : dd4750 {
+ int e;
+ virtual void foo(); // _ZN7ee647503fooEv
+ virtual void bar(); // _ZN7ee647503barEv
+ ~ee64750(); // tgen
+ ee64750(); // tgen
+};
+//SIG(1 ee64750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64750 ::foo(){vfunc_called(this, "_ZN7ee647503fooEv");}
+void ee64750 ::bar(){vfunc_called(this, "_ZN7ee647503barEv");}
+ee64750 ::~ee64750(){ note_dtor("ee64750", this);} // tgen
+ee64750 ::ee64750(){ note_ctor("ee64750", this);} // tgen
+
+static void Test_ee64750()
+{
+ extern Class_Descriptor cd_ee64750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64750, buf);
+ ee64750 *dp, &lv = *(dp=new (buf) ee64750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee64750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(24,16), "ee64750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), 0, "ee64750");
+ check_base_class_offset(lv, (dd4750*), 0, "ee64750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64750.e");
+ test_class_info(&lv, &cd_ee64750);
+ dp->~ee64750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64750(Test_ee64750, "ee64750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64750C1Ev();
+extern void _ZN7ee64750D1Ev();
+Name_Map name_map_ee64750[] = {
+ NSPAIR(_ZN7ee64750C1Ev),
+ NSPAIR(_ZN7ee64750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee64750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64750[];
+extern void _ZN7ee647503fooEv();
+extern void _ZN7ee647503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee647503barEv,_ZTv0_n16_N7ee647503barEv)();
+extern void ABISELECT(_ZThn24_N7ee647503barEv,_ZThn16_N7ee647503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64750[0]),
+ (VTBL_ENTRY)&_ZN7ee647503fooEv,
+ (VTBL_ENTRY)&_ZN7ee647503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647503barEv,_ZTv0_n16_N7ee647503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee64750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee64750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee64750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee64750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee64750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee64750[] = {
+ {&(_ZTV7ee64750[4]), 4,11},
+ {&(_tg__ZTV6dd4750__7ee64750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee64750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee64750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee64750[4]), 4,5},
+ {&(_ZTV7ee64750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee64750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64750[];
+extern VTBL_ENTRY _ZTV7ee64750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64750[];
+static VTBL_ENTRY alt_thunk_names397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47503barEv,_ZThn16_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647503barEv,_ZTv0_n16_N7ee647503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647503barEv,_ZThn16_N7ee647503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64750 = { "ee64750", // class name
+ bases_ee64750, 4,
+ &(vtc_ee64750[0]), // expected_vtbl_contents
+ &(vtt_ee64750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names397,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74750 : virtual dd4750 {
+ int e;
+ virtual void foo(); // _ZN7ee747503fooEv
+ virtual void bar(); // _ZN7ee747503barEv
+ ~ee74750(); // tgen
+ ee74750(); // tgen
+};
+//SIG(1 ee74750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74750 ::foo(){vfunc_called(this, "_ZN7ee747503fooEv");}
+void ee74750 ::bar(){vfunc_called(this, "_ZN7ee747503barEv");}
+ee74750 ::~ee74750(){ note_dtor("ee74750", this);} // tgen
+ee74750 ::ee74750(){ note_ctor("ee74750", this);} // tgen
+
+static void Test_ee74750()
+{
+ extern Class_Descriptor cd_ee74750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee74750, buf);
+ ee74750 *dp, &lv = *(dp=new (buf) ee74750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee74750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee74750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd4750*), ABISELECT(32,20), "ee74750");
+ check_base_class_offset(lv, (cc750*)(dd4750*), ABISELECT(16,8), "ee74750");
+ check_base_class_offset(lv, (dd4750*), ABISELECT(16,8), "ee74750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74750.e");
+ test_class_info(&lv, &cd_ee74750);
+ dp->~ee74750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74750(Test_ee74750, "ee74750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74750C1Ev();
+extern void _ZN7ee74750D1Ev();
+Name_Map name_map_ee74750[] = {
+ NSPAIR(_ZN7ee74750C1Ev),
+ NSPAIR(_ZN7ee74750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd4750;
+extern VTBL_ENTRY _ZTI6dd4750[];
+extern VTBL_ENTRY _ZTV6dd4750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4750[];
+static Base_Class bases_ee74750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee74750[];
+extern void _ZN7ee747503fooEv();
+extern void _ZN7ee747503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee747503fooEv,_ZTv0_n20_N7ee747503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747503fooEv,_ZThn8_N7ee747503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee747503barEv,_ZTv0_n24_N7ee747503barEv)();
+extern void ABISELECT(_ZThn16_N7ee747503barEv,_ZThn8_N7ee747503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747503barEv,_ZTv0_n16_N7ee747503barEv)();
+extern void ABISELECT(_ZThn32_N7ee747503barEv,_ZThn20_N7ee747503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74750[0]),
+ (VTBL_ENTRY)&_ZN7ee747503fooEv,
+ (VTBL_ENTRY)&_ZN7ee747503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747503fooEv,_ZTv0_n20_N7ee747503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee747503barEv,_ZTv0_n24_N7ee747503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747503barEv,_ZTv0_n16_N7ee747503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN6dd47503barEv();
+static VTBL_ENTRY _tg__ZTV6dd4750__7ee74750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN6dd47503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd4750__7ee74750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd4750__7ee74750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv)();
+extern void ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd4750__7ee74750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee74750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee74750[] = {
+ {&(_ZTV7ee74750[5]), 5,20},
+ {&(_ZTV7ee74750[13]), 13,20},
+ {&(_ZTV7ee74750[19]), 19,20},
+ {&(_tg__ZTV6dd4750__7ee74750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd4750__7ee74750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd4750__7ee74750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd4750__7ee74750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee74750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74750[];
+extern VTBL_ENTRY _ZTV7ee74750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74750[];
+static VTBL_ENTRY alt_thunk_names398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47503barEv,_ZTv0_n16_N6dd47503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47503barEv,_ZThn12_N6dd47503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747503barEv,_ZTv0_n16_N7ee747503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747503barEv,_ZThn20_N7ee747503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee747503barEv,_ZTv0_n24_N7ee747503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747503barEv,_ZThn8_N7ee747503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747503fooEv,_ZTv0_n20_N7ee747503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747503fooEv,_ZThn8_N7ee747503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74750 = { "ee74750", // class name
+ bases_ee74750, 4,
+ &(vtc_ee74750[0]), // expected_vtbl_contents
+ &(vtt_ee74750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee74750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names398,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5750 : virtual cc750 {
+ int d;
+ virtual void bar(); // _ZN6dd57503barEv
+ ~dd5750(); // tgen
+ dd5750(); // tgen
+};
+//SIG(-1 dd5750) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5750 ::bar(){vfunc_called(this, "_ZN6dd57503barEv");}
+dd5750 ::~dd5750(){ note_dtor("dd5750", this);} // tgen
+dd5750 ::dd5750(){ note_ctor("dd5750", this);} // tgen
+
+static void Test_dd5750()
+{
+ extern Class_Descriptor cd_dd5750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5750, buf);
+ dd5750 *dp, &lv = *(dp=new (buf) dd5750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd5750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,16), "dd5750");
+ check_base_class_offset(lv, (cc750*), ABISELECT(16,8), "dd5750");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5750.d");
+ test_class_info(&lv, &cd_dd5750);
+ dp->~dd5750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5750(Test_dd5750, "dd5750", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5750C1Ev();
+extern void _ZN6dd5750D1Ev();
+Name_Map name_map_dd5750[] = {
+ NSPAIR(_ZN6dd5750C1Ev),
+ NSPAIR(_ZN6dd5750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd5750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern void _ZN6dd57503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd5750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd5750[] = {
+ {&(_ZTV6dd5750[5]), 5,19},
+ {&(_ZTV6dd5750[12]), 12,19},
+ {&(_ZTV6dd5750[18]), 18,19},
+ {&(_tg__ZTV5cc750__6dd5750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd5750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd5750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static VTBL_ENTRY alt_thunk_names399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5750 = { "dd5750", // class name
+ bases_dd5750, 3,
+ &(vtc_dd5750[0]), // expected_vtbl_contents
+ &(vtt_dd5750[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5750),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05750 : dd5750 {
+ int e;
+ ~ee05750(); // tgen
+ ee05750(); // tgen
+};
+//SIG(1 ee05750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05750 ::~ee05750(){ note_dtor("ee05750", this);} // tgen
+ee05750 ::ee05750(){ note_ctor("ee05750", this);} // tgen
+
+static void Test_ee05750()
+{
+ extern Class_Descriptor cd_ee05750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05750, buf);
+ ee05750 *dp, &lv = *(dp=new (buf) ee05750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee05750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee05750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(16,12), "ee05750");
+ check_base_class_offset(lv, (dd5750*), 0, "ee05750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05750.e");
+ test_class_info(&lv, &cd_ee05750);
+ dp->~ee05750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05750(Test_ee05750, "ee05750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05750C1Ev();
+extern void _ZN7ee05750D1Ev();
+Name_Map name_map_ee05750[] = {
+ NSPAIR(_ZN7ee05750C1Ev),
+ NSPAIR(_ZN7ee05750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee05750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05750[];
+extern void _ZN6dd57503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee05750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee05750[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee05750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee05750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee05750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee05750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee05750[] = {
+ {&(_ZTV7ee05750[5]), 5,19},
+ {&(_tg__ZTV6dd5750__7ee05750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee05750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee05750[4]), 4,5},
+ {&(_ZTV7ee05750[12]), 12,19},
+ {&(_ZTV7ee05750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee05750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee05750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee05750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05750[];
+extern VTBL_ENTRY _ZTV7ee05750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05750[];
+static VTBL_ENTRY alt_thunk_names400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05750 = { "ee05750", // class name
+ bases_ee05750, 4,
+ &(vtc_ee05750[0]), // expected_vtbl_contents
+ &(vtt_ee05750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names400,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15750 : virtual dd5750 {
+ int e;
+ ~ee15750(); // tgen
+ ee15750(); // tgen
+};
+//SIG(1 ee15750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15750 ::~ee15750(){ note_dtor("ee15750", this);} // tgen
+ee15750 ::ee15750(){ note_ctor("ee15750", this);} // tgen
+
+static void Test_ee15750()
+{
+ extern Class_Descriptor cd_ee15750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15750, buf);
+ ee15750 *dp, &lv = *(dp=new (buf) ee15750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee15750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee15750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(32,16), "ee15750");
+ check_base_class_offset(lv, (dd5750*), ABISELECT(16,8), "ee15750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15750.e");
+ test_class_info(&lv, &cd_ee15750);
+ dp->~ee15750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15750(Test_ee15750, "ee15750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15750C1Ev();
+extern void _ZN7ee15750D1Ev();
+Name_Map name_map_ee15750[] = {
+ NSPAIR(_ZN7ee15750C1Ev),
+ NSPAIR(_ZN7ee15750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee15750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee15750[];
+extern void _ZN6dd57503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15750[0]),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee15750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee15750[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee15750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee15750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee15750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee15750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee15750[] = {
+ {&(_ZTV7ee15750[6]), 6,26},
+ {&(_ZTV7ee15750[12]), 12,26},
+ {&(_ZTV7ee15750[19]), 19,26},
+ {&(_ZTV7ee15750[25]), 25,26},
+ {&(_tg__ZTV6dd5750__7ee15750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee15750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee15750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee15750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee15750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee15750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15750[];
+extern VTBL_ENTRY _ZTV7ee15750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15750[];
+static VTBL_ENTRY alt_thunk_names401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15750 = { "ee15750", // class name
+ bases_ee15750, 4,
+ &(vtc_ee15750[0]), // expected_vtbl_contents
+ &(vtt_ee15750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15750),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names401,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25750 : dd5750 {
+ int e;
+ virtual void foo(); // _ZN7ee257503fooEv
+ ~ee25750(); // tgen
+ ee25750(); // tgen
+};
+//SIG(1 ee25750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25750 ::foo(){vfunc_called(this, "_ZN7ee257503fooEv");}
+ee25750 ::~ee25750(){ note_dtor("ee25750", this);} // tgen
+ee25750 ::ee25750(){ note_ctor("ee25750", this);} // tgen
+
+static void Test_ee25750()
+{
+ extern Class_Descriptor cd_ee25750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25750, buf);
+ ee25750 *dp, &lv = *(dp=new (buf) ee25750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee25750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee25750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(16,12), "ee25750");
+ check_base_class_offset(lv, (dd5750*), 0, "ee25750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25750.e");
+ test_class_info(&lv, &cd_ee25750);
+ dp->~ee25750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25750(Test_ee25750, "ee25750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25750C1Ev();
+extern void _ZN7ee25750D1Ev();
+Name_Map name_map_ee25750[] = {
+ NSPAIR(_ZN7ee25750C1Ev),
+ NSPAIR(_ZN7ee25750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee25750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25750[];
+extern void _ZN6dd57503barEv();
+extern void _ZN7ee257503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee257503fooEv,_ZTv0_n20_N7ee257503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257503fooEv,_ZThn12_N7ee257503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+ (VTBL_ENTRY)&_ZN7ee257503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee257503fooEv,_ZTv0_n20_N7ee257503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee25750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee25750[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee25750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee25750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee25750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee25750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee25750[] = {
+ {&(_ZTV7ee25750[5]), 5,20},
+ {&(_tg__ZTV6dd5750__7ee25750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee25750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee25750[4]), 4,5},
+ {&(_ZTV7ee25750[13]), 13,20},
+ {&(_ZTV7ee25750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee25750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee25750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee25750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25750[];
+extern VTBL_ENTRY _ZTV7ee25750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25750[];
+static VTBL_ENTRY alt_thunk_names402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee257503fooEv,_ZTv0_n20_N7ee257503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257503fooEv,_ZThn12_N7ee257503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25750 = { "ee25750", // class name
+ bases_ee25750, 4,
+ &(vtc_ee25750[0]), // expected_vtbl_contents
+ &(vtt_ee25750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names402,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35750 : virtual dd5750 {
+ int e;
+ virtual void foo(); // _ZN7ee357503fooEv
+ ~ee35750(); // tgen
+ ee35750(); // tgen
+};
+//SIG(1 ee35750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35750 ::foo(){vfunc_called(this, "_ZN7ee357503fooEv");}
+ee35750 ::~ee35750(){ note_dtor("ee35750", this);} // tgen
+ee35750 ::ee35750(){ note_ctor("ee35750", this);} // tgen
+
+static void Test_ee35750()
+{
+ extern Class_Descriptor cd_ee35750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35750, buf);
+ ee35750 *dp, &lv = *(dp=new (buf) ee35750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee35750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee35750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(32,16), "ee35750");
+ check_base_class_offset(lv, (dd5750*), ABISELECT(16,8), "ee35750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35750.e");
+ test_class_info(&lv, &cd_ee35750);
+ dp->~ee35750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35750(Test_ee35750, "ee35750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35750C1Ev();
+extern void _ZN7ee35750D1Ev();
+Name_Map name_map_ee35750[] = {
+ NSPAIR(_ZN7ee35750C1Ev),
+ NSPAIR(_ZN7ee35750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee35750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee35750[];
+extern void _ZN7ee357503fooEv();
+extern void _ZN6dd57503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee357503fooEv,_ZTv0_n20_N7ee357503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357503fooEv,_ZThn16_N7ee357503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35750[0]),
+ (VTBL_ENTRY)&_ZN7ee357503fooEv,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee357503fooEv,_ZTv0_n20_N7ee357503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee35750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee35750[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee35750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee35750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee35750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee35750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee35750[] = {
+ {&(_ZTV7ee35750[6]), 6,27},
+ {&(_ZTV7ee35750[13]), 13,27},
+ {&(_ZTV7ee35750[20]), 20,27},
+ {&(_ZTV7ee35750[26]), 26,27},
+ {&(_tg__ZTV6dd5750__7ee35750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee35750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee35750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee35750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee35750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee35750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35750[];
+extern VTBL_ENTRY _ZTV7ee35750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35750[];
+static VTBL_ENTRY alt_thunk_names403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee357503fooEv,_ZTv0_n20_N7ee357503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357503fooEv,_ZThn16_N7ee357503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35750 = { "ee35750", // class name
+ bases_ee35750, 4,
+ &(vtc_ee35750[0]), // expected_vtbl_contents
+ &(vtt_ee35750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35750),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45750 : dd5750 {
+ int e;
+ virtual void bar(); // _ZN7ee457503barEv
+ ~ee45750(); // tgen
+ ee45750(); // tgen
+};
+//SIG(1 ee45750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45750 ::bar(){vfunc_called(this, "_ZN7ee457503barEv");}
+ee45750 ::~ee45750(){ note_dtor("ee45750", this);} // tgen
+ee45750 ::ee45750(){ note_ctor("ee45750", this);} // tgen
+
+static void Test_ee45750()
+{
+ extern Class_Descriptor cd_ee45750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45750, buf);
+ ee45750 *dp, &lv = *(dp=new (buf) ee45750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee45750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee45750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(16,12), "ee45750");
+ check_base_class_offset(lv, (dd5750*), 0, "ee45750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45750.e");
+ test_class_info(&lv, &cd_ee45750);
+ dp->~ee45750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45750(Test_ee45750, "ee45750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45750C1Ev();
+extern void _ZN7ee45750D1Ev();
+Name_Map name_map_ee45750[] = {
+ NSPAIR(_ZN7ee45750C1Ev),
+ NSPAIR(_ZN7ee45750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee45750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45750[];
+extern void _ZN7ee457503barEv();
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee457503barEv,_ZTv0_n24_N7ee457503barEv)();
+extern void ABISELECT(_ZThn16_N7ee457503barEv,_ZThn12_N7ee457503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457503barEv,_ZTv0_n16_N7ee457503barEv)();
+extern void ABISELECT(_ZThn32_N7ee457503barEv,_ZThn20_N7ee457503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45750[0]),
+ (VTBL_ENTRY)&_ZN7ee457503barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee457503barEv,_ZTv0_n24_N7ee457503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457503barEv,_ZTv0_n16_N7ee457503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee45750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee45750[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee45750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee45750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee45750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee45750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee45750[] = {
+ {&(_ZTV7ee45750[5]), 5,19},
+ {&(_tg__ZTV6dd5750__7ee45750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee45750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee45750[4]), 4,5},
+ {&(_ZTV7ee45750[12]), 12,19},
+ {&(_ZTV7ee45750[18]), 18,19},
+ {&(_tg__ZTV5cc750__7ee45750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee45750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee45750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45750[];
+extern VTBL_ENTRY _ZTV7ee45750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45750[];
+static VTBL_ENTRY alt_thunk_names404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457503barEv,_ZTv0_n16_N7ee457503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457503barEv,_ZThn20_N7ee457503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee457503barEv,_ZTv0_n24_N7ee457503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457503barEv,_ZThn12_N7ee457503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45750 = { "ee45750", // class name
+ bases_ee45750, 4,
+ &(vtc_ee45750[0]), // expected_vtbl_contents
+ &(vtt_ee45750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names404,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55750 : virtual dd5750 {
+ int e;
+ virtual void bar(); // _ZN7ee557503barEv
+ ~ee55750(); // tgen
+ ee55750(); // tgen
+};
+//SIG(1 ee55750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55750 ::bar(){vfunc_called(this, "_ZN7ee557503barEv");}
+ee55750 ::~ee55750(){ note_dtor("ee55750", this);} // tgen
+ee55750 ::ee55750(){ note_ctor("ee55750", this);} // tgen
+
+static void Test_ee55750()
+{
+ extern Class_Descriptor cd_ee55750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55750, buf);
+ ee55750 *dp, &lv = *(dp=new (buf) ee55750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee55750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee55750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(32,16), "ee55750");
+ check_base_class_offset(lv, (dd5750*), ABISELECT(16,8), "ee55750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55750.e");
+ test_class_info(&lv, &cd_ee55750);
+ dp->~ee55750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55750(Test_ee55750, "ee55750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55750C1Ev();
+extern void _ZN7ee55750D1Ev();
+Name_Map name_map_ee55750[] = {
+ NSPAIR(_ZN7ee55750C1Ev),
+ NSPAIR(_ZN7ee55750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee55750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee55750[];
+extern void _ZN7ee557503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557503barEv,_ZTv0_n24_N7ee557503barEv)();
+extern void ABISELECT(_ZThn16_N7ee557503barEv,_ZThn8_N7ee557503barEv)() __attribute__((weak));
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557503barEv,_ZTv0_n24_N7ee557503barEv)();
+extern void ABISELECT(_ZThn32_N7ee557503barEv,_ZThn16_N7ee557503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557503barEv,_ZTv0_n16_N7ee557503barEv)();
+extern void ABISELECT(_ZThn48_N7ee557503barEv,_ZThn24_N7ee557503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55750[0]),
+ (VTBL_ENTRY)&_ZN7ee557503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557503barEv,_ZTv0_n24_N7ee557503barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557503barEv,_ZTv0_n24_N7ee557503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557503barEv,_ZTv0_n16_N7ee557503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee55750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee55750[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee55750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee55750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee55750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee55750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee55750[] = {
+ {&(_ZTV7ee55750[6]), 6,27},
+ {&(_ZTV7ee55750[13]), 13,27},
+ {&(_ZTV7ee55750[20]), 20,27},
+ {&(_ZTV7ee55750[26]), 26,27},
+ {&(_tg__ZTV6dd5750__7ee55750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee55750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee55750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee55750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee55750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee55750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55750[];
+extern VTBL_ENTRY _ZTV7ee55750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55750[];
+static VTBL_ENTRY alt_thunk_names405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557503barEv,_ZTv0_n16_N7ee557503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557503barEv,_ZThn24_N7ee557503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee557503barEv,_ZTv0_n24_N7ee557503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557503barEv,_ZThn16_N7ee557503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557503barEv,_ZThn8_N7ee557503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55750 = { "ee55750", // class name
+ bases_ee55750, 4,
+ &(vtc_ee55750[0]), // expected_vtbl_contents
+ &(vtt_ee55750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55750),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names405,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65750 : dd5750 {
+ int e;
+ virtual void foo(); // _ZN7ee657503fooEv
+ virtual void bar(); // _ZN7ee657503barEv
+ ~ee65750(); // tgen
+ ee65750(); // tgen
+};
+//SIG(1 ee65750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65750 ::foo(){vfunc_called(this, "_ZN7ee657503fooEv");}
+void ee65750 ::bar(){vfunc_called(this, "_ZN7ee657503barEv");}
+ee65750 ::~ee65750(){ note_dtor("ee65750", this);} // tgen
+ee65750 ::ee65750(){ note_ctor("ee65750", this);} // tgen
+
+static void Test_ee65750()
+{
+ extern Class_Descriptor cd_ee65750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65750, buf);
+ ee65750 *dp, &lv = *(dp=new (buf) ee65750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee65750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee65750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(16,12), "ee65750");
+ check_base_class_offset(lv, (dd5750*), 0, "ee65750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65750.e");
+ test_class_info(&lv, &cd_ee65750);
+ dp->~ee65750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65750(Test_ee65750, "ee65750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65750C1Ev();
+extern void _ZN7ee65750D1Ev();
+Name_Map name_map_ee65750[] = {
+ NSPAIR(_ZN7ee65750C1Ev),
+ NSPAIR(_ZN7ee65750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee65750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65750[];
+extern void _ZN7ee657503barEv();
+extern void _ZN7ee657503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee657503fooEv,_ZTv0_n20_N7ee657503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657503fooEv,_ZThn12_N7ee657503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee657503barEv,_ZTv0_n24_N7ee657503barEv)();
+extern void ABISELECT(_ZThn16_N7ee657503barEv,_ZThn12_N7ee657503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657503barEv,_ZTv0_n16_N7ee657503barEv)();
+extern void ABISELECT(_ZThn32_N7ee657503barEv,_ZThn20_N7ee657503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65750[0]),
+ (VTBL_ENTRY)&_ZN7ee657503barEv,
+ (VTBL_ENTRY)&_ZN7ee657503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657503fooEv,_ZTv0_n20_N7ee657503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee657503barEv,_ZTv0_n24_N7ee657503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657503barEv,_ZTv0_n16_N7ee657503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee65750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee65750[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee65750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee65750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee65750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee65750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee65750[] = {
+ {&(_ZTV7ee65750[5]), 5,20},
+ {&(_tg__ZTV6dd5750__7ee65750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee65750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee65750[4]), 4,5},
+ {&(_ZTV7ee65750[13]), 13,20},
+ {&(_ZTV7ee65750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee65750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee65750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee65750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65750[];
+extern VTBL_ENTRY _ZTV7ee65750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65750[];
+static VTBL_ENTRY alt_thunk_names406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn20_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn12_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657503barEv,_ZTv0_n16_N7ee657503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657503barEv,_ZThn20_N7ee657503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee657503barEv,_ZTv0_n24_N7ee657503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657503barEv,_ZThn12_N7ee657503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657503fooEv,_ZTv0_n20_N7ee657503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657503fooEv,_ZThn12_N7ee657503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65750 = { "ee65750", // class name
+ bases_ee65750, 4,
+ &(vtc_ee65750[0]), // expected_vtbl_contents
+ &(vtt_ee65750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names406,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75750 : virtual dd5750 {
+ int e;
+ virtual void foo(); // _ZN7ee757503fooEv
+ virtual void bar(); // _ZN7ee757503barEv
+ ~ee75750(); // tgen
+ ee75750(); // tgen
+};
+//SIG(1 ee75750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75750 ::foo(){vfunc_called(this, "_ZN7ee757503fooEv");}
+void ee75750 ::bar(){vfunc_called(this, "_ZN7ee757503barEv");}
+ee75750 ::~ee75750(){ note_dtor("ee75750", this);} // tgen
+ee75750 ::ee75750(){ note_ctor("ee75750", this);} // tgen
+
+static void Test_ee75750()
+{
+ extern Class_Descriptor cd_ee75750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75750, buf);
+ ee75750 *dp, &lv = *(dp=new (buf) ee75750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee75750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee75750");
+ check_base_class_offset(lv, (cc750*)(dd5750*), ABISELECT(32,16), "ee75750");
+ check_base_class_offset(lv, (dd5750*), ABISELECT(16,8), "ee75750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75750.e");
+ test_class_info(&lv, &cd_ee75750);
+ dp->~ee75750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75750(Test_ee75750, "ee75750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75750C1Ev();
+extern void _ZN7ee75750D1Ev();
+Name_Map name_map_ee75750[] = {
+ NSPAIR(_ZN7ee75750C1Ev),
+ NSPAIR(_ZN7ee75750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd5750;
+extern VTBL_ENTRY _ZTI6dd5750[];
+extern VTBL_ENTRY _ZTV6dd5750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5750[];
+static Base_Class bases_ee75750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5750, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee75750[];
+extern void _ZN7ee757503fooEv();
+extern void _ZN7ee757503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee757503barEv,_ZTv0_n24_N7ee757503barEv)();
+extern void ABISELECT(_ZThn16_N7ee757503barEv,_ZThn8_N7ee757503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757503fooEv,_ZTv0_n20_N7ee757503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757503fooEv,_ZThn16_N7ee757503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee757503barEv,_ZTv0_n24_N7ee757503barEv)();
+extern void ABISELECT(_ZThn32_N7ee757503barEv,_ZThn16_N7ee757503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757503barEv,_ZTv0_n16_N7ee757503barEv)();
+extern void ABISELECT(_ZThn48_N7ee757503barEv,_ZThn24_N7ee757503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75750[0]),
+ (VTBL_ENTRY)&_ZN7ee757503fooEv,
+ (VTBL_ENTRY)&_ZN7ee757503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757503barEv,_ZTv0_n24_N7ee757503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757503fooEv,_ZTv0_n20_N7ee757503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757503barEv,_ZTv0_n24_N7ee757503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757503barEv,_ZTv0_n16_N7ee757503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75750[];
+extern void _ZN6dd57503barEv();
+static VTBL_ENTRY _tg__ZTV6dd5750__7ee75750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN6dd57503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv)();
+extern void ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd5750__7ee75750[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv)();
+extern void ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd5750__7ee75750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee75750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee75750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee75750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee75750[] = {
+ {&(_ZTV7ee75750[6]), 6,28},
+ {&(_ZTV7ee75750[14]), 14,28},
+ {&(_ZTV7ee75750[21]), 21,28},
+ {&(_ZTV7ee75750[27]), 27,28},
+ {&(_tg__ZTV6dd5750__7ee75750[5]), 5,6},
+ {&(_tg__ZTV5cc750__6dd5750__7ee75750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd5750__7ee75750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee75750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee75750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee75750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75750[];
+extern VTBL_ENTRY _ZTV7ee75750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75750[];
+static VTBL_ENTRY alt_thunk_names407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57503barEv,_ZTv0_n16_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57503barEv,_ZThn16_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57503barEv,_ZTv0_n24_N6dd57503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57503barEv,_ZThn8_N6dd57503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757503barEv,_ZTv0_n16_N7ee757503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757503barEv,_ZThn24_N7ee757503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757503fooEv,_ZTv0_n20_N7ee757503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757503fooEv,_ZThn16_N7ee757503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee757503barEv,_ZTv0_n24_N7ee757503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757503barEv,_ZThn16_N7ee757503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757503barEv,_ZThn8_N7ee757503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75750 = { "ee75750", // class name
+ bases_ee75750, 4,
+ &(vtc_ee75750[0]), // expected_vtbl_contents
+ &(vtt_ee75750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75750),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names407,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6750 : cc750 {
+ int d;
+ virtual void bar(); // _ZN6dd67503barEv
+ virtual void foo(); // _ZN6dd67503fooEv
+ ~dd6750(); // tgen
+ dd6750(); // tgen
+};
+//SIG(-1 dd6750) C1{ BC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6750 ::bar(){vfunc_called(this, "_ZN6dd67503barEv");}
+void dd6750 ::foo(){vfunc_called(this, "_ZN6dd67503fooEv");}
+dd6750 ::~dd6750(){ note_dtor("dd6750", this);} // tgen
+dd6750 ::dd6750(){ note_ctor("dd6750", this);} // tgen
+
+static void Test_dd6750()
+{
+ extern Class_Descriptor cd_dd6750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,7)];
+ init_test(&cd_dd6750, buf);
+ dd6750 *dp, &lv = *(dp=new (buf) dd6750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,24), "sizeof(dd6750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(28,20), "dd6750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(16,12), "dd6750");
+ check_base_class_offset(lv, (cc750*), 0, "dd6750");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6750.d");
+ test_class_info(&lv, &cd_dd6750);
+ dp->~dd6750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6750(Test_dd6750, "dd6750", ABISELECT(32,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6750C1Ev();
+extern void _ZN6dd6750D1Ev();
+Name_Map name_map_dd6750[] = {
+ NSPAIR(_ZN6dd6750C1Ev),
+ NSPAIR(_ZN6dd6750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd6750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(28,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd6750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd6750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd6750[] = {
+ {&(_ZTV6dd6750[4]), 4,11},
+ {&(_tg__ZTV5cc750__6dd6750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd6750[4]), 4,5},
+ {&(_ZTV6dd6750[10]), 10,11},
+ {&(_tg__ZTV4bb50__6dd6750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static VTBL_ENTRY alt_thunk_names408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6750 = { "dd6750", // class name
+ bases_dd6750, 3,
+ &(vtc_dd6750[0]), // expected_vtbl_contents
+ &(vtt_dd6750[0]), // expected_vtt_contents
+ ABISELECT(32,24), // object size
+ NSPAIRA(_ZTI6dd6750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6750),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06750 : dd6750 {
+ int e;
+ ~ee06750(); // tgen
+ ee06750(); // tgen
+};
+//SIG(1 ee06750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06750 ::~ee06750(){ note_dtor("ee06750", this);} // tgen
+ee06750 ::ee06750(){ note_ctor("ee06750", this);} // tgen
+
+static void Test_ee06750()
+{
+ extern Class_Descriptor cd_ee06750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06750, buf);
+ ee06750 *dp, &lv = *(dp=new (buf) ee06750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee06750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(24,16), "ee06750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), 0, "ee06750");
+ check_base_class_offset(lv, (dd6750*), 0, "ee06750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06750.e");
+ test_class_info(&lv, &cd_ee06750);
+ dp->~ee06750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06750(Test_ee06750, "ee06750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06750C1Ev();
+extern void _ZN7ee06750D1Ev();
+Name_Map name_map_ee06750[] = {
+ NSPAIR(_ZN7ee06750C1Ev),
+ NSPAIR(_ZN7ee06750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee06750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee06750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee06750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee06750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee06750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee06750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee06750[] = {
+ {&(_ZTV7ee06750[4]), 4,11},
+ {&(_tg__ZTV6dd6750__7ee06750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee06750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee06750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee06750[4]), 4,5},
+ {&(_ZTV7ee06750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee06750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06750[];
+extern VTBL_ENTRY _ZTV7ee06750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06750[];
+static VTBL_ENTRY alt_thunk_names409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06750 = { "ee06750", // class name
+ bases_ee06750, 4,
+ &(vtc_ee06750[0]), // expected_vtbl_contents
+ &(vtt_ee06750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names409,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16750 : virtual dd6750 {
+ int e;
+ ~ee16750(); // tgen
+ ee16750(); // tgen
+};
+//SIG(1 ee16750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16750 ::~ee16750(){ note_dtor("ee16750", this);} // tgen
+ee16750 ::ee16750(){ note_ctor("ee16750", this);} // tgen
+
+static void Test_ee16750()
+{
+ extern Class_Descriptor cd_ee16750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee16750, buf);
+ ee16750 *dp, &lv = *(dp=new (buf) ee16750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee16750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee16750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(32,20), "ee16750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), ABISELECT(16,8), "ee16750");
+ check_base_class_offset(lv, (dd6750*), ABISELECT(16,8), "ee16750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16750.e");
+ test_class_info(&lv, &cd_ee16750);
+ dp->~ee16750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16750(Test_ee16750, "ee16750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16750C1Ev();
+extern void _ZN7ee16750D1Ev();
+Name_Map name_map_ee16750[] = {
+ NSPAIR(_ZN7ee16750C1Ev),
+ NSPAIR(_ZN7ee16750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee16750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee16750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16750[0]),
+ 0,
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee16750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee16750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee16750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee16750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee16750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee16750[] = {
+ {&(_ZTV7ee16750[5]), 5,18},
+ {&(_ZTV7ee16750[11]), 11,18},
+ {&(_ZTV7ee16750[17]), 17,18},
+ {&(_tg__ZTV6dd6750__7ee16750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee16750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee16750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee16750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee16750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16750[];
+extern VTBL_ENTRY _ZTV7ee16750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16750[];
+static VTBL_ENTRY alt_thunk_names410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16750 = { "ee16750", // class name
+ bases_ee16750, 4,
+ &(vtc_ee16750[0]), // expected_vtbl_contents
+ &(vtt_ee16750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee16750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16750),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26750 : dd6750 {
+ int e;
+ virtual void foo(); // _ZN7ee267503fooEv
+ ~ee26750(); // tgen
+ ee26750(); // tgen
+};
+//SIG(1 ee26750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26750 ::foo(){vfunc_called(this, "_ZN7ee267503fooEv");}
+ee26750 ::~ee26750(){ note_dtor("ee26750", this);} // tgen
+ee26750 ::ee26750(){ note_ctor("ee26750", this);} // tgen
+
+static void Test_ee26750()
+{
+ extern Class_Descriptor cd_ee26750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26750, buf);
+ ee26750 *dp, &lv = *(dp=new (buf) ee26750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee26750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(24,16), "ee26750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), 0, "ee26750");
+ check_base_class_offset(lv, (dd6750*), 0, "ee26750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26750.e");
+ test_class_info(&lv, &cd_ee26750);
+ dp->~ee26750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26750(Test_ee26750, "ee26750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26750C1Ev();
+extern void _ZN7ee26750D1Ev();
+Name_Map name_map_ee26750[] = {
+ NSPAIR(_ZN7ee26750C1Ev),
+ NSPAIR(_ZN7ee26750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee26750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26750[];
+extern void _ZN7ee267503fooEv();
+extern void _ZN6dd67503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26750[0]),
+ (VTBL_ENTRY)&_ZN7ee267503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee26750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee26750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee26750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee26750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee26750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee26750[] = {
+ {&(_ZTV7ee26750[4]), 4,11},
+ {&(_tg__ZTV6dd6750__7ee26750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee26750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee26750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee26750[4]), 4,5},
+ {&(_ZTV7ee26750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee26750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26750[];
+extern VTBL_ENTRY _ZTV7ee26750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26750[];
+static VTBL_ENTRY alt_thunk_names411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26750 = { "ee26750", // class name
+ bases_ee26750, 4,
+ &(vtc_ee26750[0]), // expected_vtbl_contents
+ &(vtt_ee26750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names411,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36750 : virtual dd6750 {
+ int e;
+ virtual void foo(); // _ZN7ee367503fooEv
+ ~ee36750(); // tgen
+ ee36750(); // tgen
+};
+//SIG(1 ee36750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36750 ::foo(){vfunc_called(this, "_ZN7ee367503fooEv");}
+ee36750 ::~ee36750(){ note_dtor("ee36750", this);} // tgen
+ee36750 ::ee36750(){ note_ctor("ee36750", this);} // tgen
+
+static void Test_ee36750()
+{
+ extern Class_Descriptor cd_ee36750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee36750, buf);
+ ee36750 *dp, &lv = *(dp=new (buf) ee36750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee36750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee36750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(32,20), "ee36750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), ABISELECT(16,8), "ee36750");
+ check_base_class_offset(lv, (dd6750*), ABISELECT(16,8), "ee36750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36750.e");
+ test_class_info(&lv, &cd_ee36750);
+ dp->~ee36750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36750(Test_ee36750, "ee36750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36750C1Ev();
+extern void _ZN7ee36750D1Ev();
+Name_Map name_map_ee36750[] = {
+ NSPAIR(_ZN7ee36750C1Ev),
+ NSPAIR(_ZN7ee36750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee36750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee36750[];
+extern void _ZN7ee367503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee367503fooEv,_ZTv0_n20_N7ee367503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367503fooEv,_ZThn8_N7ee367503fooEv)() __attribute__((weak));
+extern void _ZN6dd67503barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36750[0]),
+ (VTBL_ENTRY)&_ZN7ee367503fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee367503fooEv,_ZTv0_n20_N7ee367503fooEv),
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee36750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee36750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee36750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee36750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee36750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee36750[] = {
+ {&(_ZTV7ee36750[5]), 5,19},
+ {&(_ZTV7ee36750[12]), 12,19},
+ {&(_ZTV7ee36750[18]), 18,19},
+ {&(_tg__ZTV6dd6750__7ee36750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee36750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee36750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee36750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee36750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36750[];
+extern VTBL_ENTRY _ZTV7ee36750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36750[];
+static VTBL_ENTRY alt_thunk_names412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee367503fooEv,_ZTv0_n20_N7ee367503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367503fooEv,_ZThn8_N7ee367503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36750 = { "ee36750", // class name
+ bases_ee36750, 4,
+ &(vtc_ee36750[0]), // expected_vtbl_contents
+ &(vtt_ee36750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee36750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46750 : dd6750 {
+ int e;
+ virtual void bar(); // _ZN7ee467503barEv
+ ~ee46750(); // tgen
+ ee46750(); // tgen
+};
+//SIG(1 ee46750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46750 ::bar(){vfunc_called(this, "_ZN7ee467503barEv");}
+ee46750 ::~ee46750(){ note_dtor("ee46750", this);} // tgen
+ee46750 ::ee46750(){ note_ctor("ee46750", this);} // tgen
+
+static void Test_ee46750()
+{
+ extern Class_Descriptor cd_ee46750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46750, buf);
+ ee46750 *dp, &lv = *(dp=new (buf) ee46750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee46750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(24,16), "ee46750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), 0, "ee46750");
+ check_base_class_offset(lv, (dd6750*), 0, "ee46750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46750.e");
+ test_class_info(&lv, &cd_ee46750);
+ dp->~ee46750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46750(Test_ee46750, "ee46750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46750C1Ev();
+extern void _ZN7ee46750D1Ev();
+Name_Map name_map_ee46750[] = {
+ NSPAIR(_ZN7ee46750C1Ev),
+ NSPAIR(_ZN7ee46750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee46750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN7ee467503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee467503barEv,_ZTv0_n16_N7ee467503barEv)();
+extern void ABISELECT(_ZThn24_N7ee467503barEv,_ZThn16_N7ee467503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN7ee467503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467503barEv,_ZTv0_n16_N7ee467503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee46750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee46750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee46750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee46750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee46750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee46750[] = {
+ {&(_ZTV7ee46750[4]), 4,11},
+ {&(_tg__ZTV6dd6750__7ee46750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee46750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee46750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee46750[4]), 4,5},
+ {&(_ZTV7ee46750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee46750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46750[];
+extern VTBL_ENTRY _ZTV7ee46750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46750[];
+static VTBL_ENTRY alt_thunk_names413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467503barEv,_ZTv0_n16_N7ee467503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467503barEv,_ZThn16_N7ee467503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46750 = { "ee46750", // class name
+ bases_ee46750, 4,
+ &(vtc_ee46750[0]), // expected_vtbl_contents
+ &(vtt_ee46750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names413,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56750 : virtual dd6750 {
+ int e;
+ virtual void bar(); // _ZN7ee567503barEv
+ ~ee56750(); // tgen
+ ee56750(); // tgen
+};
+//SIG(1 ee56750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56750 ::bar(){vfunc_called(this, "_ZN7ee567503barEv");}
+ee56750 ::~ee56750(){ note_dtor("ee56750", this);} // tgen
+ee56750 ::ee56750(){ note_ctor("ee56750", this);} // tgen
+
+static void Test_ee56750()
+{
+ extern Class_Descriptor cd_ee56750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee56750, buf);
+ ee56750 *dp, &lv = *(dp=new (buf) ee56750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee56750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee56750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(32,20), "ee56750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), ABISELECT(16,8), "ee56750");
+ check_base_class_offset(lv, (dd6750*), ABISELECT(16,8), "ee56750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56750.e");
+ test_class_info(&lv, &cd_ee56750);
+ dp->~ee56750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56750(Test_ee56750, "ee56750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56750C1Ev();
+extern void _ZN7ee56750D1Ev();
+Name_Map name_map_ee56750[] = {
+ NSPAIR(_ZN7ee56750C1Ev),
+ NSPAIR(_ZN7ee56750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee56750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee56750[];
+extern void _ZN7ee567503barEv();
+extern void _ZN6dd67503fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee567503barEv,_ZTv0_n24_N7ee567503barEv)();
+extern void ABISELECT(_ZThn16_N7ee567503barEv,_ZThn8_N7ee567503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567503barEv,_ZTv0_n16_N7ee567503barEv)();
+extern void ABISELECT(_ZThn32_N7ee567503barEv,_ZThn20_N7ee567503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56750[0]),
+ (VTBL_ENTRY)&_ZN7ee567503barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee567503barEv,_ZTv0_n24_N7ee567503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567503barEv,_ZTv0_n16_N7ee567503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee56750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee56750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee56750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee56750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee56750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee56750[] = {
+ {&(_ZTV7ee56750[5]), 5,19},
+ {&(_ZTV7ee56750[12]), 12,19},
+ {&(_ZTV7ee56750[18]), 18,19},
+ {&(_tg__ZTV6dd6750__7ee56750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee56750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee56750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee56750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee56750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56750[];
+extern VTBL_ENTRY _ZTV7ee56750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56750[];
+static VTBL_ENTRY alt_thunk_names414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567503barEv,_ZTv0_n16_N7ee567503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567503barEv,_ZThn20_N7ee567503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee567503barEv,_ZTv0_n24_N7ee567503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567503barEv,_ZThn8_N7ee567503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56750 = { "ee56750", // class name
+ bases_ee56750, 4,
+ &(vtc_ee56750[0]), // expected_vtbl_contents
+ &(vtt_ee56750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee56750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56750),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names414,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66750 : dd6750 {
+ int e;
+ virtual void foo(); // _ZN7ee667503fooEv
+ virtual void bar(); // _ZN7ee667503barEv
+ ~ee66750(); // tgen
+ ee66750(); // tgen
+};
+//SIG(1 ee66750) C1{ BC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66750 ::foo(){vfunc_called(this, "_ZN7ee667503fooEv");}
+void ee66750 ::bar(){vfunc_called(this, "_ZN7ee667503barEv");}
+ee66750 ::~ee66750(){ note_dtor("ee66750", this);} // tgen
+ee66750 ::ee66750(){ note_ctor("ee66750", this);} // tgen
+
+static void Test_ee66750()
+{
+ extern Class_Descriptor cd_ee66750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66750, buf);
+ ee66750 *dp, &lv = *(dp=new (buf) ee66750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(36,24), "ee66750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(24,16), "ee66750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), 0, "ee66750");
+ check_base_class_offset(lv, (dd6750*), 0, "ee66750");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66750.e");
+ test_class_info(&lv, &cd_ee66750);
+ dp->~ee66750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66750(Test_ee66750, "ee66750", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66750C1Ev();
+extern void _ZN7ee66750D1Ev();
+Name_Map name_map_ee66750[] = {
+ NSPAIR(_ZN7ee66750C1Ev),
+ NSPAIR(_ZN7ee66750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee66750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(36,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66750[];
+extern void _ZN7ee667503fooEv();
+extern void _ZN7ee667503barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee667503barEv,_ZTv0_n16_N7ee667503barEv)();
+extern void ABISELECT(_ZThn24_N7ee667503barEv,_ZThn16_N7ee667503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66750[0]),
+ (VTBL_ENTRY)&_ZN7ee667503fooEv,
+ (VTBL_ENTRY)&_ZN7ee667503barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667503barEv,_ZTv0_n16_N7ee667503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee66750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee66750[] = {
+ ABISELECT(36,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee66750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee66750[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(12,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee66750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee66750[] = {
+ {&(_ZTV7ee66750[4]), 4,11},
+ {&(_tg__ZTV6dd6750__7ee66750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee66750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee66750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee66750[4]), 4,5},
+ {&(_ZTV7ee66750[10]), 10,11},
+ {&(_tg__ZTV4bb50__7ee66750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66750[];
+extern VTBL_ENTRY _ZTV7ee66750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66750[];
+static VTBL_ENTRY alt_thunk_names415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67503barEv,_ZThn16_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7503barEv,_ZThn16_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667503barEv,_ZTv0_n16_N7ee667503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667503barEv,_ZThn16_N7ee667503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66750 = { "ee66750", // class name
+ bases_ee66750, 4,
+ &(vtc_ee66750[0]), // expected_vtbl_contents
+ &(vtt_ee66750[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66750),11, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66750),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names415,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76750 : virtual dd6750 {
+ int e;
+ virtual void foo(); // _ZN7ee767503fooEv
+ virtual void bar(); // _ZN7ee767503barEv
+ ~ee76750(); // tgen
+ ee76750(); // tgen
+};
+//SIG(1 ee76750) C1{ VBC2{ BC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76750 ::foo(){vfunc_called(this, "_ZN7ee767503fooEv");}
+void ee76750 ::bar(){vfunc_called(this, "_ZN7ee767503barEv");}
+ee76750 ::~ee76750(){ note_dtor("ee76750", this);} // tgen
+ee76750 ::ee76750(){ note_ctor("ee76750", this);} // tgen
+
+static void Test_ee76750()
+{
+ extern Class_Descriptor cd_ee76750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee76750, buf);
+ ee76750 *dp, &lv = *(dp=new (buf) ee76750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee76750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee76750");
+ check_base_class_offset(lv, (bb50*)(cc750*)(dd6750*), ABISELECT(32,20), "ee76750");
+ check_base_class_offset(lv, (cc750*)(dd6750*), ABISELECT(16,8), "ee76750");
+ check_base_class_offset(lv, (dd6750*), ABISELECT(16,8), "ee76750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76750.e");
+ test_class_info(&lv, &cd_ee76750);
+ dp->~ee76750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76750(Test_ee76750, "ee76750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76750C1Ev();
+extern void _ZN7ee76750D1Ev();
+Name_Map name_map_ee76750[] = {
+ NSPAIR(_ZN7ee76750C1Ev),
+ NSPAIR(_ZN7ee76750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd6750;
+extern VTBL_ENTRY _ZTI6dd6750[];
+extern VTBL_ENTRY _ZTV6dd6750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6750[];
+static Base_Class bases_ee76750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI7ee76750[];
+extern void _ZN7ee767503fooEv();
+extern void _ZN7ee767503barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee767503fooEv,_ZTv0_n20_N7ee767503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767503fooEv,_ZThn8_N7ee767503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee767503barEv,_ZTv0_n24_N7ee767503barEv)();
+extern void ABISELECT(_ZThn16_N7ee767503barEv,_ZThn8_N7ee767503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767503barEv,_ZTv0_n16_N7ee767503barEv)();
+extern void ABISELECT(_ZThn32_N7ee767503barEv,_ZThn20_N7ee767503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76750[0]),
+ (VTBL_ENTRY)&_ZN7ee767503fooEv,
+ (VTBL_ENTRY)&_ZN7ee767503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767503fooEv,_ZTv0_n20_N7ee767503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee767503barEv,_ZTv0_n24_N7ee767503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767503barEv,_ZTv0_n16_N7ee767503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76750[];
+extern void _ZN6dd67503fooEv();
+extern void _ZN6dd67503barEv();
+static VTBL_ENTRY _tg__ZTV6dd6750__7ee76750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&_ZN6dd67503fooEv,
+ (VTBL_ENTRY)&_ZN6dd67503barEv,
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc7506dd6750__7ee76750[] = {
+ ABISELECT(28,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc7506dd6750__7ee76750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv)();
+extern void ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd6750__7ee76750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(12,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee76750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee76750[] = {
+ {&(_ZTV7ee76750[5]), 5,20},
+ {&(_ZTV7ee76750[13]), 13,20},
+ {&(_ZTV7ee76750[19]), 19,20},
+ {&(_tg__ZTV6dd6750__7ee76750[4]), 4,6},
+ {&(_tg__ZTV5cc7506dd6750__7ee76750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc7506dd6750__7ee76750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd6750__7ee76750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee76750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76750[];
+extern VTBL_ENTRY _ZTV7ee76750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76750[];
+static VTBL_ENTRY alt_thunk_names416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67503barEv,_ZTv0_n16_N6dd67503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67503barEv,_ZThn12_N6dd67503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn12_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767503barEv,_ZTv0_n16_N7ee767503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767503barEv,_ZThn20_N7ee767503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee767503barEv,_ZTv0_n24_N7ee767503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767503barEv,_ZThn8_N7ee767503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767503fooEv,_ZTv0_n20_N7ee767503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767503fooEv,_ZThn8_N7ee767503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76750 = { "ee76750", // class name
+ bases_ee76750, 4,
+ &(vtc_ee76750[0]), // expected_vtbl_contents
+ &(vtt_ee76750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee76750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76750),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names416,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7750 : virtual cc750 {
+ int d;
+ virtual void bar(); // _ZN6dd77503barEv
+ virtual void foo(); // _ZN6dd77503fooEv
+ ~dd7750(); // tgen
+ dd7750(); // tgen
+};
+//SIG(-1 dd7750) C1{ VBC2{ VBC3{ VBC4{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7750 ::bar(){vfunc_called(this, "_ZN6dd77503barEv");}
+void dd7750 ::foo(){vfunc_called(this, "_ZN6dd77503fooEv");}
+dd7750 ::~dd7750(){ note_dtor("dd7750", this);} // tgen
+dd7750 ::dd7750(){ note_ctor("dd7750", this);} // tgen
+
+static void Test_dd7750()
+{
+ extern Class_Descriptor cd_dd7750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7750, buf);
+ dd7750 *dp, &lv = *(dp=new (buf) dd7750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,24), "dd7750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,16), "dd7750");
+ check_base_class_offset(lv, (cc750*), ABISELECT(16,8), "dd7750");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7750.d");
+ test_class_info(&lv, &cd_dd7750);
+ dp->~dd7750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7750(Test_dd7750, "dd7750", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7750C1Ev();
+extern void _ZN6dd7750D1Ev();
+Name_Map name_map_dd7750[] = {
+ NSPAIR(_ZN6dd7750C1Ev),
+ NSPAIR(_ZN6dd7750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+static Base_Class bases_dd7750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__6dd7750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_dd7750[] = {
+ {&(_ZTV6dd7750[5]), 5,20},
+ {&(_ZTV6dd7750[13]), 13,20},
+ {&(_ZTV6dd7750[19]), 19,20},
+ {&(_tg__ZTV5cc750__6dd7750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__6dd7750[4]), 4,5},
+ {&(_tg__ZTV4bb50__6dd7750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static VTBL_ENTRY alt_thunk_names417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7750 = { "dd7750", // class name
+ bases_dd7750, 3,
+ &(vtc_dd7750[0]), // expected_vtbl_contents
+ &(vtt_dd7750[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7750),6, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07750 : dd7750 {
+ int e;
+ ~ee07750(); // tgen
+ ee07750(); // tgen
+};
+//SIG(1 ee07750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07750 ::~ee07750(){ note_dtor("ee07750", this);} // tgen
+ee07750 ::ee07750(){ note_ctor("ee07750", this);} // tgen
+
+static void Test_ee07750()
+{
+ extern Class_Descriptor cd_ee07750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07750, buf);
+ ee07750 *dp, &lv = *(dp=new (buf) ee07750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee07750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee07750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(16,12), "ee07750");
+ check_base_class_offset(lv, (dd7750*), 0, "ee07750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07750.e");
+ test_class_info(&lv, &cd_ee07750);
+ dp->~ee07750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07750(Test_ee07750, "ee07750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07750C1Ev();
+extern void _ZN7ee07750D1Ev();
+Name_Map name_map_ee07750[] = {
+ NSPAIR(_ZN7ee07750C1Ev),
+ NSPAIR(_ZN7ee07750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee07750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee07750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee07750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee07750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee07750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee07750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee07750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee07750[] = {
+ {&(_ZTV7ee07750[5]), 5,20},
+ {&(_tg__ZTV6dd7750__7ee07750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee07750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee07750[4]), 4,5},
+ {&(_ZTV7ee07750[13]), 13,20},
+ {&(_ZTV7ee07750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee07750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee07750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee07750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07750[];
+extern VTBL_ENTRY _ZTV7ee07750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07750[];
+static VTBL_ENTRY alt_thunk_names418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07750 = { "ee07750", // class name
+ bases_ee07750, 4,
+ &(vtc_ee07750[0]), // expected_vtbl_contents
+ &(vtt_ee07750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names418,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17750 : virtual dd7750 {
+ int e;
+ ~ee17750(); // tgen
+ ee17750(); // tgen
+};
+//SIG(1 ee17750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17750 ::~ee17750(){ note_dtor("ee17750", this);} // tgen
+ee17750 ::ee17750(){ note_ctor("ee17750", this);} // tgen
+
+static void Test_ee17750()
+{
+ extern Class_Descriptor cd_ee17750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17750, buf);
+ ee17750 *dp, &lv = *(dp=new (buf) ee17750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee17750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee17750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(32,16), "ee17750");
+ check_base_class_offset(lv, (dd7750*), ABISELECT(16,8), "ee17750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17750.e");
+ test_class_info(&lv, &cd_ee17750);
+ dp->~ee17750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17750(Test_ee17750, "ee17750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17750C1Ev();
+extern void _ZN7ee17750D1Ev();
+Name_Map name_map_ee17750[] = {
+ NSPAIR(_ZN7ee17750C1Ev),
+ NSPAIR(_ZN7ee17750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee17750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee17750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17750[0]),
+ 0,
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee17750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee17750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee17750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee17750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee17750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee17750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee17750[] = {
+ {&(_ZTV7ee17750[6]), 6,28},
+ {&(_ZTV7ee17750[13]), 13,28},
+ {&(_ZTV7ee17750[21]), 21,28},
+ {&(_ZTV7ee17750[27]), 27,28},
+ {&(_tg__ZTV6dd7750__7ee17750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee17750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee17750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee17750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee17750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee17750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17750[];
+extern VTBL_ENTRY _ZTV7ee17750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17750[];
+static VTBL_ENTRY alt_thunk_names419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17750 = { "ee17750", // class name
+ bases_ee17750, 4,
+ &(vtc_ee17750[0]), // expected_vtbl_contents
+ &(vtt_ee17750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17750),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names419,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27750 : dd7750 {
+ int e;
+ virtual void foo(); // _ZN7ee277503fooEv
+ ~ee27750(); // tgen
+ ee27750(); // tgen
+};
+//SIG(1 ee27750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27750 ::foo(){vfunc_called(this, "_ZN7ee277503fooEv");}
+ee27750 ::~ee27750(){ note_dtor("ee27750", this);} // tgen
+ee27750 ::ee27750(){ note_ctor("ee27750", this);} // tgen
+
+static void Test_ee27750()
+{
+ extern Class_Descriptor cd_ee27750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27750, buf);
+ ee27750 *dp, &lv = *(dp=new (buf) ee27750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee27750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee27750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(16,12), "ee27750");
+ check_base_class_offset(lv, (dd7750*), 0, "ee27750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27750.e");
+ test_class_info(&lv, &cd_ee27750);
+ dp->~ee27750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27750(Test_ee27750, "ee27750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27750C1Ev();
+extern void _ZN7ee27750D1Ev();
+Name_Map name_map_ee27750[] = {
+ NSPAIR(_ZN7ee27750C1Ev),
+ NSPAIR(_ZN7ee27750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee27750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN7ee277503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee277503fooEv,_ZTv0_n20_N7ee277503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277503fooEv,_ZThn12_N7ee277503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN7ee277503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee277503fooEv,_ZTv0_n20_N7ee277503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee27750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee27750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee27750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee27750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee27750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee27750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee27750[] = {
+ {&(_ZTV7ee27750[5]), 5,20},
+ {&(_tg__ZTV6dd7750__7ee27750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee27750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee27750[4]), 4,5},
+ {&(_ZTV7ee27750[13]), 13,20},
+ {&(_ZTV7ee27750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee27750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee27750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee27750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27750[];
+extern VTBL_ENTRY _ZTV7ee27750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27750[];
+static VTBL_ENTRY alt_thunk_names420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee277503fooEv,_ZTv0_n20_N7ee277503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277503fooEv,_ZThn12_N7ee277503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27750 = { "ee27750", // class name
+ bases_ee27750, 4,
+ &(vtc_ee27750[0]), // expected_vtbl_contents
+ &(vtt_ee27750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names420,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37750 : virtual dd7750 {
+ int e;
+ virtual void foo(); // _ZN7ee377503fooEv
+ ~ee37750(); // tgen
+ ee37750(); // tgen
+};
+//SIG(1 ee37750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37750 ::foo(){vfunc_called(this, "_ZN7ee377503fooEv");}
+ee37750 ::~ee37750(){ note_dtor("ee37750", this);} // tgen
+ee37750 ::ee37750(){ note_ctor("ee37750", this);} // tgen
+
+static void Test_ee37750()
+{
+ extern Class_Descriptor cd_ee37750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37750, buf);
+ ee37750 *dp, &lv = *(dp=new (buf) ee37750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee37750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee37750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(32,16), "ee37750");
+ check_base_class_offset(lv, (dd7750*), ABISELECT(16,8), "ee37750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37750.e");
+ test_class_info(&lv, &cd_ee37750);
+ dp->~ee37750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37750(Test_ee37750, "ee37750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37750C1Ev();
+extern void _ZN7ee37750D1Ev();
+Name_Map name_map_ee37750[] = {
+ NSPAIR(_ZN7ee37750C1Ev),
+ NSPAIR(_ZN7ee37750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee37750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee37750[];
+extern void _ZN7ee377503fooEv();
+extern void _ZN6dd77503barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee377503fooEv,_ZTv0_n28_N7ee377503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377503fooEv,_ZThn8_N7ee377503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee377503fooEv,_ZTv0_n20_N7ee377503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377503fooEv,_ZThn16_N7ee377503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37750[0]),
+ (VTBL_ENTRY)&_ZN7ee377503fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee377503fooEv,_ZTv0_n28_N7ee377503fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee377503fooEv,_ZTv0_n20_N7ee377503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee37750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee37750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee37750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee37750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee37750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee37750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee37750[] = {
+ {&(_ZTV7ee37750[6]), 6,29},
+ {&(_ZTV7ee37750[14]), 14,29},
+ {&(_ZTV7ee37750[22]), 22,29},
+ {&(_ZTV7ee37750[28]), 28,29},
+ {&(_tg__ZTV6dd7750__7ee37750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee37750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee37750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee37750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee37750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee37750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37750[];
+extern VTBL_ENTRY _ZTV7ee37750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37750[];
+static VTBL_ENTRY alt_thunk_names421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee377503fooEv,_ZTv0_n20_N7ee377503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377503fooEv,_ZThn16_N7ee377503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee377503fooEv,_ZTv0_n28_N7ee377503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377503fooEv,_ZThn8_N7ee377503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37750 = { "ee37750", // class name
+ bases_ee37750, 4,
+ &(vtc_ee37750[0]), // expected_vtbl_contents
+ &(vtt_ee37750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37750),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47750 : dd7750 {
+ int e;
+ virtual void bar(); // _ZN7ee477503barEv
+ ~ee47750(); // tgen
+ ee47750(); // tgen
+};
+//SIG(1 ee47750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47750 ::bar(){vfunc_called(this, "_ZN7ee477503barEv");}
+ee47750 ::~ee47750(){ note_dtor("ee47750", this);} // tgen
+ee47750 ::ee47750(){ note_ctor("ee47750", this);} // tgen
+
+static void Test_ee47750()
+{
+ extern Class_Descriptor cd_ee47750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47750, buf);
+ ee47750 *dp, &lv = *(dp=new (buf) ee47750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee47750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee47750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(16,12), "ee47750");
+ check_base_class_offset(lv, (dd7750*), 0, "ee47750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47750.e");
+ test_class_info(&lv, &cd_ee47750);
+ dp->~ee47750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47750(Test_ee47750, "ee47750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47750C1Ev();
+extern void _ZN7ee47750D1Ev();
+Name_Map name_map_ee47750[] = {
+ NSPAIR(_ZN7ee47750C1Ev),
+ NSPAIR(_ZN7ee47750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee47750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47750[];
+extern void _ZN7ee477503barEv();
+extern void _ZN6dd77503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee477503barEv,_ZTv0_n24_N7ee477503barEv)();
+extern void ABISELECT(_ZThn16_N7ee477503barEv,_ZThn12_N7ee477503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477503barEv,_ZTv0_n16_N7ee477503barEv)();
+extern void ABISELECT(_ZThn32_N7ee477503barEv,_ZThn20_N7ee477503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47750[0]),
+ (VTBL_ENTRY)&_ZN7ee477503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee477503barEv,_ZTv0_n24_N7ee477503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477503barEv,_ZTv0_n16_N7ee477503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee47750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee47750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee47750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee47750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee47750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee47750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee47750[] = {
+ {&(_ZTV7ee47750[5]), 5,20},
+ {&(_tg__ZTV6dd7750__7ee47750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee47750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee47750[4]), 4,5},
+ {&(_ZTV7ee47750[13]), 13,20},
+ {&(_ZTV7ee47750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee47750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee47750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee47750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47750[];
+extern VTBL_ENTRY _ZTV7ee47750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47750[];
+static VTBL_ENTRY alt_thunk_names422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477503barEv,_ZTv0_n16_N7ee477503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477503barEv,_ZThn20_N7ee477503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee477503barEv,_ZTv0_n24_N7ee477503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477503barEv,_ZThn12_N7ee477503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47750 = { "ee47750", // class name
+ bases_ee47750, 4,
+ &(vtc_ee47750[0]), // expected_vtbl_contents
+ &(vtt_ee47750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names422,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57750 : virtual dd7750 {
+ int e;
+ virtual void bar(); // _ZN7ee577503barEv
+ ~ee57750(); // tgen
+ ee57750(); // tgen
+};
+//SIG(1 ee57750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57750 ::bar(){vfunc_called(this, "_ZN7ee577503barEv");}
+ee57750 ::~ee57750(){ note_dtor("ee57750", this);} // tgen
+ee57750 ::ee57750(){ note_ctor("ee57750", this);} // tgen
+
+static void Test_ee57750()
+{
+ extern Class_Descriptor cd_ee57750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57750, buf);
+ ee57750 *dp, &lv = *(dp=new (buf) ee57750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee57750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee57750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(32,16), "ee57750");
+ check_base_class_offset(lv, (dd7750*), ABISELECT(16,8), "ee57750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57750.e");
+ test_class_info(&lv, &cd_ee57750);
+ dp->~ee57750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57750(Test_ee57750, "ee57750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57750C1Ev();
+extern void _ZN7ee57750D1Ev();
+Name_Map name_map_ee57750[] = {
+ NSPAIR(_ZN7ee57750C1Ev),
+ NSPAIR(_ZN7ee57750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee57750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee57750[];
+extern void _ZN7ee577503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee577503barEv,_ZTv0_n24_N7ee577503barEv)();
+extern void ABISELECT(_ZThn16_N7ee577503barEv,_ZThn8_N7ee577503barEv)() __attribute__((weak));
+extern void _ZN6dd77503fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee577503barEv,_ZTv0_n24_N7ee577503barEv)();
+extern void ABISELECT(_ZThn32_N7ee577503barEv,_ZThn16_N7ee577503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577503barEv,_ZTv0_n16_N7ee577503barEv)();
+extern void ABISELECT(_ZThn48_N7ee577503barEv,_ZThn24_N7ee577503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57750[0]),
+ (VTBL_ENTRY)&_ZN7ee577503barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577503barEv,_ZTv0_n24_N7ee577503barEv),
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577503barEv,_ZTv0_n24_N7ee577503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577503barEv,_ZTv0_n16_N7ee577503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee57750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee57750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee57750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee57750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee57750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee57750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee57750[] = {
+ {&(_ZTV7ee57750[6]), 6,29},
+ {&(_ZTV7ee57750[14]), 14,29},
+ {&(_ZTV7ee57750[22]), 22,29},
+ {&(_ZTV7ee57750[28]), 28,29},
+ {&(_tg__ZTV6dd7750__7ee57750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee57750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee57750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee57750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee57750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee57750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57750[];
+extern VTBL_ENTRY _ZTV7ee57750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57750[];
+static VTBL_ENTRY alt_thunk_names423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577503barEv,_ZTv0_n16_N7ee577503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577503barEv,_ZThn24_N7ee577503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee577503barEv,_ZTv0_n24_N7ee577503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577503barEv,_ZThn16_N7ee577503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577503barEv,_ZThn8_N7ee577503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57750 = { "ee57750", // class name
+ bases_ee57750, 4,
+ &(vtc_ee57750[0]), // expected_vtbl_contents
+ &(vtt_ee57750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57750),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names423,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67750 : dd7750 {
+ int e;
+ virtual void foo(); // _ZN7ee677503fooEv
+ virtual void bar(); // _ZN7ee677503barEv
+ ~ee67750(); // tgen
+ ee67750(); // tgen
+};
+//SIG(1 ee67750) C1{ BC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67750 ::foo(){vfunc_called(this, "_ZN7ee677503fooEv");}
+void ee67750 ::bar(){vfunc_called(this, "_ZN7ee677503barEv");}
+ee67750 ::~ee67750(){ note_dtor("ee67750", this);} // tgen
+ee67750 ::ee67750(){ note_ctor("ee67750", this);} // tgen
+
+static void Test_ee67750()
+{
+ extern Class_Descriptor cd_ee67750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67750, buf);
+ ee67750 *dp, &lv = *(dp=new (buf) ee67750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(44,28), "ee67750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(32,20), "ee67750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(16,12), "ee67750");
+ check_base_class_offset(lv, (dd7750*), 0, "ee67750");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67750.e");
+ test_class_info(&lv, &cd_ee67750);
+ dp->~ee67750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67750(Test_ee67750, "ee67750", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67750C1Ev();
+extern void _ZN7ee67750D1Ev();
+Name_Map name_map_ee67750[] = {
+ NSPAIR(_ZN7ee67750C1Ev),
+ NSPAIR(_ZN7ee67750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee67750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(44,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67750[];
+extern void _ZN7ee677503barEv();
+extern void _ZN7ee677503fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee677503fooEv,_ZTv0_n20_N7ee677503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677503fooEv,_ZThn12_N7ee677503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee677503barEv,_ZTv0_n24_N7ee677503barEv)();
+extern void ABISELECT(_ZThn16_N7ee677503barEv,_ZThn12_N7ee677503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677503barEv,_ZTv0_n16_N7ee677503barEv)();
+extern void ABISELECT(_ZThn32_N7ee677503barEv,_ZThn20_N7ee677503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67750[0]),
+ (VTBL_ENTRY)&_ZN7ee677503barEv,
+ (VTBL_ENTRY)&_ZN7ee677503fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677503fooEv,_ZTv0_n20_N7ee677503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee677503barEv,_ZTv0_n24_N7ee677503barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677503barEv,_ZTv0_n16_N7ee677503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee67750[] = {
+ ABISELECT(44,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee67750[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee67750[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(12,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee67750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee67750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee67750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee67750[] = {
+ {&(_ZTV7ee67750[5]), 5,20},
+ {&(_tg__ZTV6dd7750__7ee67750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee67750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee67750[4]), 4,5},
+ {&(_ZTV7ee67750[13]), 13,20},
+ {&(_ZTV7ee67750[19]), 19,20},
+ {&(_tg__ZTV5cc750__7ee67750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee67750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee67750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67750[];
+extern VTBL_ENTRY _ZTV7ee67750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67750[];
+static VTBL_ENTRY alt_thunk_names424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn20_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn12_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn12_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677503barEv,_ZTv0_n16_N7ee677503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677503barEv,_ZThn20_N7ee677503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee677503barEv,_ZTv0_n24_N7ee677503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677503barEv,_ZThn12_N7ee677503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677503fooEv,_ZTv0_n20_N7ee677503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677503fooEv,_ZThn12_N7ee677503fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67750 = { "ee67750", // class name
+ bases_ee67750, 4,
+ &(vtc_ee67750[0]), // expected_vtbl_contents
+ &(vtt_ee67750[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67750),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67750),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67750),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names424,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77750 : virtual dd7750 {
+ int e;
+ virtual void foo(); // _ZN7ee777503fooEv
+ virtual void bar(); // _ZN7ee777503barEv
+ ~ee77750(); // tgen
+ ee77750(); // tgen
+};
+//SIG(1 ee77750) C1{ VBC2{ VBC3{ VBC4{ VBC5{ Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77750 ::foo(){vfunc_called(this, "_ZN7ee777503fooEv");}
+void ee77750 ::bar(){vfunc_called(this, "_ZN7ee777503barEv");}
+ee77750 ::~ee77750(){ note_dtor("ee77750", this);} // tgen
+ee77750 ::ee77750(){ note_ctor("ee77750", this);} // tgen
+
+static void Test_ee77750()
+{
+ extern Class_Descriptor cd_ee77750;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77750, buf);
+ ee77750 *dp, &lv = *(dp=new (buf) ee77750());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77750)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77750)");
+ check_base_class_offset(lv, (aa0*)(bb50*), ABISELECT(60,32), "ee77750");
+ check_base_class_offset(lv, (bb50*)(cc750*), ABISELECT(48,24), "ee77750");
+ check_base_class_offset(lv, (cc750*)(dd7750*), ABISELECT(32,16), "ee77750");
+ check_base_class_offset(lv, (dd7750*), ABISELECT(16,8), "ee77750");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77750.e");
+ test_class_info(&lv, &cd_ee77750);
+ dp->~ee77750();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77750(Test_ee77750, "ee77750", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77750C1Ev();
+extern void _ZN7ee77750D1Ev();
+Name_Map name_map_ee77750[] = {
+ NSPAIR(_ZN7ee77750C1Ev),
+ NSPAIR(_ZN7ee77750D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa0;
+extern VTBL_ENTRY _ZTI3aa0[];
+extern Class_Descriptor cd_bb50;
+extern VTBL_ENTRY _ZTI4bb50[];
+extern VTBL_ENTRY _ZTV4bb50[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb50[];
+extern Class_Descriptor cd_cc750;
+extern VTBL_ENTRY _ZTI5cc750[];
+extern VTBL_ENTRY _ZTV5cc750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc750[];
+extern Class_Descriptor cd_dd7750;
+extern VTBL_ENTRY _ZTI6dd7750[];
+extern VTBL_ENTRY _ZTV6dd7750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7750[];
+static Base_Class bases_ee77750[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa0, ABISELECT(60,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
+ -1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb50, ABISELECT(48,24), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc750, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7750, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //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 _ZTI7ee77750[];
+extern void _ZN7ee777503fooEv();
+extern void _ZN7ee777503barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee777503barEv,_ZTv0_n24_N7ee777503barEv)();
+extern void ABISELECT(_ZThn16_N7ee777503barEv,_ZThn8_N7ee777503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee777503fooEv,_ZTv0_n28_N7ee777503fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777503fooEv,_ZThn8_N7ee777503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777503fooEv,_ZTv0_n20_N7ee777503fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777503fooEv,_ZThn16_N7ee777503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777503barEv,_ZTv0_n24_N7ee777503barEv)();
+extern void ABISELECT(_ZThn32_N7ee777503barEv,_ZThn16_N7ee777503barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777503barEv,_ZTv0_n16_N7ee777503barEv)();
+extern void ABISELECT(_ZThn48_N7ee777503barEv,_ZThn24_N7ee777503barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77750[] = {
+ ABISELECT(60,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77750[0]),
+ (VTBL_ENTRY)&_ZN7ee777503fooEv,
+ (VTBL_ENTRY)&_ZN7ee777503barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777503barEv,_ZTv0_n24_N7ee777503barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee777503fooEv,_ZTv0_n28_N7ee777503fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777503fooEv,_ZTv0_n20_N7ee777503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777503barEv,_ZTv0_n24_N7ee777503barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(12,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777503barEv,_ZTv0_n16_N7ee777503barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77750[];
+extern void _ZN6dd77503barEv();
+extern void _ZN6dd77503fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7750__7ee77750[] = {
+ ABISELECT(44,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&_ZN6dd77503barEv,
+ (VTBL_ENTRY)&_ZN6dd77503fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv)();
+extern void ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc750__6dd7750__7ee77750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv)();
+extern void ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__6dd7750__7ee77750[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(12,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv),
+};
+extern void _ZN5cc7503fooEv();
+extern void _ZN5cc7503barEv();
+static VTBL_ENTRY _tg__ZTV5cc750__7ee77750[] = {
+ ABISELECT(28,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&_ZN5cc7503fooEv,
+ (VTBL_ENTRY)&_ZN5cc7503barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv)();
+extern void ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb50__5cc750__7ee77750[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(12,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc750[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv),
+};
+extern void _ZN4bb503barEv();
+static VTBL_ENTRY _tg__ZTV4bb50__7ee77750[] = {
+ ABISELECT(12,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb50[0]),
+ (VTBL_ENTRY)&_ZN4bb503barEv,
+};
+static VTT_ENTRY vtt_ee77750[] = {
+ {&(_ZTV7ee77750[6]), 6,30},
+ {&(_ZTV7ee77750[15]), 15,30},
+ {&(_ZTV7ee77750[23]), 23,30},
+ {&(_ZTV7ee77750[29]), 29,30},
+ {&(_tg__ZTV6dd7750__7ee77750[5]), 5,7},
+ {&(_tg__ZTV5cc750__6dd7750__7ee77750[6]), 6,8},
+ {&(_tg__ZTV4bb50__6dd7750__7ee77750[4]), 4,5},
+ {&(_tg__ZTV5cc750__7ee77750[4]), 4,6},
+ {&(_tg__ZTV4bb50__5cc750__7ee77750[4]), 4,5},
+ {&(_tg__ZTV4bb50__7ee77750[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77750[];
+extern VTBL_ENTRY _ZTV7ee77750[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77750[];
+static VTBL_ENTRY alt_thunk_names425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7503barEv,_ZTv0_n16_N5cc7503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7503barEv,_ZThn8_N5cc7503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77503barEv,_ZTv0_n16_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77503barEv,_ZThn16_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77503barEv,_ZTv0_n24_N6dd77503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503barEv,_ZThn8_N6dd77503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77503fooEv,_ZTv0_n20_N6dd77503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77503fooEv,_ZThn8_N6dd77503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777503barEv,_ZTv0_n16_N7ee777503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777503barEv,_ZThn24_N7ee777503barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777503fooEv,_ZTv0_n20_N7ee777503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777503fooEv,_ZThn16_N7ee777503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee777503fooEv,_ZTv0_n28_N7ee777503fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777503fooEv,_ZThn8_N7ee777503fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777503barEv,_ZTv0_n24_N7ee777503barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777503barEv,_ZThn16_N7ee777503barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777503barEv,_ZThn8_N7ee777503barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77750 = { "ee77750", // class name
+ bases_ee77750, 4,
+ &(vtc_ee77750[0]), // expected_vtbl_contents
+ &(vtt_ee77750[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77750),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77750),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77750),10, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names425,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb51 : virtual aa1 {
+ int b;
+ virtual void bar(); // _ZN4bb513barEv
+ ~bb51(); // tgen
+ bb51(); // tgen
+};
+//SIG(-1 bb51) C1{ VBC2{ v2 Fi} v1 Fi}
+
+
+void bb51 ::bar(){vfunc_called(this, "_ZN4bb513barEv");}
+bb51 ::~bb51(){ note_dtor("bb51", this);} // tgen
+bb51 ::bb51(){ note_ctor("bb51", this);} // tgen
+
+static void Test_bb51()
+{
+ extern Class_Descriptor cd_bb51;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_bb51, buf);
+ bb51 *dp, &lv = *(dp=new (buf) bb51());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(bb51)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb51)");
+ check_base_class_offset(lv, (aa1*), ABISELECT(16,8), "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(32,16));
+
+#else // __cplusplus
+
+extern void _ZN4bb51C1Ev();
+extern void _ZN4bb51D1Ev();
+Name_Map name_map_bb51[] = {
+ NSPAIR(_ZN4bb51C1Ev),
+ NSPAIR(_ZN4bb51D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+static Base_Class bases_bb51[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,8), //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 _ZTI4bb51[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_bb51[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV4bb51[];
+static VTT_ENTRY vtt_bb51[] = {
+ {&(_ZTV4bb51[3]), 3,8},
+ {&(_ZTV4bb51[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+Class_Descriptor cd_bb51 = { "bb51", // class name
+ bases_bb51, 1,
+ &(vtc_bb51[0]), // expected_vtbl_contents
+ &(vtt_bb51[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI4bb51),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb51),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4bb51),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc051 : bb51 {
+ int c;
+ ~cc051(); // tgen
+ cc051(); // tgen
+};
+//SIG(-1 cc051) C1{ BC2{ VBC3{ v2 Fi} v1 Fi} Fi}
+
+
+cc051 ::~cc051(){ note_dtor("cc051", this);} // tgen
+cc051 ::cc051(){ note_ctor("cc051", this);} // tgen
+
+static void Test_cc051()
+{
+ extern Class_Descriptor cd_cc051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc051, buf);
+ cc051 *dp, &lv = *(dp=new (buf) cc051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc051)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(16,12), "cc051");
+ check_base_class_offset(lv, (bb51*), 0, "cc051");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc051.c");
+ test_class_info(&lv, &cd_cc051);
+ dp->~cc051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc051(Test_cc051, "cc051", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc051C1Ev();
+extern void _ZN5cc051D1Ev();
+Name_Map name_map_cc051[] = {
+ NSPAIR(_ZN5cc051C1Ev),
+ NSPAIR(_ZN5cc051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc051[] = {
+ // 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)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc051[] = {
+ {&(_ZTV5cc051[3]), 3,8},
+ {&(_tg__ZTV4bb51__5cc051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc051[3]), 3,4},
+ {&(_ZTV5cc051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+Class_Descriptor cd_cc051 = { "cc051", // class name
+ bases_cc051, 2,
+ &(vtc_cc051[0]), // expected_vtbl_contents
+ &(vtt_cc051[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc051),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0051 : cc051 {
+ int d;
+ ~dd0051(); // tgen
+ dd0051(); // tgen
+};
+//SIG(-1 dd0051) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd0051 ::~dd0051(){ note_dtor("dd0051", this);} // tgen
+dd0051 ::dd0051(){ note_ctor("dd0051", this);} // tgen
+
+static void Test_dd0051()
+{
+ extern Class_Descriptor cd_dd0051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0051, buf);
+ dd0051 *dp, &lv = *(dp=new (buf) dd0051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(24,16), "dd0051");
+ check_base_class_offset(lv, (bb51*)(cc051*), 0, "dd0051");
+ check_base_class_offset(lv, (cc051*), 0, "dd0051");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0051.d");
+ test_class_info(&lv, &cd_dd0051);
+ dp->~dd0051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0051(Test_dd0051, "dd0051", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0051C1Ev();
+extern void _ZN6dd0051D1Ev();
+Name_Map name_map_dd0051[] = {
+ NSPAIR(_ZN6dd0051C1Ev),
+ NSPAIR(_ZN6dd0051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd0051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd0051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd0051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd0051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd0051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0051[] = {
+ {&(_ZTV6dd0051[3]), 3,8},
+ {&(_tg__ZTV5cc051__6dd0051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd0051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd0051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd0051[3]), 3,4},
+ {&(_ZTV6dd0051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+Class_Descriptor cd_dd0051 = { "dd0051", // class name
+ bases_dd0051, 3,
+ &(vtc_dd0051[0]), // expected_vtbl_contents
+ &(vtt_dd0051[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0051),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00051 : dd0051 {
+ int e;
+ ~ee00051(); // tgen
+ ee00051(); // tgen
+};
+//SIG(1 ee00051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00051 ::~ee00051(){ note_dtor("ee00051", this);} // tgen
+ee00051 ::ee00051(){ note_ctor("ee00051", this);} // tgen
+
+static void Test_ee00051()
+{
+ extern Class_Descriptor cd_ee00051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00051, buf);
+ ee00051 *dp, &lv = *(dp=new (buf) ee00051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(24,20), "ee00051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), 0, "ee00051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), 0, "ee00051");
+ check_base_class_offset(lv, (dd0051*), 0, "ee00051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00051.e");
+ test_class_info(&lv, &cd_ee00051);
+ dp->~ee00051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00051(Test_ee00051, "ee00051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00051C1Ev();
+extern void _ZN7ee00051D1Ev();
+Name_Map name_map_ee00051[] = {
+ NSPAIR(_ZN7ee00051C1Ev),
+ NSPAIR(_ZN7ee00051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee00051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee00051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee00051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee00051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee00051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee00051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee00051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00051[] = {
+ {&(_ZTV7ee00051[3]), 3,8},
+ {&(_tg__ZTV6dd0051__7ee00051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee00051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee00051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee00051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee00051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee00051[3]), 3,4},
+ {&(_ZTV7ee00051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00051[];
+extern VTBL_ENTRY _ZTV7ee00051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00051[];
+Class_Descriptor cd_ee00051 = { "ee00051", // class name
+ bases_ee00051, 4,
+ &(vtc_ee00051[0]), // expected_vtbl_contents
+ &(vtt_ee00051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10051 : virtual dd0051 {
+ int e;
+ ~ee10051(); // tgen
+ ee10051(); // tgen
+};
+//SIG(1 ee10051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10051 ::~ee10051(){ note_dtor("ee10051", this);} // tgen
+ee10051 ::ee10051(){ note_ctor("ee10051", this);} // tgen
+
+static void Test_ee10051()
+{
+ extern Class_Descriptor cd_ee10051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10051, buf);
+ ee10051 *dp, &lv = *(dp=new (buf) ee10051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(40,24), "ee10051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), ABISELECT(16,8), "ee10051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), ABISELECT(16,8), "ee10051");
+ check_base_class_offset(lv, (dd0051*), ABISELECT(16,8), "ee10051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10051.e");
+ test_class_info(&lv, &cd_ee10051);
+ dp->~ee10051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10051(Test_ee10051, "ee10051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10051C1Ev();
+extern void _ZN7ee10051D1Ev();
+Name_Map name_map_ee10051[] = {
+ NSPAIR(_ZN7ee10051C1Ev),
+ NSPAIR(_ZN7ee10051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee10051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10051[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee10051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee10051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee10051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee10051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee10051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee10051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10051[] = {
+ {&(_ZTV7ee10051[4]), 4,13},
+ {&(_ZTV7ee10051[8]), 8,13},
+ {&(_ZTV7ee10051[12]), 12,13},
+ {&(_tg__ZTV6dd0051__7ee10051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee10051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee10051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee10051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee10051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee10051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10051[];
+extern VTBL_ENTRY _ZTV7ee10051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10051[];
+Class_Descriptor cd_ee10051 = { "ee10051", // class name
+ bases_ee10051, 4,
+ &(vtc_ee10051[0]), // expected_vtbl_contents
+ &(vtt_ee10051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10051),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20051 : dd0051 {
+ int e;
+ virtual void foo(); // _ZN7ee200513fooEv
+ ~ee20051(); // tgen
+ ee20051(); // tgen
+};
+//SIG(1 ee20051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20051 ::foo(){vfunc_called(this, "_ZN7ee200513fooEv");}
+ee20051 ::~ee20051(){ note_dtor("ee20051", this);} // tgen
+ee20051 ::ee20051(){ note_ctor("ee20051", this);} // tgen
+
+static void Test_ee20051()
+{
+ extern Class_Descriptor cd_ee20051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20051, buf);
+ ee20051 *dp, &lv = *(dp=new (buf) ee20051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(24,20), "ee20051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), 0, "ee20051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), 0, "ee20051");
+ check_base_class_offset(lv, (dd0051*), 0, "ee20051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20051.e");
+ test_class_info(&lv, &cd_ee20051);
+ dp->~ee20051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20051(Test_ee20051, "ee20051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20051C1Ev();
+extern void _ZN7ee20051D1Ev();
+Name_Map name_map_ee20051[] = {
+ NSPAIR(_ZN7ee20051C1Ev),
+ NSPAIR(_ZN7ee20051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee20051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20051[];
+extern void _ZN4bb513barEv();
+extern void _ZN7ee200513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee200513fooEv,_ZTv0_n12_N7ee200513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee200513fooEv,_ZThn20_N7ee200513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN7ee200513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee200513fooEv,_ZTv0_n12_N7ee200513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee20051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee20051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee20051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee20051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee20051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee20051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20051[] = {
+ {&(_ZTV7ee20051[3]), 3,9},
+ {&(_tg__ZTV6dd0051__7ee20051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee20051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee20051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee20051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee20051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee20051[3]), 3,4},
+ {&(_ZTV7ee20051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20051[];
+extern VTBL_ENTRY _ZTV7ee20051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20051[];
+static VTBL_ENTRY alt_thunk_names426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee200513fooEv,_ZTv0_n12_N7ee200513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee200513fooEv,_ZThn20_N7ee200513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20051 = { "ee20051", // class name
+ bases_ee20051, 4,
+ &(vtc_ee20051[0]), // expected_vtbl_contents
+ &(vtt_ee20051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names426,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30051 : virtual dd0051 {
+ int e;
+ virtual void foo(); // _ZN7ee300513fooEv
+ ~ee30051(); // tgen
+ ee30051(); // tgen
+};
+//SIG(1 ee30051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30051 ::foo(){vfunc_called(this, "_ZN7ee300513fooEv");}
+ee30051 ::~ee30051(){ note_dtor("ee30051", this);} // tgen
+ee30051 ::ee30051(){ note_ctor("ee30051", this);} // tgen
+
+static void Test_ee30051()
+{
+ extern Class_Descriptor cd_ee30051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30051, buf);
+ ee30051 *dp, &lv = *(dp=new (buf) ee30051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(40,24), "ee30051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), ABISELECT(16,8), "ee30051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), ABISELECT(16,8), "ee30051");
+ check_base_class_offset(lv, (dd0051*), ABISELECT(16,8), "ee30051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30051.e");
+ test_class_info(&lv, &cd_ee30051);
+ dp->~ee30051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30051(Test_ee30051, "ee30051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30051C1Ev();
+extern void _ZN7ee30051D1Ev();
+Name_Map name_map_ee30051[] = {
+ NSPAIR(_ZN7ee30051C1Ev),
+ NSPAIR(_ZN7ee30051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee30051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30051[];
+extern void _ZN7ee300513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300513fooEv,_ZTv0_n12_N7ee300513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee300513fooEv,_ZThn24_N7ee300513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30051[0]),
+ (VTBL_ENTRY)&_ZN7ee300513fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300513fooEv,_ZTv0_n12_N7ee300513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee30051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee30051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee30051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee30051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee30051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee30051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30051[] = {
+ {&(_ZTV7ee30051[4]), 4,14},
+ {&(_ZTV7ee30051[9]), 9,14},
+ {&(_ZTV7ee30051[13]), 13,14},
+ {&(_tg__ZTV6dd0051__7ee30051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee30051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee30051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee30051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee30051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee30051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30051[];
+extern VTBL_ENTRY _ZTV7ee30051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30051[];
+static VTBL_ENTRY alt_thunk_names427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300513fooEv,_ZTv0_n12_N7ee300513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee300513fooEv,_ZThn24_N7ee300513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30051 = { "ee30051", // class name
+ bases_ee30051, 4,
+ &(vtc_ee30051[0]), // expected_vtbl_contents
+ &(vtt_ee30051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names427,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40051 : dd0051 {
+ int e;
+ virtual void bar(); // _ZN7ee400513barEv
+ ~ee40051(); // tgen
+ ee40051(); // tgen
+};
+//SIG(1 ee40051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40051 ::bar(){vfunc_called(this, "_ZN7ee400513barEv");}
+ee40051 ::~ee40051(){ note_dtor("ee40051", this);} // tgen
+ee40051 ::ee40051(){ note_ctor("ee40051", this);} // tgen
+
+static void Test_ee40051()
+{
+ extern Class_Descriptor cd_ee40051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40051, buf);
+ ee40051 *dp, &lv = *(dp=new (buf) ee40051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(24,20), "ee40051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), 0, "ee40051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), 0, "ee40051");
+ check_base_class_offset(lv, (dd0051*), 0, "ee40051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40051.e");
+ test_class_info(&lv, &cd_ee40051);
+ dp->~ee40051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40051(Test_ee40051, "ee40051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40051C1Ev();
+extern void _ZN7ee40051D1Ev();
+Name_Map name_map_ee40051[] = {
+ NSPAIR(_ZN7ee40051C1Ev),
+ NSPAIR(_ZN7ee40051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee40051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40051[];
+extern void _ZN7ee400513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40051[0]),
+ (VTBL_ENTRY)&_ZN7ee400513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee40051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee40051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee40051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee40051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee40051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee40051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40051[] = {
+ {&(_ZTV7ee40051[3]), 3,8},
+ {&(_tg__ZTV6dd0051__7ee40051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee40051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee40051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee40051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee40051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee40051[3]), 3,4},
+ {&(_ZTV7ee40051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40051[];
+extern VTBL_ENTRY _ZTV7ee40051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40051[];
+Class_Descriptor cd_ee40051 = { "ee40051", // class name
+ bases_ee40051, 4,
+ &(vtc_ee40051[0]), // expected_vtbl_contents
+ &(vtt_ee40051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50051 : virtual dd0051 {
+ int e;
+ virtual void bar(); // _ZN7ee500513barEv
+ ~ee50051(); // tgen
+ ee50051(); // tgen
+};
+//SIG(1 ee50051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50051 ::bar(){vfunc_called(this, "_ZN7ee500513barEv");}
+ee50051 ::~ee50051(){ note_dtor("ee50051", this);} // tgen
+ee50051 ::ee50051(){ note_ctor("ee50051", this);} // tgen
+
+static void Test_ee50051()
+{
+ extern Class_Descriptor cd_ee50051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50051, buf);
+ ee50051 *dp, &lv = *(dp=new (buf) ee50051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(40,24), "ee50051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), ABISELECT(16,8), "ee50051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), ABISELECT(16,8), "ee50051");
+ check_base_class_offset(lv, (dd0051*), ABISELECT(16,8), "ee50051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50051.e");
+ test_class_info(&lv, &cd_ee50051);
+ dp->~ee50051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50051(Test_ee50051, "ee50051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50051C1Ev();
+extern void _ZN7ee50051D1Ev();
+Name_Map name_map_ee50051[] = {
+ NSPAIR(_ZN7ee50051C1Ev),
+ NSPAIR(_ZN7ee50051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee50051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50051[];
+extern void _ZN7ee500513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500513barEv,_ZTv0_n16_N7ee500513barEv)();
+extern void ABISELECT(_ZThn16_N7ee500513barEv,_ZThn8_N7ee500513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50051[0]),
+ (VTBL_ENTRY)&_ZN7ee500513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500513barEv,_ZTv0_n16_N7ee500513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee50051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee50051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee50051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee50051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee50051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee50051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50051[] = {
+ {&(_ZTV7ee50051[4]), 4,14},
+ {&(_ZTV7ee50051[9]), 9,14},
+ {&(_ZTV7ee50051[13]), 13,14},
+ {&(_tg__ZTV6dd0051__7ee50051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee50051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee50051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee50051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee50051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee50051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50051[];
+extern VTBL_ENTRY _ZTV7ee50051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50051[];
+static VTBL_ENTRY alt_thunk_names428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500513barEv,_ZTv0_n16_N7ee500513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500513barEv,_ZThn8_N7ee500513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50051 = { "ee50051", // class name
+ bases_ee50051, 4,
+ &(vtc_ee50051[0]), // expected_vtbl_contents
+ &(vtt_ee50051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names428,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60051 : dd0051 {
+ int e;
+ virtual void foo(); // _ZN7ee600513fooEv
+ virtual void bar(); // _ZN7ee600513barEv
+ ~ee60051(); // tgen
+ ee60051(); // tgen
+};
+//SIG(1 ee60051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60051 ::foo(){vfunc_called(this, "_ZN7ee600513fooEv");}
+void ee60051 ::bar(){vfunc_called(this, "_ZN7ee600513barEv");}
+ee60051 ::~ee60051(){ note_dtor("ee60051", this);} // tgen
+ee60051 ::ee60051(){ note_ctor("ee60051", this);} // tgen
+
+static void Test_ee60051()
+{
+ extern Class_Descriptor cd_ee60051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60051, buf);
+ ee60051 *dp, &lv = *(dp=new (buf) ee60051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(24,20), "ee60051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), 0, "ee60051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), 0, "ee60051");
+ check_base_class_offset(lv, (dd0051*), 0, "ee60051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60051.e");
+ test_class_info(&lv, &cd_ee60051);
+ dp->~ee60051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60051(Test_ee60051, "ee60051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60051C1Ev();
+extern void _ZN7ee60051D1Ev();
+Name_Map name_map_ee60051[] = {
+ NSPAIR(_ZN7ee60051C1Ev),
+ NSPAIR(_ZN7ee60051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee60051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60051[];
+extern void _ZN7ee600513barEv();
+extern void _ZN7ee600513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee600513fooEv,_ZTv0_n12_N7ee600513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee600513fooEv,_ZThn20_N7ee600513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60051[0]),
+ (VTBL_ENTRY)&_ZN7ee600513barEv,
+ (VTBL_ENTRY)&_ZN7ee600513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee600513fooEv,_ZTv0_n12_N7ee600513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee60051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee60051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee60051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee60051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee60051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee60051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60051[] = {
+ {&(_ZTV7ee60051[3]), 3,9},
+ {&(_tg__ZTV6dd0051__7ee60051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee60051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee60051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee60051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee60051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee60051[3]), 3,4},
+ {&(_ZTV7ee60051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60051[];
+extern VTBL_ENTRY _ZTV7ee60051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60051[];
+static VTBL_ENTRY alt_thunk_names429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee600513fooEv,_ZTv0_n12_N7ee600513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee600513fooEv,_ZThn20_N7ee600513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60051 = { "ee60051", // class name
+ bases_ee60051, 4,
+ &(vtc_ee60051[0]), // expected_vtbl_contents
+ &(vtt_ee60051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names429,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70051 : virtual dd0051 {
+ int e;
+ virtual void foo(); // _ZN7ee700513fooEv
+ virtual void bar(); // _ZN7ee700513barEv
+ ~ee70051(); // tgen
+ ee70051(); // tgen
+};
+//SIG(1 ee70051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70051 ::foo(){vfunc_called(this, "_ZN7ee700513fooEv");}
+void ee70051 ::bar(){vfunc_called(this, "_ZN7ee700513barEv");}
+ee70051 ::~ee70051(){ note_dtor("ee70051", this);} // tgen
+ee70051 ::ee70051(){ note_ctor("ee70051", this);} // tgen
+
+static void Test_ee70051()
+{
+ extern Class_Descriptor cd_ee70051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70051, buf);
+ ee70051 *dp, &lv = *(dp=new (buf) ee70051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd0051*), ABISELECT(40,24), "ee70051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd0051*), ABISELECT(16,8), "ee70051");
+ check_base_class_offset(lv, (cc051*)(dd0051*), ABISELECT(16,8), "ee70051");
+ check_base_class_offset(lv, (dd0051*), ABISELECT(16,8), "ee70051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70051.e");
+ test_class_info(&lv, &cd_ee70051);
+ dp->~ee70051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70051(Test_ee70051, "ee70051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70051C1Ev();
+extern void _ZN7ee70051D1Ev();
+Name_Map name_map_ee70051[] = {
+ NSPAIR(_ZN7ee70051C1Ev),
+ NSPAIR(_ZN7ee70051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd0051;
+extern VTBL_ENTRY _ZTI6dd0051[];
+extern VTBL_ENTRY _ZTV6dd0051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0051[];
+static Base_Class bases_ee70051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0051, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70051[];
+extern void _ZN7ee700513fooEv();
+extern void _ZN7ee700513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee700513barEv,_ZTv0_n16_N7ee700513barEv)();
+extern void ABISELECT(_ZThn16_N7ee700513barEv,_ZThn8_N7ee700513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee700513fooEv,_ZTv0_n12_N7ee700513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee700513fooEv,_ZThn24_N7ee700513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70051[0]),
+ (VTBL_ENTRY)&_ZN7ee700513fooEv,
+ (VTBL_ENTRY)&_ZN7ee700513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700513barEv,_ZTv0_n16_N7ee700513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700513fooEv,_ZTv0_n12_N7ee700513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0051__7ee70051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd0051__7ee70051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd0051__7ee70051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd0051__7ee70051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd0051__7ee70051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0051__7ee70051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70051[] = {
+ {&(_ZTV7ee70051[4]), 4,15},
+ {&(_ZTV7ee70051[10]), 10,15},
+ {&(_ZTV7ee70051[14]), 14,15},
+ {&(_tg__ZTV6dd0051__7ee70051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd0051__7ee70051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd0051__7ee70051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd0051__7ee70051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd0051__7ee70051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0051__7ee70051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70051[];
+extern VTBL_ENTRY _ZTV7ee70051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70051[];
+static VTBL_ENTRY alt_thunk_names430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700513fooEv,_ZTv0_n12_N7ee700513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee700513fooEv,_ZThn24_N7ee700513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700513barEv,_ZTv0_n16_N7ee700513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700513barEv,_ZThn8_N7ee700513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70051 = { "ee70051", // class name
+ bases_ee70051, 4,
+ &(vtc_ee70051[0]), // expected_vtbl_contents
+ &(vtt_ee70051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names430,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1051 : virtual cc051 {
+ int d;
+ ~dd1051(); // tgen
+ dd1051(); // tgen
+};
+//SIG(-1 dd1051) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd1051 ::~dd1051(){ note_dtor("dd1051", this);} // tgen
+dd1051 ::dd1051(){ note_ctor("dd1051", this);} // tgen
+
+static void Test_dd1051()
+{
+ extern Class_Descriptor cd_dd1051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1051, buf);
+ dd1051 *dp, &lv = *(dp=new (buf) dd1051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,20), "dd1051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,8), "dd1051");
+ check_base_class_offset(lv, (cc051*), ABISELECT(16,8), "dd1051");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1051.d");
+ test_class_info(&lv, &cd_dd1051);
+ dp->~dd1051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1051(Test_dd1051, "dd1051", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1051C1Ev();
+extern void _ZN6dd1051D1Ev();
+Name_Map name_map_dd1051[] = {
+ NSPAIR(_ZN6dd1051C1Ev),
+ NSPAIR(_ZN6dd1051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd1051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ 4, //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 _ZTI6dd1051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd1051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd1051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd1051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1051[] = {
+ {&(_ZTV6dd1051[4]), 4,13},
+ {&(_ZTV6dd1051[8]), 8,13},
+ {&(_ZTV6dd1051[12]), 12,13},
+ {&(_tg__ZTV5cc051__6dd1051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd1051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd1051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd1051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+Class_Descriptor cd_dd1051 = { "dd1051", // class name
+ bases_dd1051, 3,
+ &(vtc_dd1051[0]), // expected_vtbl_contents
+ &(vtt_dd1051[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1051),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1051),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01051 : dd1051 {
+ int e;
+ ~ee01051(); // tgen
+ ee01051(); // tgen
+};
+//SIG(1 ee01051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01051 ::~ee01051(){ note_dtor("ee01051", this);} // tgen
+ee01051 ::ee01051(){ note_ctor("ee01051", this);} // tgen
+
+static void Test_ee01051()
+{
+ extern Class_Descriptor cd_ee01051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01051, buf);
+ ee01051 *dp, &lv = *(dp=new (buf) ee01051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee01051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee01051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(16,12), "ee01051");
+ check_base_class_offset(lv, (dd1051*), 0, "ee01051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01051.e");
+ test_class_info(&lv, &cd_ee01051);
+ dp->~ee01051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01051(Test_ee01051, "ee01051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01051C1Ev();
+extern void _ZN7ee01051D1Ev();
+Name_Map name_map_ee01051[] = {
+ NSPAIR(_ZN7ee01051C1Ev),
+ NSPAIR(_ZN7ee01051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee01051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01051[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee01051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee01051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee01051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee01051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee01051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee01051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee01051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01051[] = {
+ {&(_ZTV7ee01051[4]), 4,13},
+ {&(_tg__ZTV6dd1051__7ee01051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee01051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee01051[3]), 3,4},
+ {&(_ZTV7ee01051[8]), 8,13},
+ {&(_ZTV7ee01051[12]), 12,13},
+ {&(_tg__ZTV5cc051__7ee01051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee01051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee01051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee01051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01051[];
+extern VTBL_ENTRY _ZTV7ee01051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01051[];
+Class_Descriptor cd_ee01051 = { "ee01051", // class name
+ bases_ee01051, 4,
+ &(vtc_ee01051[0]), // expected_vtbl_contents
+ &(vtt_ee01051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01051),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11051 : virtual dd1051 {
+ int e;
+ ~ee11051(); // tgen
+ ee11051(); // tgen
+};
+//SIG(1 ee11051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11051 ::~ee11051(){ note_dtor("ee11051", this);} // tgen
+ee11051 ::ee11051(){ note_ctor("ee11051", this);} // tgen
+
+static void Test_ee11051()
+{
+ extern Class_Descriptor cd_ee11051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11051, buf);
+ ee11051 *dp, &lv = *(dp=new (buf) ee11051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee11051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee11051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(32,16), "ee11051");
+ check_base_class_offset(lv, (dd1051*), ABISELECT(16,8), "ee11051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11051.e");
+ test_class_info(&lv, &cd_ee11051);
+ dp->~ee11051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11051(Test_ee11051, "ee11051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11051C1Ev();
+extern void _ZN7ee11051D1Ev();
+Name_Map name_map_ee11051[] = {
+ NSPAIR(_ZN7ee11051C1Ev),
+ NSPAIR(_ZN7ee11051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee11051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 14, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11051[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11051[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11051[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee11051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee11051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee11051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee11051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee11051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee11051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee11051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11051[] = {
+ {&(_ZTV7ee11051[5]), 5,18},
+ {&(_ZTV7ee11051[9]), 9,18},
+ {&(_ZTV7ee11051[13]), 13,18},
+ {&(_ZTV7ee11051[17]), 17,18},
+ {&(_tg__ZTV6dd1051__7ee11051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee11051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee11051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee11051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee11051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee11051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee11051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11051[];
+extern VTBL_ENTRY _ZTV7ee11051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11051[];
+Class_Descriptor cd_ee11051 = { "ee11051", // class name
+ bases_ee11051, 4,
+ &(vtc_ee11051[0]), // expected_vtbl_contents
+ &(vtt_ee11051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11051),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21051 : dd1051 {
+ int e;
+ virtual void foo(); // _ZN7ee210513fooEv
+ ~ee21051(); // tgen
+ ee21051(); // tgen
+};
+//SIG(1 ee21051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21051 ::foo(){vfunc_called(this, "_ZN7ee210513fooEv");}
+ee21051 ::~ee21051(){ note_dtor("ee21051", this);} // tgen
+ee21051 ::ee21051(){ note_ctor("ee21051", this);} // tgen
+
+static void Test_ee21051()
+{
+ extern Class_Descriptor cd_ee21051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21051, buf);
+ ee21051 *dp, &lv = *(dp=new (buf) ee21051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee21051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee21051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(16,12), "ee21051");
+ check_base_class_offset(lv, (dd1051*), 0, "ee21051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21051.e");
+ test_class_info(&lv, &cd_ee21051);
+ dp->~ee21051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21051(Test_ee21051, "ee21051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21051C1Ev();
+extern void _ZN7ee21051D1Ev();
+Name_Map name_map_ee21051[] = {
+ NSPAIR(_ZN7ee21051C1Ev),
+ NSPAIR(_ZN7ee21051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee21051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21051[];
+extern void _ZN7ee210513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210513fooEv,_ZTv0_n12_N7ee210513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee210513fooEv,_ZThn24_N7ee210513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21051[0]),
+ (VTBL_ENTRY)&_ZN7ee210513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210513fooEv,_ZTv0_n12_N7ee210513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee21051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee21051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee21051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee21051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee21051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee21051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee21051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21051[] = {
+ {&(_ZTV7ee21051[4]), 4,14},
+ {&(_tg__ZTV6dd1051__7ee21051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee21051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee21051[3]), 3,4},
+ {&(_ZTV7ee21051[9]), 9,14},
+ {&(_ZTV7ee21051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee21051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee21051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee21051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee21051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21051[];
+extern VTBL_ENTRY _ZTV7ee21051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21051[];
+static VTBL_ENTRY alt_thunk_names431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210513fooEv,_ZTv0_n12_N7ee210513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee210513fooEv,_ZThn24_N7ee210513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21051 = { "ee21051", // class name
+ bases_ee21051, 4,
+ &(vtc_ee21051[0]), // expected_vtbl_contents
+ &(vtt_ee21051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names431,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31051 : virtual dd1051 {
+ int e;
+ virtual void foo(); // _ZN7ee310513fooEv
+ ~ee31051(); // tgen
+ ee31051(); // tgen
+};
+//SIG(1 ee31051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31051 ::foo(){vfunc_called(this, "_ZN7ee310513fooEv");}
+ee31051 ::~ee31051(){ note_dtor("ee31051", this);} // tgen
+ee31051 ::ee31051(){ note_ctor("ee31051", this);} // tgen
+
+static void Test_ee31051()
+{
+ extern Class_Descriptor cd_ee31051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31051, buf);
+ ee31051 *dp, &lv = *(dp=new (buf) ee31051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee31051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee31051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(32,16), "ee31051");
+ check_base_class_offset(lv, (dd1051*), ABISELECT(16,8), "ee31051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31051.e");
+ test_class_info(&lv, &cd_ee31051);
+ dp->~ee31051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31051(Test_ee31051, "ee31051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31051C1Ev();
+extern void _ZN7ee31051D1Ev();
+Name_Map name_map_ee31051[] = {
+ NSPAIR(_ZN7ee31051C1Ev),
+ NSPAIR(_ZN7ee31051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee31051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31051[];
+extern void _ZN7ee310513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310513fooEv,_ZTv0_n12_N7ee310513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee310513fooEv,_ZThn28_N7ee310513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31051[0]),
+ (VTBL_ENTRY)&_ZN7ee310513fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31051[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310513fooEv,_ZTv0_n12_N7ee310513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee31051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee31051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee31051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee31051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee31051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee31051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee31051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31051[] = {
+ {&(_ZTV7ee31051[5]), 5,19},
+ {&(_ZTV7ee31051[10]), 10,19},
+ {&(_ZTV7ee31051[14]), 14,19},
+ {&(_ZTV7ee31051[18]), 18,19},
+ {&(_tg__ZTV6dd1051__7ee31051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee31051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee31051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee31051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee31051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee31051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee31051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31051[];
+extern VTBL_ENTRY _ZTV7ee31051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31051[];
+static VTBL_ENTRY alt_thunk_names432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310513fooEv,_ZTv0_n12_N7ee310513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee310513fooEv,_ZThn28_N7ee310513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31051 = { "ee31051", // class name
+ bases_ee31051, 4,
+ &(vtc_ee31051[0]), // expected_vtbl_contents
+ &(vtt_ee31051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31051),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41051 : dd1051 {
+ int e;
+ virtual void bar(); // _ZN7ee410513barEv
+ ~ee41051(); // tgen
+ ee41051(); // tgen
+};
+//SIG(1 ee41051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41051 ::bar(){vfunc_called(this, "_ZN7ee410513barEv");}
+ee41051 ::~ee41051(){ note_dtor("ee41051", this);} // tgen
+ee41051 ::ee41051(){ note_ctor("ee41051", this);} // tgen
+
+static void Test_ee41051()
+{
+ extern Class_Descriptor cd_ee41051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41051, buf);
+ ee41051 *dp, &lv = *(dp=new (buf) ee41051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee41051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee41051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(16,12), "ee41051");
+ check_base_class_offset(lv, (dd1051*), 0, "ee41051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41051.e");
+ test_class_info(&lv, &cd_ee41051);
+ dp->~ee41051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41051(Test_ee41051, "ee41051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41051C1Ev();
+extern void _ZN7ee41051D1Ev();
+Name_Map name_map_ee41051[] = {
+ NSPAIR(_ZN7ee41051C1Ev),
+ NSPAIR(_ZN7ee41051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee41051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41051[];
+extern void _ZN7ee410513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410513barEv,_ZTv0_n16_N7ee410513barEv)();
+extern void ABISELECT(_ZThn16_N7ee410513barEv,_ZThn12_N7ee410513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41051[0]),
+ (VTBL_ENTRY)&_ZN7ee410513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410513barEv,_ZTv0_n16_N7ee410513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee41051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee41051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee41051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee41051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee41051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee41051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee41051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41051[] = {
+ {&(_ZTV7ee41051[4]), 4,14},
+ {&(_tg__ZTV6dd1051__7ee41051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee41051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee41051[3]), 3,4},
+ {&(_ZTV7ee41051[9]), 9,14},
+ {&(_ZTV7ee41051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee41051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee41051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee41051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee41051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41051[];
+extern VTBL_ENTRY _ZTV7ee41051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41051[];
+static VTBL_ENTRY alt_thunk_names433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410513barEv,_ZTv0_n16_N7ee410513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410513barEv,_ZThn12_N7ee410513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41051 = { "ee41051", // class name
+ bases_ee41051, 4,
+ &(vtc_ee41051[0]), // expected_vtbl_contents
+ &(vtt_ee41051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names433,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51051 : virtual dd1051 {
+ int e;
+ virtual void bar(); // _ZN7ee510513barEv
+ ~ee51051(); // tgen
+ ee51051(); // tgen
+};
+//SIG(1 ee51051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51051 ::bar(){vfunc_called(this, "_ZN7ee510513barEv");}
+ee51051 ::~ee51051(){ note_dtor("ee51051", this);} // tgen
+ee51051 ::ee51051(){ note_ctor("ee51051", this);} // tgen
+
+static void Test_ee51051()
+{
+ extern Class_Descriptor cd_ee51051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51051, buf);
+ ee51051 *dp, &lv = *(dp=new (buf) ee51051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee51051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee51051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(32,16), "ee51051");
+ check_base_class_offset(lv, (dd1051*), ABISELECT(16,8), "ee51051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51051.e");
+ test_class_info(&lv, &cd_ee51051);
+ dp->~ee51051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51051(Test_ee51051, "ee51051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51051C1Ev();
+extern void _ZN7ee51051D1Ev();
+Name_Map name_map_ee51051[] = {
+ NSPAIR(_ZN7ee51051C1Ev),
+ NSPAIR(_ZN7ee51051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee51051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51051[];
+extern void _ZN7ee510513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510513barEv,_ZTv0_n16_N7ee510513barEv)();
+extern void ABISELECT(_ZThn32_N7ee510513barEv,_ZThn16_N7ee510513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51051[0]),
+ (VTBL_ENTRY)&_ZN7ee510513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51051[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510513barEv,_ZTv0_n16_N7ee510513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee51051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee51051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee51051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee51051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee51051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee51051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee51051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51051[] = {
+ {&(_ZTV7ee51051[5]), 5,19},
+ {&(_ZTV7ee51051[10]), 10,19},
+ {&(_ZTV7ee51051[14]), 14,19},
+ {&(_ZTV7ee51051[18]), 18,19},
+ {&(_tg__ZTV6dd1051__7ee51051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee51051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee51051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee51051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee51051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee51051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee51051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51051[];
+extern VTBL_ENTRY _ZTV7ee51051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51051[];
+static VTBL_ENTRY alt_thunk_names434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510513barEv,_ZTv0_n16_N7ee510513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510513barEv,_ZThn16_N7ee510513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51051 = { "ee51051", // class name
+ bases_ee51051, 4,
+ &(vtc_ee51051[0]), // expected_vtbl_contents
+ &(vtt_ee51051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51051),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names434,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61051 : dd1051 {
+ int e;
+ virtual void foo(); // _ZN7ee610513fooEv
+ virtual void bar(); // _ZN7ee610513barEv
+ ~ee61051(); // tgen
+ ee61051(); // tgen
+};
+//SIG(1 ee61051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61051 ::foo(){vfunc_called(this, "_ZN7ee610513fooEv");}
+void ee61051 ::bar(){vfunc_called(this, "_ZN7ee610513barEv");}
+ee61051 ::~ee61051(){ note_dtor("ee61051", this);} // tgen
+ee61051 ::ee61051(){ note_ctor("ee61051", this);} // tgen
+
+static void Test_ee61051()
+{
+ extern Class_Descriptor cd_ee61051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61051, buf);
+ ee61051 *dp, &lv = *(dp=new (buf) ee61051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee61051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee61051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(16,12), "ee61051");
+ check_base_class_offset(lv, (dd1051*), 0, "ee61051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61051.e");
+ test_class_info(&lv, &cd_ee61051);
+ dp->~ee61051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61051(Test_ee61051, "ee61051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61051C1Ev();
+extern void _ZN7ee61051D1Ev();
+Name_Map name_map_ee61051[] = {
+ NSPAIR(_ZN7ee61051C1Ev),
+ NSPAIR(_ZN7ee61051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee61051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61051[];
+extern void _ZN7ee610513fooEv();
+extern void _ZN7ee610513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee610513barEv,_ZTv0_n16_N7ee610513barEv)();
+extern void ABISELECT(_ZThn16_N7ee610513barEv,_ZThn12_N7ee610513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee610513fooEv,_ZTv0_n12_N7ee610513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee610513fooEv,_ZThn24_N7ee610513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61051[0]),
+ (VTBL_ENTRY)&_ZN7ee610513fooEv,
+ (VTBL_ENTRY)&_ZN7ee610513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610513barEv,_ZTv0_n16_N7ee610513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610513fooEv,_ZTv0_n12_N7ee610513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee61051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee61051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee61051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee61051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee61051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee61051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee61051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61051[] = {
+ {&(_ZTV7ee61051[4]), 4,15},
+ {&(_tg__ZTV6dd1051__7ee61051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee61051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee61051[3]), 3,4},
+ {&(_ZTV7ee61051[10]), 10,15},
+ {&(_ZTV7ee61051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee61051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee61051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee61051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee61051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61051[];
+extern VTBL_ENTRY _ZTV7ee61051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61051[];
+static VTBL_ENTRY alt_thunk_names435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610513fooEv,_ZTv0_n12_N7ee610513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee610513fooEv,_ZThn24_N7ee610513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610513barEv,_ZTv0_n16_N7ee610513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610513barEv,_ZThn12_N7ee610513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61051 = { "ee61051", // class name
+ bases_ee61051, 4,
+ &(vtc_ee61051[0]), // expected_vtbl_contents
+ &(vtt_ee61051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names435,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71051 : virtual dd1051 {
+ int e;
+ virtual void foo(); // _ZN7ee710513fooEv
+ virtual void bar(); // _ZN7ee710513barEv
+ ~ee71051(); // tgen
+ ee71051(); // tgen
+};
+//SIG(1 ee71051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71051 ::foo(){vfunc_called(this, "_ZN7ee710513fooEv");}
+void ee71051 ::bar(){vfunc_called(this, "_ZN7ee710513barEv");}
+ee71051 ::~ee71051(){ note_dtor("ee71051", this);} // tgen
+ee71051 ::ee71051(){ note_ctor("ee71051", this);} // tgen
+
+static void Test_ee71051()
+{
+ extern Class_Descriptor cd_ee71051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71051, buf);
+ ee71051 *dp, &lv = *(dp=new (buf) ee71051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee71051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee71051");
+ check_base_class_offset(lv, (cc051*)(dd1051*), ABISELECT(32,16), "ee71051");
+ check_base_class_offset(lv, (dd1051*), ABISELECT(16,8), "ee71051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71051.e");
+ test_class_info(&lv, &cd_ee71051);
+ dp->~ee71051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71051(Test_ee71051, "ee71051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71051C1Ev();
+extern void _ZN7ee71051D1Ev();
+Name_Map name_map_ee71051[] = {
+ NSPAIR(_ZN7ee71051C1Ev),
+ NSPAIR(_ZN7ee71051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd1051;
+extern VTBL_ENTRY _ZTI6dd1051[];
+extern VTBL_ENTRY _ZTV6dd1051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1051[];
+static Base_Class bases_ee71051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1051, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71051[];
+extern void _ZN7ee710513fooEv();
+extern void _ZN7ee710513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee710513barEv,_ZTv0_n16_N7ee710513barEv)();
+extern void ABISELECT(_ZThn32_N7ee710513barEv,_ZThn16_N7ee710513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee710513fooEv,_ZTv0_n12_N7ee710513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee710513fooEv,_ZThn28_N7ee710513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71051[0]),
+ (VTBL_ENTRY)&_ZN7ee710513fooEv,
+ (VTBL_ENTRY)&_ZN7ee710513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71051[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710513barEv,_ZTv0_n16_N7ee710513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710513fooEv,_ZTv0_n12_N7ee710513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71051[];
+static VTBL_ENTRY _tg__ZTV6dd1051__7ee71051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd1051__7ee71051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1051__7ee71051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee71051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee71051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee71051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee71051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71051[] = {
+ {&(_ZTV7ee71051[5]), 5,20},
+ {&(_ZTV7ee71051[11]), 11,20},
+ {&(_ZTV7ee71051[15]), 15,20},
+ {&(_ZTV7ee71051[19]), 19,20},
+ {&(_tg__ZTV6dd1051__7ee71051[4]), 4,4},
+ {&(_tg__ZTV5cc051__6dd1051__7ee71051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1051__7ee71051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee71051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee71051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee71051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee71051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71051[];
+extern VTBL_ENTRY _ZTV7ee71051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71051[];
+static VTBL_ENTRY alt_thunk_names436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710513fooEv,_ZTv0_n12_N7ee710513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee710513fooEv,_ZThn28_N7ee710513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710513barEv,_ZTv0_n16_N7ee710513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710513barEv,_ZThn16_N7ee710513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71051 = { "ee71051", // class name
+ bases_ee71051, 4,
+ &(vtc_ee71051[0]), // expected_vtbl_contents
+ &(vtt_ee71051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71051),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names436,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2051 : cc051 {
+ int d;
+ virtual void foo(); // _ZN6dd20513fooEv
+ ~dd2051(); // tgen
+ dd2051(); // tgen
+};
+//SIG(-1 dd2051) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2051 ::foo(){vfunc_called(this, "_ZN6dd20513fooEv");}
+dd2051 ::~dd2051(){ note_dtor("dd2051", this);} // tgen
+dd2051 ::dd2051(){ note_ctor("dd2051", this);} // tgen
+
+static void Test_dd2051()
+{
+ extern Class_Descriptor cd_dd2051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2051, buf);
+ dd2051 *dp, &lv = *(dp=new (buf) dd2051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(24,16), "dd2051");
+ check_base_class_offset(lv, (bb51*)(cc051*), 0, "dd2051");
+ check_base_class_offset(lv, (cc051*), 0, "dd2051");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2051.d");
+ test_class_info(&lv, &cd_dd2051);
+ dp->~dd2051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2051(Test_dd2051, "dd2051", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2051C1Ev();
+extern void _ZN6dd2051D1Ev();
+Name_Map name_map_dd2051[] = {
+ NSPAIR(_ZN6dd2051C1Ev),
+ NSPAIR(_ZN6dd2051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd2051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd2051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd2051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd2051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd2051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2051[] = {
+ {&(_ZTV6dd2051[3]), 3,9},
+ {&(_tg__ZTV5cc051__6dd2051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd2051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd2051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd2051[3]), 3,4},
+ {&(_ZTV6dd2051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static VTBL_ENTRY alt_thunk_names437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2051 = { "dd2051", // class name
+ bases_dd2051, 3,
+ &(vtc_dd2051[0]), // expected_vtbl_contents
+ &(vtt_dd2051[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2051),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names437,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02051 : dd2051 {
+ int e;
+ ~ee02051(); // tgen
+ ee02051(); // tgen
+};
+//SIG(1 ee02051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02051 ::~ee02051(){ note_dtor("ee02051", this);} // tgen
+ee02051 ::ee02051(){ note_ctor("ee02051", this);} // tgen
+
+static void Test_ee02051()
+{
+ extern Class_Descriptor cd_ee02051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02051, buf);
+ ee02051 *dp, &lv = *(dp=new (buf) ee02051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(24,20), "ee02051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), 0, "ee02051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), 0, "ee02051");
+ check_base_class_offset(lv, (dd2051*), 0, "ee02051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02051.e");
+ test_class_info(&lv, &cd_ee02051);
+ dp->~ee02051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02051(Test_ee02051, "ee02051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02051C1Ev();
+extern void _ZN7ee02051D1Ev();
+Name_Map name_map_ee02051[] = {
+ NSPAIR(_ZN7ee02051C1Ev),
+ NSPAIR(_ZN7ee02051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee02051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee02051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee02051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee02051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee02051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee02051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee02051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee02051[] = {
+ {&(_ZTV7ee02051[3]), 3,9},
+ {&(_tg__ZTV6dd2051__7ee02051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee02051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee02051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee02051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee02051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee02051[3]), 3,4},
+ {&(_ZTV7ee02051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02051[];
+extern VTBL_ENTRY _ZTV7ee02051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02051[];
+static VTBL_ENTRY alt_thunk_names438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02051 = { "ee02051", // class name
+ bases_ee02051, 4,
+ &(vtc_ee02051[0]), // expected_vtbl_contents
+ &(vtt_ee02051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names438,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12051 : virtual dd2051 {
+ int e;
+ ~ee12051(); // tgen
+ ee12051(); // tgen
+};
+//SIG(1 ee12051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12051 ::~ee12051(){ note_dtor("ee12051", this);} // tgen
+ee12051 ::ee12051(){ note_ctor("ee12051", this);} // tgen
+
+static void Test_ee12051()
+{
+ extern Class_Descriptor cd_ee12051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12051, buf);
+ ee12051 *dp, &lv = *(dp=new (buf) ee12051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(40,24), "ee12051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), ABISELECT(16,8), "ee12051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), ABISELECT(16,8), "ee12051");
+ check_base_class_offset(lv, (dd2051*), ABISELECT(16,8), "ee12051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12051.e");
+ test_class_info(&lv, &cd_ee12051);
+ dp->~ee12051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12051(Test_ee12051, "ee12051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12051C1Ev();
+extern void _ZN7ee12051D1Ev();
+Name_Map name_map_ee12051[] = {
+ NSPAIR(_ZN7ee12051C1Ev),
+ NSPAIR(_ZN7ee12051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee12051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12051[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee12051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee12051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee12051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee12051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee12051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee12051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee12051[] = {
+ {&(_ZTV7ee12051[4]), 4,15},
+ {&(_ZTV7ee12051[9]), 9,15},
+ {&(_ZTV7ee12051[14]), 14,15},
+ {&(_tg__ZTV6dd2051__7ee12051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee12051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee12051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee12051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee12051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee12051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12051[];
+extern VTBL_ENTRY _ZTV7ee12051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12051[];
+static VTBL_ENTRY alt_thunk_names439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12051 = { "ee12051", // class name
+ bases_ee12051, 4,
+ &(vtc_ee12051[0]), // expected_vtbl_contents
+ &(vtt_ee12051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names439,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22051 : dd2051 {
+ int e;
+ virtual void foo(); // _ZN7ee220513fooEv
+ ~ee22051(); // tgen
+ ee22051(); // tgen
+};
+//SIG(1 ee22051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22051 ::foo(){vfunc_called(this, "_ZN7ee220513fooEv");}
+ee22051 ::~ee22051(){ note_dtor("ee22051", this);} // tgen
+ee22051 ::ee22051(){ note_ctor("ee22051", this);} // tgen
+
+static void Test_ee22051()
+{
+ extern Class_Descriptor cd_ee22051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22051, buf);
+ ee22051 *dp, &lv = *(dp=new (buf) ee22051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(24,20), "ee22051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), 0, "ee22051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), 0, "ee22051");
+ check_base_class_offset(lv, (dd2051*), 0, "ee22051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22051.e");
+ test_class_info(&lv, &cd_ee22051);
+ dp->~ee22051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22051(Test_ee22051, "ee22051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22051C1Ev();
+extern void _ZN7ee22051D1Ev();
+Name_Map name_map_ee22051[] = {
+ NSPAIR(_ZN7ee22051C1Ev),
+ NSPAIR(_ZN7ee22051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee22051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22051[];
+extern void _ZN4bb513barEv();
+extern void _ZN7ee220513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee220513fooEv,_ZTv0_n12_N7ee220513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee220513fooEv,_ZThn20_N7ee220513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN7ee220513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee220513fooEv,_ZTv0_n12_N7ee220513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee22051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee22051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee22051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee22051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee22051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee22051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee22051[] = {
+ {&(_ZTV7ee22051[3]), 3,9},
+ {&(_tg__ZTV6dd2051__7ee22051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee22051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee22051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee22051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee22051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee22051[3]), 3,4},
+ {&(_ZTV7ee22051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22051[];
+extern VTBL_ENTRY _ZTV7ee22051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22051[];
+static VTBL_ENTRY alt_thunk_names440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee220513fooEv,_ZTv0_n12_N7ee220513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee220513fooEv,_ZThn20_N7ee220513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22051 = { "ee22051", // class name
+ bases_ee22051, 4,
+ &(vtc_ee22051[0]), // expected_vtbl_contents
+ &(vtt_ee22051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names440,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32051 : virtual dd2051 {
+ int e;
+ virtual void foo(); // _ZN7ee320513fooEv
+ ~ee32051(); // tgen
+ ee32051(); // tgen
+};
+//SIG(1 ee32051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32051 ::foo(){vfunc_called(this, "_ZN7ee320513fooEv");}
+ee32051 ::~ee32051(){ note_dtor("ee32051", this);} // tgen
+ee32051 ::ee32051(){ note_ctor("ee32051", this);} // tgen
+
+static void Test_ee32051()
+{
+ extern Class_Descriptor cd_ee32051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32051, buf);
+ ee32051 *dp, &lv = *(dp=new (buf) ee32051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(40,24), "ee32051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), ABISELECT(16,8), "ee32051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), ABISELECT(16,8), "ee32051");
+ check_base_class_offset(lv, (dd2051*), ABISELECT(16,8), "ee32051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32051.e");
+ test_class_info(&lv, &cd_ee32051);
+ dp->~ee32051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32051(Test_ee32051, "ee32051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32051C1Ev();
+extern void _ZN7ee32051D1Ev();
+Name_Map name_map_ee32051[] = {
+ NSPAIR(_ZN7ee32051C1Ev),
+ NSPAIR(_ZN7ee32051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee32051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32051[];
+extern void _ZN7ee320513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee320513fooEv,_ZTv0_n20_N7ee320513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320513fooEv,_ZThn8_N7ee320513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee320513fooEv,_ZTv0_n12_N7ee320513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee320513fooEv,_ZThn24_N7ee320513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32051[0]),
+ (VTBL_ENTRY)&_ZN7ee320513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee320513fooEv,_ZTv0_n20_N7ee320513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320513fooEv,_ZTv0_n12_N7ee320513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee32051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee32051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee32051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee32051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee32051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee32051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee32051[] = {
+ {&(_ZTV7ee32051[4]), 4,16},
+ {&(_ZTV7ee32051[10]), 10,16},
+ {&(_ZTV7ee32051[15]), 15,16},
+ {&(_tg__ZTV6dd2051__7ee32051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee32051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee32051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee32051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee32051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee32051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32051[];
+extern VTBL_ENTRY _ZTV7ee32051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32051[];
+static VTBL_ENTRY alt_thunk_names441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320513fooEv,_ZTv0_n12_N7ee320513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee320513fooEv,_ZThn24_N7ee320513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee320513fooEv,_ZTv0_n20_N7ee320513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320513fooEv,_ZThn8_N7ee320513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32051 = { "ee32051", // class name
+ bases_ee32051, 4,
+ &(vtc_ee32051[0]), // expected_vtbl_contents
+ &(vtt_ee32051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32051),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42051 : dd2051 {
+ int e;
+ virtual void bar(); // _ZN7ee420513barEv
+ ~ee42051(); // tgen
+ ee42051(); // tgen
+};
+//SIG(1 ee42051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42051 ::bar(){vfunc_called(this, "_ZN7ee420513barEv");}
+ee42051 ::~ee42051(){ note_dtor("ee42051", this);} // tgen
+ee42051 ::ee42051(){ note_ctor("ee42051", this);} // tgen
+
+static void Test_ee42051()
+{
+ extern Class_Descriptor cd_ee42051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42051, buf);
+ ee42051 *dp, &lv = *(dp=new (buf) ee42051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(24,20), "ee42051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), 0, "ee42051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), 0, "ee42051");
+ check_base_class_offset(lv, (dd2051*), 0, "ee42051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42051.e");
+ test_class_info(&lv, &cd_ee42051);
+ dp->~ee42051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42051(Test_ee42051, "ee42051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42051C1Ev();
+extern void _ZN7ee42051D1Ev();
+Name_Map name_map_ee42051[] = {
+ NSPAIR(_ZN7ee42051C1Ev),
+ NSPAIR(_ZN7ee42051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee42051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42051[];
+extern void _ZN7ee420513barEv();
+extern void _ZN6dd20513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42051[0]),
+ (VTBL_ENTRY)&_ZN7ee420513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee42051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee42051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee42051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee42051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee42051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee42051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee42051[] = {
+ {&(_ZTV7ee42051[3]), 3,9},
+ {&(_tg__ZTV6dd2051__7ee42051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee42051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee42051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee42051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee42051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee42051[3]), 3,4},
+ {&(_ZTV7ee42051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42051[];
+extern VTBL_ENTRY _ZTV7ee42051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42051[];
+static VTBL_ENTRY alt_thunk_names442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42051 = { "ee42051", // class name
+ bases_ee42051, 4,
+ &(vtc_ee42051[0]), // expected_vtbl_contents
+ &(vtt_ee42051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names442,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52051 : virtual dd2051 {
+ int e;
+ virtual void bar(); // _ZN7ee520513barEv
+ ~ee52051(); // tgen
+ ee52051(); // tgen
+};
+//SIG(1 ee52051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52051 ::bar(){vfunc_called(this, "_ZN7ee520513barEv");}
+ee52051 ::~ee52051(){ note_dtor("ee52051", this);} // tgen
+ee52051 ::ee52051(){ note_ctor("ee52051", this);} // tgen
+
+static void Test_ee52051()
+{
+ extern Class_Descriptor cd_ee52051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52051, buf);
+ ee52051 *dp, &lv = *(dp=new (buf) ee52051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(40,24), "ee52051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), ABISELECT(16,8), "ee52051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), ABISELECT(16,8), "ee52051");
+ check_base_class_offset(lv, (dd2051*), ABISELECT(16,8), "ee52051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52051.e");
+ test_class_info(&lv, &cd_ee52051);
+ dp->~ee52051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52051(Test_ee52051, "ee52051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52051C1Ev();
+extern void _ZN7ee52051D1Ev();
+Name_Map name_map_ee52051[] = {
+ NSPAIR(_ZN7ee52051C1Ev),
+ NSPAIR(_ZN7ee52051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee52051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52051[];
+extern void _ZN7ee520513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520513barEv,_ZTv0_n16_N7ee520513barEv)();
+extern void ABISELECT(_ZThn16_N7ee520513barEv,_ZThn8_N7ee520513barEv)() __attribute__((weak));
+extern void _ZN6dd20513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52051[0]),
+ (VTBL_ENTRY)&_ZN7ee520513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520513barEv,_ZTv0_n16_N7ee520513barEv),
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee52051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee52051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee52051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee52051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee52051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee52051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee52051[] = {
+ {&(_ZTV7ee52051[4]), 4,16},
+ {&(_ZTV7ee52051[10]), 10,16},
+ {&(_ZTV7ee52051[15]), 15,16},
+ {&(_tg__ZTV6dd2051__7ee52051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee52051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee52051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee52051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee52051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee52051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52051[];
+extern VTBL_ENTRY _ZTV7ee52051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52051[];
+static VTBL_ENTRY alt_thunk_names443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520513barEv,_ZTv0_n16_N7ee520513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520513barEv,_ZThn8_N7ee520513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52051 = { "ee52051", // class name
+ bases_ee52051, 4,
+ &(vtc_ee52051[0]), // expected_vtbl_contents
+ &(vtt_ee52051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52051),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names443,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62051 : dd2051 {
+ int e;
+ virtual void foo(); // _ZN7ee620513fooEv
+ virtual void bar(); // _ZN7ee620513barEv
+ ~ee62051(); // tgen
+ ee62051(); // tgen
+};
+//SIG(1 ee62051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62051 ::foo(){vfunc_called(this, "_ZN7ee620513fooEv");}
+void ee62051 ::bar(){vfunc_called(this, "_ZN7ee620513barEv");}
+ee62051 ::~ee62051(){ note_dtor("ee62051", this);} // tgen
+ee62051 ::ee62051(){ note_ctor("ee62051", this);} // tgen
+
+static void Test_ee62051()
+{
+ extern Class_Descriptor cd_ee62051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62051, buf);
+ ee62051 *dp, &lv = *(dp=new (buf) ee62051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(24,20), "ee62051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), 0, "ee62051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), 0, "ee62051");
+ check_base_class_offset(lv, (dd2051*), 0, "ee62051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62051.e");
+ test_class_info(&lv, &cd_ee62051);
+ dp->~ee62051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62051(Test_ee62051, "ee62051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62051C1Ev();
+extern void _ZN7ee62051D1Ev();
+Name_Map name_map_ee62051[] = {
+ NSPAIR(_ZN7ee62051C1Ev),
+ NSPAIR(_ZN7ee62051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee62051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62051[];
+extern void _ZN7ee620513barEv();
+extern void _ZN7ee620513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee620513fooEv,_ZTv0_n12_N7ee620513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee620513fooEv,_ZThn20_N7ee620513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62051[0]),
+ (VTBL_ENTRY)&_ZN7ee620513barEv,
+ (VTBL_ENTRY)&_ZN7ee620513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee620513fooEv,_ZTv0_n12_N7ee620513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee62051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee62051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee62051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee62051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee62051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee62051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee62051[] = {
+ {&(_ZTV7ee62051[3]), 3,9},
+ {&(_tg__ZTV6dd2051__7ee62051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee62051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee62051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee62051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee62051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee62051[3]), 3,4},
+ {&(_ZTV7ee62051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62051[];
+extern VTBL_ENTRY _ZTV7ee62051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62051[];
+static VTBL_ENTRY alt_thunk_names444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn20_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee620513fooEv,_ZTv0_n12_N7ee620513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee620513fooEv,_ZThn20_N7ee620513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62051 = { "ee62051", // class name
+ bases_ee62051, 4,
+ &(vtc_ee62051[0]), // expected_vtbl_contents
+ &(vtt_ee62051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names444,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72051 : virtual dd2051 {
+ int e;
+ virtual void foo(); // _ZN7ee720513fooEv
+ virtual void bar(); // _ZN7ee720513barEv
+ ~ee72051(); // tgen
+ ee72051(); // tgen
+};
+//SIG(1 ee72051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72051 ::foo(){vfunc_called(this, "_ZN7ee720513fooEv");}
+void ee72051 ::bar(){vfunc_called(this, "_ZN7ee720513barEv");}
+ee72051 ::~ee72051(){ note_dtor("ee72051", this);} // tgen
+ee72051 ::ee72051(){ note_ctor("ee72051", this);} // tgen
+
+static void Test_ee72051()
+{
+ extern Class_Descriptor cd_ee72051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72051, buf);
+ ee72051 *dp, &lv = *(dp=new (buf) ee72051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd2051*), ABISELECT(40,24), "ee72051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd2051*), ABISELECT(16,8), "ee72051");
+ check_base_class_offset(lv, (cc051*)(dd2051*), ABISELECT(16,8), "ee72051");
+ check_base_class_offset(lv, (dd2051*), ABISELECT(16,8), "ee72051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72051.e");
+ test_class_info(&lv, &cd_ee72051);
+ dp->~ee72051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72051(Test_ee72051, "ee72051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72051C1Ev();
+extern void _ZN7ee72051D1Ev();
+Name_Map name_map_ee72051[] = {
+ NSPAIR(_ZN7ee72051C1Ev),
+ NSPAIR(_ZN7ee72051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd2051;
+extern VTBL_ENTRY _ZTI6dd2051[];
+extern VTBL_ENTRY _ZTV6dd2051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2051[];
+static Base_Class bases_ee72051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2051, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72051[];
+extern void _ZN7ee720513fooEv();
+extern void _ZN7ee720513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee720513barEv,_ZTv0_n16_N7ee720513barEv)();
+extern void ABISELECT(_ZThn16_N7ee720513barEv,_ZThn8_N7ee720513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee720513fooEv,_ZTv0_n20_N7ee720513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720513fooEv,_ZThn8_N7ee720513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee720513fooEv,_ZTv0_n12_N7ee720513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee720513fooEv,_ZThn24_N7ee720513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72051[0]),
+ (VTBL_ENTRY)&_ZN7ee720513fooEv,
+ (VTBL_ENTRY)&_ZN7ee720513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720513barEv,_ZTv0_n16_N7ee720513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee720513fooEv,_ZTv0_n20_N7ee720513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720513fooEv,_ZTv0_n12_N7ee720513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72051[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd20513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2051__7ee72051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd20513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd2051__7ee72051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd2051__7ee72051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd2051__7ee72051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd2051__7ee72051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2051__7ee72051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv),
+};
+static VTT_ENTRY vtt_ee72051[] = {
+ {&(_ZTV7ee72051[4]), 4,17},
+ {&(_ZTV7ee72051[11]), 11,17},
+ {&(_ZTV7ee72051[16]), 16,17},
+ {&(_tg__ZTV6dd2051__7ee72051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd2051__7ee72051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd2051__7ee72051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd2051__7ee72051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd2051__7ee72051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2051__7ee72051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72051[];
+extern VTBL_ENTRY _ZTV7ee72051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72051[];
+static VTBL_ENTRY alt_thunk_names445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20513fooEv,_ZTv0_n12_N6dd20513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20513fooEv,_ZThn16_N6dd20513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720513fooEv,_ZTv0_n12_N7ee720513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee720513fooEv,_ZThn24_N7ee720513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee720513fooEv,_ZTv0_n20_N7ee720513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720513fooEv,_ZThn8_N7ee720513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720513barEv,_ZTv0_n16_N7ee720513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720513barEv,_ZThn8_N7ee720513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72051 = { "ee72051", // class name
+ bases_ee72051, 4,
+ &(vtc_ee72051[0]), // expected_vtbl_contents
+ &(vtt_ee72051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72051),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names445,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3051 : virtual cc051 {
+ int d;
+ virtual void foo(); // _ZN6dd30513fooEv
+ ~dd3051(); // tgen
+ dd3051(); // tgen
+};
+//SIG(-1 dd3051) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3051 ::foo(){vfunc_called(this, "_ZN6dd30513fooEv");}
+dd3051 ::~dd3051(){ note_dtor("dd3051", this);} // tgen
+dd3051 ::dd3051(){ note_ctor("dd3051", this);} // tgen
+
+static void Test_dd3051()
+{
+ extern Class_Descriptor cd_dd3051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3051, buf);
+ dd3051 *dp, &lv = *(dp=new (buf) dd3051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,20), "dd3051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,8), "dd3051");
+ check_base_class_offset(lv, (cc051*), ABISELECT(16,8), "dd3051");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3051.d");
+ test_class_info(&lv, &cd_dd3051);
+ dp->~dd3051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3051(Test_dd3051, "dd3051", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3051C1Ev();
+extern void _ZN6dd3051D1Ev();
+Name_Map name_map_dd3051[] = {
+ NSPAIR(_ZN6dd3051C1Ev),
+ NSPAIR(_ZN6dd3051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd3051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd3051[];
+extern void _ZN6dd30513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd3051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd3051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd3051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3051[] = {
+ {&(_ZTV6dd3051[4]), 4,14},
+ {&(_ZTV6dd3051[9]), 9,14},
+ {&(_ZTV6dd3051[13]), 13,14},
+ {&(_tg__ZTV5cc051__6dd3051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd3051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd3051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd3051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static VTBL_ENTRY alt_thunk_names446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3051 = { "dd3051", // class name
+ bases_dd3051, 3,
+ &(vtc_dd3051[0]), // expected_vtbl_contents
+ &(vtt_dd3051[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3051),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names446,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03051 : dd3051 {
+ int e;
+ ~ee03051(); // tgen
+ ee03051(); // tgen
+};
+//SIG(1 ee03051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03051 ::~ee03051(){ note_dtor("ee03051", this);} // tgen
+ee03051 ::ee03051(){ note_ctor("ee03051", this);} // tgen
+
+static void Test_ee03051()
+{
+ extern Class_Descriptor cd_ee03051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03051, buf);
+ ee03051 *dp, &lv = *(dp=new (buf) ee03051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee03051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee03051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(16,12), "ee03051");
+ check_base_class_offset(lv, (dd3051*), 0, "ee03051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03051.e");
+ test_class_info(&lv, &cd_ee03051);
+ dp->~ee03051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03051(Test_ee03051, "ee03051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03051C1Ev();
+extern void _ZN7ee03051D1Ev();
+Name_Map name_map_ee03051[] = {
+ NSPAIR(_ZN7ee03051C1Ev),
+ NSPAIR(_ZN7ee03051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee03051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03051[];
+extern void _ZN6dd30513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee03051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee03051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee03051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee03051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee03051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee03051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee03051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03051[] = {
+ {&(_ZTV7ee03051[4]), 4,14},
+ {&(_tg__ZTV6dd3051__7ee03051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee03051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee03051[3]), 3,4},
+ {&(_ZTV7ee03051[9]), 9,14},
+ {&(_ZTV7ee03051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee03051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee03051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee03051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee03051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03051[];
+extern VTBL_ENTRY _ZTV7ee03051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03051[];
+static VTBL_ENTRY alt_thunk_names447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03051 = { "ee03051", // class name
+ bases_ee03051, 4,
+ &(vtc_ee03051[0]), // expected_vtbl_contents
+ &(vtt_ee03051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names447,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13051 : virtual dd3051 {
+ int e;
+ ~ee13051(); // tgen
+ ee13051(); // tgen
+};
+//SIG(1 ee13051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13051 ::~ee13051(){ note_dtor("ee13051", this);} // tgen
+ee13051 ::ee13051(){ note_ctor("ee13051", this);} // tgen
+
+static void Test_ee13051()
+{
+ extern Class_Descriptor cd_ee13051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13051, buf);
+ ee13051 *dp, &lv = *(dp=new (buf) ee13051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee13051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee13051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(32,16), "ee13051");
+ check_base_class_offset(lv, (dd3051*), ABISELECT(16,8), "ee13051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13051.e");
+ test_class_info(&lv, &cd_ee13051);
+ dp->~ee13051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13051(Test_ee13051, "ee13051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13051C1Ev();
+extern void _ZN7ee13051D1Ev();
+Name_Map name_map_ee13051[] = {
+ NSPAIR(_ZN7ee13051C1Ev),
+ NSPAIR(_ZN7ee13051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee13051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13051[];
+extern void _ZN6dd30513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13051[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee13051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee13051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee13051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee13051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee13051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee13051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee13051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13051[] = {
+ {&(_ZTV7ee13051[5]), 5,20},
+ {&(_ZTV7ee13051[10]), 10,20},
+ {&(_ZTV7ee13051[15]), 15,20},
+ {&(_ZTV7ee13051[19]), 19,20},
+ {&(_tg__ZTV6dd3051__7ee13051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee13051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee13051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee13051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee13051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee13051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee13051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13051[];
+extern VTBL_ENTRY _ZTV7ee13051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13051[];
+static VTBL_ENTRY alt_thunk_names448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13051 = { "ee13051", // class name
+ bases_ee13051, 4,
+ &(vtc_ee13051[0]), // expected_vtbl_contents
+ &(vtt_ee13051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13051),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names448,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23051 : dd3051 {
+ int e;
+ virtual void foo(); // _ZN7ee230513fooEv
+ ~ee23051(); // tgen
+ ee23051(); // tgen
+};
+//SIG(1 ee23051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23051 ::foo(){vfunc_called(this, "_ZN7ee230513fooEv");}
+ee23051 ::~ee23051(){ note_dtor("ee23051", this);} // tgen
+ee23051 ::ee23051(){ note_ctor("ee23051", this);} // tgen
+
+static void Test_ee23051()
+{
+ extern Class_Descriptor cd_ee23051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23051, buf);
+ ee23051 *dp, &lv = *(dp=new (buf) ee23051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee23051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee23051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(16,12), "ee23051");
+ check_base_class_offset(lv, (dd3051*), 0, "ee23051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23051.e");
+ test_class_info(&lv, &cd_ee23051);
+ dp->~ee23051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23051(Test_ee23051, "ee23051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23051C1Ev();
+extern void _ZN7ee23051D1Ev();
+Name_Map name_map_ee23051[] = {
+ NSPAIR(_ZN7ee23051C1Ev),
+ NSPAIR(_ZN7ee23051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee23051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23051[];
+extern void _ZN7ee230513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230513fooEv,_ZTv0_n12_N7ee230513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee230513fooEv,_ZThn24_N7ee230513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23051[0]),
+ (VTBL_ENTRY)&_ZN7ee230513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230513fooEv,_ZTv0_n12_N7ee230513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee23051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee23051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee23051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee23051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee23051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee23051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee23051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23051[] = {
+ {&(_ZTV7ee23051[4]), 4,14},
+ {&(_tg__ZTV6dd3051__7ee23051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee23051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee23051[3]), 3,4},
+ {&(_ZTV7ee23051[9]), 9,14},
+ {&(_ZTV7ee23051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee23051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee23051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee23051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee23051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23051[];
+extern VTBL_ENTRY _ZTV7ee23051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23051[];
+static VTBL_ENTRY alt_thunk_names449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230513fooEv,_ZTv0_n12_N7ee230513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee230513fooEv,_ZThn24_N7ee230513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23051 = { "ee23051", // class name
+ bases_ee23051, 4,
+ &(vtc_ee23051[0]), // expected_vtbl_contents
+ &(vtt_ee23051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names449,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33051 : virtual dd3051 {
+ int e;
+ virtual void foo(); // _ZN7ee330513fooEv
+ ~ee33051(); // tgen
+ ee33051(); // tgen
+};
+//SIG(1 ee33051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33051 ::foo(){vfunc_called(this, "_ZN7ee330513fooEv");}
+ee33051 ::~ee33051(){ note_dtor("ee33051", this);} // tgen
+ee33051 ::ee33051(){ note_ctor("ee33051", this);} // tgen
+
+static void Test_ee33051()
+{
+ extern Class_Descriptor cd_ee33051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33051, buf);
+ ee33051 *dp, &lv = *(dp=new (buf) ee33051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee33051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee33051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(32,16), "ee33051");
+ check_base_class_offset(lv, (dd3051*), ABISELECT(16,8), "ee33051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33051.e");
+ test_class_info(&lv, &cd_ee33051);
+ dp->~ee33051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33051(Test_ee33051, "ee33051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33051C1Ev();
+extern void _ZN7ee33051D1Ev();
+Name_Map name_map_ee33051[] = {
+ NSPAIR(_ZN7ee33051C1Ev),
+ NSPAIR(_ZN7ee33051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee33051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33051[];
+extern void _ZN7ee330513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee330513fooEv,_ZTv0_n20_N7ee330513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330513fooEv,_ZThn8_N7ee330513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee330513fooEv,_ZTv0_n12_N7ee330513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee330513fooEv,_ZThn28_N7ee330513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33051[0]),
+ (VTBL_ENTRY)&_ZN7ee330513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee330513fooEv,_ZTv0_n20_N7ee330513fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330513fooEv,_ZTv0_n12_N7ee330513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee33051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee33051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee33051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee33051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee33051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee33051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee33051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33051[] = {
+ {&(_ZTV7ee33051[5]), 5,21},
+ {&(_ZTV7ee33051[11]), 11,21},
+ {&(_ZTV7ee33051[16]), 16,21},
+ {&(_ZTV7ee33051[20]), 20,21},
+ {&(_tg__ZTV6dd3051__7ee33051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee33051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee33051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee33051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee33051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee33051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee33051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33051[];
+extern VTBL_ENTRY _ZTV7ee33051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33051[];
+static VTBL_ENTRY alt_thunk_names450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330513fooEv,_ZTv0_n12_N7ee330513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee330513fooEv,_ZThn28_N7ee330513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee330513fooEv,_ZTv0_n20_N7ee330513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330513fooEv,_ZThn8_N7ee330513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33051 = { "ee33051", // class name
+ bases_ee33051, 4,
+ &(vtc_ee33051[0]), // expected_vtbl_contents
+ &(vtt_ee33051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33051),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43051 : dd3051 {
+ int e;
+ virtual void bar(); // _ZN7ee430513barEv
+ ~ee43051(); // tgen
+ ee43051(); // tgen
+};
+//SIG(1 ee43051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43051 ::bar(){vfunc_called(this, "_ZN7ee430513barEv");}
+ee43051 ::~ee43051(){ note_dtor("ee43051", this);} // tgen
+ee43051 ::ee43051(){ note_ctor("ee43051", this);} // tgen
+
+static void Test_ee43051()
+{
+ extern Class_Descriptor cd_ee43051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43051, buf);
+ ee43051 *dp, &lv = *(dp=new (buf) ee43051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee43051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee43051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(16,12), "ee43051");
+ check_base_class_offset(lv, (dd3051*), 0, "ee43051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43051.e");
+ test_class_info(&lv, &cd_ee43051);
+ dp->~ee43051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43051(Test_ee43051, "ee43051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43051C1Ev();
+extern void _ZN7ee43051D1Ev();
+Name_Map name_map_ee43051[] = {
+ NSPAIR(_ZN7ee43051C1Ev),
+ NSPAIR(_ZN7ee43051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee43051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43051[];
+extern void _ZN6dd30513fooEv();
+extern void _ZN7ee430513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee430513barEv,_ZTv0_n16_N7ee430513barEv)();
+extern void ABISELECT(_ZThn16_N7ee430513barEv,_ZThn12_N7ee430513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+ (VTBL_ENTRY)&_ZN7ee430513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430513barEv,_ZTv0_n16_N7ee430513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee43051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee43051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee43051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee43051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee43051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee43051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee43051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43051[] = {
+ {&(_ZTV7ee43051[4]), 4,15},
+ {&(_tg__ZTV6dd3051__7ee43051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee43051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee43051[3]), 3,4},
+ {&(_ZTV7ee43051[10]), 10,15},
+ {&(_ZTV7ee43051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee43051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee43051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee43051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee43051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43051[];
+extern VTBL_ENTRY _ZTV7ee43051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43051[];
+static VTBL_ENTRY alt_thunk_names451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430513barEv,_ZTv0_n16_N7ee430513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430513barEv,_ZThn12_N7ee430513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43051 = { "ee43051", // class name
+ bases_ee43051, 4,
+ &(vtc_ee43051[0]), // expected_vtbl_contents
+ &(vtt_ee43051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names451,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53051 : virtual dd3051 {
+ int e;
+ virtual void bar(); // _ZN7ee530513barEv
+ ~ee53051(); // tgen
+ ee53051(); // tgen
+};
+//SIG(1 ee53051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53051 ::bar(){vfunc_called(this, "_ZN7ee530513barEv");}
+ee53051 ::~ee53051(){ note_dtor("ee53051", this);} // tgen
+ee53051 ::ee53051(){ note_ctor("ee53051", this);} // tgen
+
+static void Test_ee53051()
+{
+ extern Class_Descriptor cd_ee53051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53051, buf);
+ ee53051 *dp, &lv = *(dp=new (buf) ee53051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee53051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee53051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(32,16), "ee53051");
+ check_base_class_offset(lv, (dd3051*), ABISELECT(16,8), "ee53051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53051.e");
+ test_class_info(&lv, &cd_ee53051);
+ dp->~ee53051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53051(Test_ee53051, "ee53051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53051C1Ev();
+extern void _ZN7ee53051D1Ev();
+Name_Map name_map_ee53051[] = {
+ NSPAIR(_ZN7ee53051C1Ev),
+ NSPAIR(_ZN7ee53051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee53051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53051[];
+extern void _ZN7ee530513barEv();
+extern void _ZN6dd30513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee530513barEv,_ZTv0_n16_N7ee530513barEv)();
+extern void ABISELECT(_ZThn32_N7ee530513barEv,_ZThn16_N7ee530513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53051[0]),
+ (VTBL_ENTRY)&_ZN7ee530513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530513barEv,_ZTv0_n16_N7ee530513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee53051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee53051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee53051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee53051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee53051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee53051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee53051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53051[] = {
+ {&(_ZTV7ee53051[5]), 5,21},
+ {&(_ZTV7ee53051[11]), 11,21},
+ {&(_ZTV7ee53051[16]), 16,21},
+ {&(_ZTV7ee53051[20]), 20,21},
+ {&(_tg__ZTV6dd3051__7ee53051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee53051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee53051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee53051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee53051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee53051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee53051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53051[];
+extern VTBL_ENTRY _ZTV7ee53051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53051[];
+static VTBL_ENTRY alt_thunk_names452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530513barEv,_ZTv0_n16_N7ee530513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530513barEv,_ZThn16_N7ee530513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53051 = { "ee53051", // class name
+ bases_ee53051, 4,
+ &(vtc_ee53051[0]), // expected_vtbl_contents
+ &(vtt_ee53051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53051),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names452,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63051 : dd3051 {
+ int e;
+ virtual void foo(); // _ZN7ee630513fooEv
+ virtual void bar(); // _ZN7ee630513barEv
+ ~ee63051(); // tgen
+ ee63051(); // tgen
+};
+//SIG(1 ee63051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63051 ::foo(){vfunc_called(this, "_ZN7ee630513fooEv");}
+void ee63051 ::bar(){vfunc_called(this, "_ZN7ee630513barEv");}
+ee63051 ::~ee63051(){ note_dtor("ee63051", this);} // tgen
+ee63051 ::ee63051(){ note_ctor("ee63051", this);} // tgen
+
+static void Test_ee63051()
+{
+ extern Class_Descriptor cd_ee63051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63051, buf);
+ ee63051 *dp, &lv = *(dp=new (buf) ee63051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee63051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee63051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(16,12), "ee63051");
+ check_base_class_offset(lv, (dd3051*), 0, "ee63051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63051.e");
+ test_class_info(&lv, &cd_ee63051);
+ dp->~ee63051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63051(Test_ee63051, "ee63051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63051C1Ev();
+extern void _ZN7ee63051D1Ev();
+Name_Map name_map_ee63051[] = {
+ NSPAIR(_ZN7ee63051C1Ev),
+ NSPAIR(_ZN7ee63051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee63051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63051[];
+extern void _ZN7ee630513fooEv();
+extern void _ZN7ee630513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee630513barEv,_ZTv0_n16_N7ee630513barEv)();
+extern void ABISELECT(_ZThn16_N7ee630513barEv,_ZThn12_N7ee630513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee630513fooEv,_ZTv0_n12_N7ee630513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee630513fooEv,_ZThn24_N7ee630513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63051[0]),
+ (VTBL_ENTRY)&_ZN7ee630513fooEv,
+ (VTBL_ENTRY)&_ZN7ee630513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630513barEv,_ZTv0_n16_N7ee630513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630513fooEv,_ZTv0_n12_N7ee630513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee63051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee63051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee63051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee63051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee63051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee63051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee63051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63051[] = {
+ {&(_ZTV7ee63051[4]), 4,15},
+ {&(_tg__ZTV6dd3051__7ee63051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee63051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee63051[3]), 3,4},
+ {&(_ZTV7ee63051[10]), 10,15},
+ {&(_ZTV7ee63051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee63051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee63051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee63051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee63051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63051[];
+extern VTBL_ENTRY _ZTV7ee63051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63051[];
+static VTBL_ENTRY alt_thunk_names453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn24_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630513fooEv,_ZTv0_n12_N7ee630513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee630513fooEv,_ZThn24_N7ee630513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630513barEv,_ZTv0_n16_N7ee630513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630513barEv,_ZThn12_N7ee630513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63051 = { "ee63051", // class name
+ bases_ee63051, 4,
+ &(vtc_ee63051[0]), // expected_vtbl_contents
+ &(vtt_ee63051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names453,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73051 : virtual dd3051 {
+ int e;
+ virtual void foo(); // _ZN7ee730513fooEv
+ virtual void bar(); // _ZN7ee730513barEv
+ ~ee73051(); // tgen
+ ee73051(); // tgen
+};
+//SIG(1 ee73051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73051 ::foo(){vfunc_called(this, "_ZN7ee730513fooEv");}
+void ee73051 ::bar(){vfunc_called(this, "_ZN7ee730513barEv");}
+ee73051 ::~ee73051(){ note_dtor("ee73051", this);} // tgen
+ee73051 ::ee73051(){ note_ctor("ee73051", this);} // tgen
+
+static void Test_ee73051()
+{
+ extern Class_Descriptor cd_ee73051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73051, buf);
+ ee73051 *dp, &lv = *(dp=new (buf) ee73051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee73051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee73051");
+ check_base_class_offset(lv, (cc051*)(dd3051*), ABISELECT(32,16), "ee73051");
+ check_base_class_offset(lv, (dd3051*), ABISELECT(16,8), "ee73051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73051.e");
+ test_class_info(&lv, &cd_ee73051);
+ dp->~ee73051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73051(Test_ee73051, "ee73051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73051C1Ev();
+extern void _ZN7ee73051D1Ev();
+Name_Map name_map_ee73051[] = {
+ NSPAIR(_ZN7ee73051C1Ev),
+ NSPAIR(_ZN7ee73051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd3051;
+extern VTBL_ENTRY _ZTI6dd3051[];
+extern VTBL_ENTRY _ZTV6dd3051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3051[];
+static Base_Class bases_ee73051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3051, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73051[];
+extern void _ZN7ee730513fooEv();
+extern void _ZN7ee730513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee730513fooEv,_ZTv0_n20_N7ee730513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730513fooEv,_ZThn8_N7ee730513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730513barEv,_ZTv0_n16_N7ee730513barEv)();
+extern void ABISELECT(_ZThn32_N7ee730513barEv,_ZThn16_N7ee730513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730513fooEv,_ZTv0_n12_N7ee730513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee730513fooEv,_ZThn28_N7ee730513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73051[0]),
+ (VTBL_ENTRY)&_ZN7ee730513fooEv,
+ (VTBL_ENTRY)&_ZN7ee730513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee730513fooEv,_ZTv0_n20_N7ee730513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730513barEv,_ZTv0_n16_N7ee730513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730513fooEv,_ZTv0_n12_N7ee730513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73051[];
+extern void _ZN6dd30513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3051__7ee73051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN6dd30513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd3051__7ee73051[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3051__7ee73051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee73051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee73051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee73051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee73051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73051[] = {
+ {&(_ZTV7ee73051[5]), 5,22},
+ {&(_ZTV7ee73051[12]), 12,22},
+ {&(_ZTV7ee73051[17]), 17,22},
+ {&(_ZTV7ee73051[21]), 21,22},
+ {&(_tg__ZTV6dd3051__7ee73051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd3051__7ee73051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3051__7ee73051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee73051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee73051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee73051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee73051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73051[];
+extern VTBL_ENTRY _ZTV7ee73051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73051[];
+static VTBL_ENTRY alt_thunk_names454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30513fooEv,_ZTv0_n12_N6dd30513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30513fooEv,_ZThn20_N6dd30513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730513fooEv,_ZTv0_n12_N7ee730513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee730513fooEv,_ZThn28_N7ee730513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730513barEv,_ZTv0_n16_N7ee730513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730513barEv,_ZThn16_N7ee730513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee730513fooEv,_ZTv0_n20_N7ee730513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730513fooEv,_ZThn8_N7ee730513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73051 = { "ee73051", // class name
+ bases_ee73051, 4,
+ &(vtc_ee73051[0]), // expected_vtbl_contents
+ &(vtt_ee73051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73051),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names454,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4051 : cc051 {
+ int d;
+ virtual void bar(); // _ZN6dd40513barEv
+ ~dd4051(); // tgen
+ dd4051(); // tgen
+};
+//SIG(-1 dd4051) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4051 ::bar(){vfunc_called(this, "_ZN6dd40513barEv");}
+dd4051 ::~dd4051(){ note_dtor("dd4051", this);} // tgen
+dd4051 ::dd4051(){ note_ctor("dd4051", this);} // tgen
+
+static void Test_dd4051()
+{
+ extern Class_Descriptor cd_dd4051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4051, buf);
+ dd4051 *dp, &lv = *(dp=new (buf) dd4051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(24,16), "dd4051");
+ check_base_class_offset(lv, (bb51*)(cc051*), 0, "dd4051");
+ check_base_class_offset(lv, (cc051*), 0, "dd4051");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4051.d");
+ test_class_info(&lv, &cd_dd4051);
+ dp->~dd4051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4051(Test_dd4051, "dd4051", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4051C1Ev();
+extern void _ZN6dd4051D1Ev();
+Name_Map name_map_dd4051[] = {
+ NSPAIR(_ZN6dd4051C1Ev),
+ NSPAIR(_ZN6dd4051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd4051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern void _ZN6dd40513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd4051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd4051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd4051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd4051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4051[] = {
+ {&(_ZTV6dd4051[3]), 3,8},
+ {&(_tg__ZTV5cc051__6dd4051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd4051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd4051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd4051[3]), 3,4},
+ {&(_ZTV6dd4051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+Class_Descriptor cd_dd4051 = { "dd4051", // class name
+ bases_dd4051, 3,
+ &(vtc_dd4051[0]), // expected_vtbl_contents
+ &(vtt_dd4051[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4051),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04051 : dd4051 {
+ int e;
+ ~ee04051(); // tgen
+ ee04051(); // tgen
+};
+//SIG(1 ee04051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04051 ::~ee04051(){ note_dtor("ee04051", this);} // tgen
+ee04051 ::ee04051(){ note_ctor("ee04051", this);} // tgen
+
+static void Test_ee04051()
+{
+ extern Class_Descriptor cd_ee04051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04051, buf);
+ ee04051 *dp, &lv = *(dp=new (buf) ee04051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(24,20), "ee04051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), 0, "ee04051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), 0, "ee04051");
+ check_base_class_offset(lv, (dd4051*), 0, "ee04051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04051.e");
+ test_class_info(&lv, &cd_ee04051);
+ dp->~ee04051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04051(Test_ee04051, "ee04051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04051C1Ev();
+extern void _ZN7ee04051D1Ev();
+Name_Map name_map_ee04051[] = {
+ NSPAIR(_ZN7ee04051C1Ev),
+ NSPAIR(_ZN7ee04051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee04051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04051[];
+extern void _ZN6dd40513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee04051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee04051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee04051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee04051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee04051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee04051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04051[] = {
+ {&(_ZTV7ee04051[3]), 3,8},
+ {&(_tg__ZTV6dd4051__7ee04051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee04051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee04051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee04051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee04051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee04051[3]), 3,4},
+ {&(_ZTV7ee04051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04051[];
+extern VTBL_ENTRY _ZTV7ee04051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04051[];
+Class_Descriptor cd_ee04051 = { "ee04051", // class name
+ bases_ee04051, 4,
+ &(vtc_ee04051[0]), // expected_vtbl_contents
+ &(vtt_ee04051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14051 : virtual dd4051 {
+ int e;
+ ~ee14051(); // tgen
+ ee14051(); // tgen
+};
+//SIG(1 ee14051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14051 ::~ee14051(){ note_dtor("ee14051", this);} // tgen
+ee14051 ::ee14051(){ note_ctor("ee14051", this);} // tgen
+
+static void Test_ee14051()
+{
+ extern Class_Descriptor cd_ee14051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14051, buf);
+ ee14051 *dp, &lv = *(dp=new (buf) ee14051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(40,24), "ee14051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), ABISELECT(16,8), "ee14051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), ABISELECT(16,8), "ee14051");
+ check_base_class_offset(lv, (dd4051*), ABISELECT(16,8), "ee14051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14051.e");
+ test_class_info(&lv, &cd_ee14051);
+ dp->~ee14051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14051(Test_ee14051, "ee14051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14051C1Ev();
+extern void _ZN7ee14051D1Ev();
+Name_Map name_map_ee14051[] = {
+ NSPAIR(_ZN7ee14051C1Ev),
+ NSPAIR(_ZN7ee14051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee14051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14051[];
+extern void _ZN6dd40513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14051[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee14051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee14051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee14051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee14051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee14051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee14051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14051[] = {
+ {&(_ZTV7ee14051[4]), 4,13},
+ {&(_ZTV7ee14051[8]), 8,13},
+ {&(_ZTV7ee14051[12]), 12,13},
+ {&(_tg__ZTV6dd4051__7ee14051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee14051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee14051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee14051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee14051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee14051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14051[];
+extern VTBL_ENTRY _ZTV7ee14051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14051[];
+Class_Descriptor cd_ee14051 = { "ee14051", // class name
+ bases_ee14051, 4,
+ &(vtc_ee14051[0]), // expected_vtbl_contents
+ &(vtt_ee14051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14051),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24051 : dd4051 {
+ int e;
+ virtual void foo(); // _ZN7ee240513fooEv
+ ~ee24051(); // tgen
+ ee24051(); // tgen
+};
+//SIG(1 ee24051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24051 ::foo(){vfunc_called(this, "_ZN7ee240513fooEv");}
+ee24051 ::~ee24051(){ note_dtor("ee24051", this);} // tgen
+ee24051 ::ee24051(){ note_ctor("ee24051", this);} // tgen
+
+static void Test_ee24051()
+{
+ extern Class_Descriptor cd_ee24051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24051, buf);
+ ee24051 *dp, &lv = *(dp=new (buf) ee24051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(24,20), "ee24051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), 0, "ee24051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), 0, "ee24051");
+ check_base_class_offset(lv, (dd4051*), 0, "ee24051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24051.e");
+ test_class_info(&lv, &cd_ee24051);
+ dp->~ee24051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24051(Test_ee24051, "ee24051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24051C1Ev();
+extern void _ZN7ee24051D1Ev();
+Name_Map name_map_ee24051[] = {
+ NSPAIR(_ZN7ee24051C1Ev),
+ NSPAIR(_ZN7ee24051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee24051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24051[];
+extern void _ZN6dd40513barEv();
+extern void _ZN7ee240513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee240513fooEv,_ZTv0_n12_N7ee240513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee240513fooEv,_ZThn20_N7ee240513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+ (VTBL_ENTRY)&_ZN7ee240513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee240513fooEv,_ZTv0_n12_N7ee240513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee24051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee24051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee24051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee24051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee24051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee24051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24051[] = {
+ {&(_ZTV7ee24051[3]), 3,9},
+ {&(_tg__ZTV6dd4051__7ee24051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee24051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee24051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee24051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee24051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee24051[3]), 3,4},
+ {&(_ZTV7ee24051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24051[];
+extern VTBL_ENTRY _ZTV7ee24051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24051[];
+static VTBL_ENTRY alt_thunk_names455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee240513fooEv,_ZTv0_n12_N7ee240513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee240513fooEv,_ZThn20_N7ee240513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24051 = { "ee24051", // class name
+ bases_ee24051, 4,
+ &(vtc_ee24051[0]), // expected_vtbl_contents
+ &(vtt_ee24051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names455,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34051 : virtual dd4051 {
+ int e;
+ virtual void foo(); // _ZN7ee340513fooEv
+ ~ee34051(); // tgen
+ ee34051(); // tgen
+};
+//SIG(1 ee34051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34051 ::foo(){vfunc_called(this, "_ZN7ee340513fooEv");}
+ee34051 ::~ee34051(){ note_dtor("ee34051", this);} // tgen
+ee34051 ::ee34051(){ note_ctor("ee34051", this);} // tgen
+
+static void Test_ee34051()
+{
+ extern Class_Descriptor cd_ee34051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34051, buf);
+ ee34051 *dp, &lv = *(dp=new (buf) ee34051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(40,24), "ee34051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), ABISELECT(16,8), "ee34051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), ABISELECT(16,8), "ee34051");
+ check_base_class_offset(lv, (dd4051*), ABISELECT(16,8), "ee34051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34051.e");
+ test_class_info(&lv, &cd_ee34051);
+ dp->~ee34051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34051(Test_ee34051, "ee34051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34051C1Ev();
+extern void _ZN7ee34051D1Ev();
+Name_Map name_map_ee34051[] = {
+ NSPAIR(_ZN7ee34051C1Ev),
+ NSPAIR(_ZN7ee34051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee34051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34051[];
+extern void _ZN7ee340513fooEv();
+extern void _ZN6dd40513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340513fooEv,_ZTv0_n12_N7ee340513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee340513fooEv,_ZThn24_N7ee340513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34051[0]),
+ (VTBL_ENTRY)&_ZN7ee340513fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340513fooEv,_ZTv0_n12_N7ee340513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee34051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee34051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee34051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee34051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee34051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee34051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34051[] = {
+ {&(_ZTV7ee34051[4]), 4,14},
+ {&(_ZTV7ee34051[9]), 9,14},
+ {&(_ZTV7ee34051[13]), 13,14},
+ {&(_tg__ZTV6dd4051__7ee34051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee34051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee34051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee34051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee34051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee34051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34051[];
+extern VTBL_ENTRY _ZTV7ee34051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34051[];
+static VTBL_ENTRY alt_thunk_names456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340513fooEv,_ZTv0_n12_N7ee340513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee340513fooEv,_ZThn24_N7ee340513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34051 = { "ee34051", // class name
+ bases_ee34051, 4,
+ &(vtc_ee34051[0]), // expected_vtbl_contents
+ &(vtt_ee34051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names456,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44051 : dd4051 {
+ int e;
+ virtual void bar(); // _ZN7ee440513barEv
+ ~ee44051(); // tgen
+ ee44051(); // tgen
+};
+//SIG(1 ee44051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44051 ::bar(){vfunc_called(this, "_ZN7ee440513barEv");}
+ee44051 ::~ee44051(){ note_dtor("ee44051", this);} // tgen
+ee44051 ::ee44051(){ note_ctor("ee44051", this);} // tgen
+
+static void Test_ee44051()
+{
+ extern Class_Descriptor cd_ee44051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44051, buf);
+ ee44051 *dp, &lv = *(dp=new (buf) ee44051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(24,20), "ee44051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), 0, "ee44051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), 0, "ee44051");
+ check_base_class_offset(lv, (dd4051*), 0, "ee44051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44051.e");
+ test_class_info(&lv, &cd_ee44051);
+ dp->~ee44051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44051(Test_ee44051, "ee44051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44051C1Ev();
+extern void _ZN7ee44051D1Ev();
+Name_Map name_map_ee44051[] = {
+ NSPAIR(_ZN7ee44051C1Ev),
+ NSPAIR(_ZN7ee44051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee44051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44051[];
+extern void _ZN7ee440513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44051[0]),
+ (VTBL_ENTRY)&_ZN7ee440513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee44051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee44051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee44051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee44051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee44051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee44051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44051[] = {
+ {&(_ZTV7ee44051[3]), 3,8},
+ {&(_tg__ZTV6dd4051__7ee44051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee44051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee44051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee44051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee44051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee44051[3]), 3,4},
+ {&(_ZTV7ee44051[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44051[];
+extern VTBL_ENTRY _ZTV7ee44051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44051[];
+Class_Descriptor cd_ee44051 = { "ee44051", // class name
+ bases_ee44051, 4,
+ &(vtc_ee44051[0]), // expected_vtbl_contents
+ &(vtt_ee44051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44051),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54051 : virtual dd4051 {
+ int e;
+ virtual void bar(); // _ZN7ee540513barEv
+ ~ee54051(); // tgen
+ ee54051(); // tgen
+};
+//SIG(1 ee54051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54051 ::bar(){vfunc_called(this, "_ZN7ee540513barEv");}
+ee54051 ::~ee54051(){ note_dtor("ee54051", this);} // tgen
+ee54051 ::ee54051(){ note_ctor("ee54051", this);} // tgen
+
+static void Test_ee54051()
+{
+ extern Class_Descriptor cd_ee54051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54051, buf);
+ ee54051 *dp, &lv = *(dp=new (buf) ee54051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(40,24), "ee54051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), ABISELECT(16,8), "ee54051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), ABISELECT(16,8), "ee54051");
+ check_base_class_offset(lv, (dd4051*), ABISELECT(16,8), "ee54051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54051.e");
+ test_class_info(&lv, &cd_ee54051);
+ dp->~ee54051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54051(Test_ee54051, "ee54051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54051C1Ev();
+extern void _ZN7ee54051D1Ev();
+Name_Map name_map_ee54051[] = {
+ NSPAIR(_ZN7ee54051C1Ev),
+ NSPAIR(_ZN7ee54051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee54051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54051[];
+extern void _ZN7ee540513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540513barEv,_ZTv0_n16_N7ee540513barEv)();
+extern void ABISELECT(_ZThn16_N7ee540513barEv,_ZThn8_N7ee540513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54051[0]),
+ (VTBL_ENTRY)&_ZN7ee540513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540513barEv,_ZTv0_n16_N7ee540513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee54051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee54051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee54051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee54051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee54051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee54051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54051[] = {
+ {&(_ZTV7ee54051[4]), 4,14},
+ {&(_ZTV7ee54051[9]), 9,14},
+ {&(_ZTV7ee54051[13]), 13,14},
+ {&(_tg__ZTV6dd4051__7ee54051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee54051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee54051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee54051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee54051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee54051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54051[];
+extern VTBL_ENTRY _ZTV7ee54051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54051[];
+static VTBL_ENTRY alt_thunk_names457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540513barEv,_ZTv0_n16_N7ee540513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540513barEv,_ZThn8_N7ee540513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54051 = { "ee54051", // class name
+ bases_ee54051, 4,
+ &(vtc_ee54051[0]), // expected_vtbl_contents
+ &(vtt_ee54051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names457,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64051 : dd4051 {
+ int e;
+ virtual void foo(); // _ZN7ee640513fooEv
+ virtual void bar(); // _ZN7ee640513barEv
+ ~ee64051(); // tgen
+ ee64051(); // tgen
+};
+//SIG(1 ee64051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64051 ::foo(){vfunc_called(this, "_ZN7ee640513fooEv");}
+void ee64051 ::bar(){vfunc_called(this, "_ZN7ee640513barEv");}
+ee64051 ::~ee64051(){ note_dtor("ee64051", this);} // tgen
+ee64051 ::ee64051(){ note_ctor("ee64051", this);} // tgen
+
+static void Test_ee64051()
+{
+ extern Class_Descriptor cd_ee64051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64051, buf);
+ ee64051 *dp, &lv = *(dp=new (buf) ee64051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(24,20), "ee64051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), 0, "ee64051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), 0, "ee64051");
+ check_base_class_offset(lv, (dd4051*), 0, "ee64051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64051.e");
+ test_class_info(&lv, &cd_ee64051);
+ dp->~ee64051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64051(Test_ee64051, "ee64051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64051C1Ev();
+extern void _ZN7ee64051D1Ev();
+Name_Map name_map_ee64051[] = {
+ NSPAIR(_ZN7ee64051C1Ev),
+ NSPAIR(_ZN7ee64051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee64051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64051[];
+extern void _ZN7ee640513barEv();
+extern void _ZN7ee640513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee640513fooEv,_ZTv0_n12_N7ee640513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee640513fooEv,_ZThn20_N7ee640513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64051[0]),
+ (VTBL_ENTRY)&_ZN7ee640513barEv,
+ (VTBL_ENTRY)&_ZN7ee640513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee640513fooEv,_ZTv0_n12_N7ee640513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee64051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee64051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee64051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee64051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee64051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee64051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64051[] = {
+ {&(_ZTV7ee64051[3]), 3,9},
+ {&(_tg__ZTV6dd4051__7ee64051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee64051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee64051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee64051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee64051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee64051[3]), 3,4},
+ {&(_ZTV7ee64051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64051[];
+extern VTBL_ENTRY _ZTV7ee64051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64051[];
+static VTBL_ENTRY alt_thunk_names458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee640513fooEv,_ZTv0_n12_N7ee640513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee640513fooEv,_ZThn20_N7ee640513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64051 = { "ee64051", // class name
+ bases_ee64051, 4,
+ &(vtc_ee64051[0]), // expected_vtbl_contents
+ &(vtt_ee64051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names458,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74051 : virtual dd4051 {
+ int e;
+ virtual void foo(); // _ZN7ee740513fooEv
+ virtual void bar(); // _ZN7ee740513barEv
+ ~ee74051(); // tgen
+ ee74051(); // tgen
+};
+//SIG(1 ee74051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74051 ::foo(){vfunc_called(this, "_ZN7ee740513fooEv");}
+void ee74051 ::bar(){vfunc_called(this, "_ZN7ee740513barEv");}
+ee74051 ::~ee74051(){ note_dtor("ee74051", this);} // tgen
+ee74051 ::ee74051(){ note_ctor("ee74051", this);} // tgen
+
+static void Test_ee74051()
+{
+ extern Class_Descriptor cd_ee74051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74051, buf);
+ ee74051 *dp, &lv = *(dp=new (buf) ee74051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd4051*), ABISELECT(40,24), "ee74051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd4051*), ABISELECT(16,8), "ee74051");
+ check_base_class_offset(lv, (cc051*)(dd4051*), ABISELECT(16,8), "ee74051");
+ check_base_class_offset(lv, (dd4051*), ABISELECT(16,8), "ee74051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74051.e");
+ test_class_info(&lv, &cd_ee74051);
+ dp->~ee74051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74051(Test_ee74051, "ee74051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74051C1Ev();
+extern void _ZN7ee74051D1Ev();
+Name_Map name_map_ee74051[] = {
+ NSPAIR(_ZN7ee74051C1Ev),
+ NSPAIR(_ZN7ee74051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd4051;
+extern VTBL_ENTRY _ZTI6dd4051[];
+extern VTBL_ENTRY _ZTV6dd4051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4051[];
+static Base_Class bases_ee74051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4051, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74051[];
+extern void _ZN7ee740513fooEv();
+extern void _ZN7ee740513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee740513barEv,_ZTv0_n16_N7ee740513barEv)();
+extern void ABISELECT(_ZThn16_N7ee740513barEv,_ZThn8_N7ee740513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee740513fooEv,_ZTv0_n12_N7ee740513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee740513fooEv,_ZThn24_N7ee740513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74051[0]),
+ (VTBL_ENTRY)&_ZN7ee740513fooEv,
+ (VTBL_ENTRY)&_ZN7ee740513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740513barEv,_ZTv0_n16_N7ee740513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740513fooEv,_ZTv0_n12_N7ee740513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74051[];
+extern void _ZN6dd40513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4051__7ee74051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN6dd40513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd4051__7ee74051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd4051__7ee74051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd4051__7ee74051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd4051__7ee74051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4051__7ee74051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74051[] = {
+ {&(_ZTV7ee74051[4]), 4,15},
+ {&(_ZTV7ee74051[10]), 10,15},
+ {&(_ZTV7ee74051[14]), 14,15},
+ {&(_tg__ZTV6dd4051__7ee74051[3]), 3,4},
+ {&(_tg__ZTV5cc0516dd4051__7ee74051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd4051__7ee74051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd4051__7ee74051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd4051__7ee74051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4051__7ee74051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74051[];
+extern VTBL_ENTRY _ZTV7ee74051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74051[];
+static VTBL_ENTRY alt_thunk_names459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740513fooEv,_ZTv0_n12_N7ee740513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee740513fooEv,_ZThn24_N7ee740513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740513barEv,_ZTv0_n16_N7ee740513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740513barEv,_ZThn8_N7ee740513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74051 = { "ee74051", // class name
+ bases_ee74051, 4,
+ &(vtc_ee74051[0]), // expected_vtbl_contents
+ &(vtt_ee74051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5051 : virtual cc051 {
+ int d;
+ virtual void bar(); // _ZN6dd50513barEv
+ ~dd5051(); // tgen
+ dd5051(); // tgen
+};
+//SIG(-1 dd5051) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5051 ::bar(){vfunc_called(this, "_ZN6dd50513barEv");}
+dd5051 ::~dd5051(){ note_dtor("dd5051", this);} // tgen
+dd5051 ::dd5051(){ note_ctor("dd5051", this);} // tgen
+
+static void Test_dd5051()
+{
+ extern Class_Descriptor cd_dd5051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5051, buf);
+ dd5051 *dp, &lv = *(dp=new (buf) dd5051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,20), "dd5051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,8), "dd5051");
+ check_base_class_offset(lv, (cc051*), ABISELECT(16,8), "dd5051");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5051.d");
+ test_class_info(&lv, &cd_dd5051);
+ dp->~dd5051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5051(Test_dd5051, "dd5051", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5051C1Ev();
+extern void _ZN6dd5051D1Ev();
+Name_Map name_map_dd5051[] = {
+ NSPAIR(_ZN6dd5051C1Ev),
+ NSPAIR(_ZN6dd5051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd5051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd5051[];
+extern void _ZN6dd50513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd5051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd5051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd5051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5051[] = {
+ {&(_ZTV6dd5051[4]), 4,14},
+ {&(_ZTV6dd5051[9]), 9,14},
+ {&(_ZTV6dd5051[13]), 13,14},
+ {&(_tg__ZTV5cc051__6dd5051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd5051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd5051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd5051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static VTBL_ENTRY alt_thunk_names460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5051 = { "dd5051", // class name
+ bases_dd5051, 3,
+ &(vtc_dd5051[0]), // expected_vtbl_contents
+ &(vtt_dd5051[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5051),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names460,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05051 : dd5051 {
+ int e;
+ ~ee05051(); // tgen
+ ee05051(); // tgen
+};
+//SIG(1 ee05051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05051 ::~ee05051(){ note_dtor("ee05051", this);} // tgen
+ee05051 ::ee05051(){ note_ctor("ee05051", this);} // tgen
+
+static void Test_ee05051()
+{
+ extern Class_Descriptor cd_ee05051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05051, buf);
+ ee05051 *dp, &lv = *(dp=new (buf) ee05051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee05051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee05051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(16,12), "ee05051");
+ check_base_class_offset(lv, (dd5051*), 0, "ee05051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05051.e");
+ test_class_info(&lv, &cd_ee05051);
+ dp->~ee05051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05051(Test_ee05051, "ee05051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05051C1Ev();
+extern void _ZN7ee05051D1Ev();
+Name_Map name_map_ee05051[] = {
+ NSPAIR(_ZN7ee05051C1Ev),
+ NSPAIR(_ZN7ee05051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee05051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05051[];
+extern void _ZN6dd50513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee05051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee05051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee05051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee05051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee05051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee05051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee05051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05051[] = {
+ {&(_ZTV7ee05051[4]), 4,14},
+ {&(_tg__ZTV6dd5051__7ee05051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee05051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee05051[3]), 3,4},
+ {&(_ZTV7ee05051[9]), 9,14},
+ {&(_ZTV7ee05051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee05051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee05051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee05051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee05051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05051[];
+extern VTBL_ENTRY _ZTV7ee05051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05051[];
+static VTBL_ENTRY alt_thunk_names461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05051 = { "ee05051", // class name
+ bases_ee05051, 4,
+ &(vtc_ee05051[0]), // expected_vtbl_contents
+ &(vtt_ee05051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names461,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15051 : virtual dd5051 {
+ int e;
+ ~ee15051(); // tgen
+ ee15051(); // tgen
+};
+//SIG(1 ee15051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15051 ::~ee15051(){ note_dtor("ee15051", this);} // tgen
+ee15051 ::ee15051(){ note_ctor("ee15051", this);} // tgen
+
+static void Test_ee15051()
+{
+ extern Class_Descriptor cd_ee15051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15051, buf);
+ ee15051 *dp, &lv = *(dp=new (buf) ee15051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee15051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee15051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(32,16), "ee15051");
+ check_base_class_offset(lv, (dd5051*), ABISELECT(16,8), "ee15051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15051.e");
+ test_class_info(&lv, &cd_ee15051);
+ dp->~ee15051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15051(Test_ee15051, "ee15051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15051C1Ev();
+extern void _ZN7ee15051D1Ev();
+Name_Map name_map_ee15051[] = {
+ NSPAIR(_ZN7ee15051C1Ev),
+ NSPAIR(_ZN7ee15051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee15051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15051[];
+extern void _ZN6dd50513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15051[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee15051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee15051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee15051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee15051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee15051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee15051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee15051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15051[] = {
+ {&(_ZTV7ee15051[5]), 5,20},
+ {&(_ZTV7ee15051[10]), 10,20},
+ {&(_ZTV7ee15051[15]), 15,20},
+ {&(_ZTV7ee15051[19]), 19,20},
+ {&(_tg__ZTV6dd5051__7ee15051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee15051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee15051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee15051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee15051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee15051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee15051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15051[];
+extern VTBL_ENTRY _ZTV7ee15051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15051[];
+static VTBL_ENTRY alt_thunk_names462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15051 = { "ee15051", // class name
+ bases_ee15051, 4,
+ &(vtc_ee15051[0]), // expected_vtbl_contents
+ &(vtt_ee15051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15051),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names462,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25051 : dd5051 {
+ int e;
+ virtual void foo(); // _ZN7ee250513fooEv
+ ~ee25051(); // tgen
+ ee25051(); // tgen
+};
+//SIG(1 ee25051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25051 ::foo(){vfunc_called(this, "_ZN7ee250513fooEv");}
+ee25051 ::~ee25051(){ note_dtor("ee25051", this);} // tgen
+ee25051 ::ee25051(){ note_ctor("ee25051", this);} // tgen
+
+static void Test_ee25051()
+{
+ extern Class_Descriptor cd_ee25051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25051, buf);
+ ee25051 *dp, &lv = *(dp=new (buf) ee25051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee25051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee25051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(16,12), "ee25051");
+ check_base_class_offset(lv, (dd5051*), 0, "ee25051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25051.e");
+ test_class_info(&lv, &cd_ee25051);
+ dp->~ee25051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25051(Test_ee25051, "ee25051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25051C1Ev();
+extern void _ZN7ee25051D1Ev();
+Name_Map name_map_ee25051[] = {
+ NSPAIR(_ZN7ee25051C1Ev),
+ NSPAIR(_ZN7ee25051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee25051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25051[];
+extern void _ZN6dd50513barEv();
+extern void _ZN7ee250513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee250513fooEv,_ZTv0_n12_N7ee250513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee250513fooEv,_ZThn24_N7ee250513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+ (VTBL_ENTRY)&_ZN7ee250513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250513fooEv,_ZTv0_n12_N7ee250513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee25051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee25051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee25051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee25051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee25051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee25051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee25051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25051[] = {
+ {&(_ZTV7ee25051[4]), 4,15},
+ {&(_tg__ZTV6dd5051__7ee25051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee25051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee25051[3]), 3,4},
+ {&(_ZTV7ee25051[10]), 10,15},
+ {&(_ZTV7ee25051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee25051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee25051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee25051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee25051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25051[];
+extern VTBL_ENTRY _ZTV7ee25051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25051[];
+static VTBL_ENTRY alt_thunk_names463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250513fooEv,_ZTv0_n12_N7ee250513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee250513fooEv,_ZThn24_N7ee250513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25051 = { "ee25051", // class name
+ bases_ee25051, 4,
+ &(vtc_ee25051[0]), // expected_vtbl_contents
+ &(vtt_ee25051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names463,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35051 : virtual dd5051 {
+ int e;
+ virtual void foo(); // _ZN7ee350513fooEv
+ ~ee35051(); // tgen
+ ee35051(); // tgen
+};
+//SIG(1 ee35051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35051 ::foo(){vfunc_called(this, "_ZN7ee350513fooEv");}
+ee35051 ::~ee35051(){ note_dtor("ee35051", this);} // tgen
+ee35051 ::ee35051(){ note_ctor("ee35051", this);} // tgen
+
+static void Test_ee35051()
+{
+ extern Class_Descriptor cd_ee35051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35051, buf);
+ ee35051 *dp, &lv = *(dp=new (buf) ee35051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee35051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee35051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(32,16), "ee35051");
+ check_base_class_offset(lv, (dd5051*), ABISELECT(16,8), "ee35051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35051.e");
+ test_class_info(&lv, &cd_ee35051);
+ dp->~ee35051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35051(Test_ee35051, "ee35051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35051C1Ev();
+extern void _ZN7ee35051D1Ev();
+Name_Map name_map_ee35051[] = {
+ NSPAIR(_ZN7ee35051C1Ev),
+ NSPAIR(_ZN7ee35051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee35051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35051[];
+extern void _ZN7ee350513fooEv();
+extern void _ZN6dd50513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee350513fooEv,_ZTv0_n12_N7ee350513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee350513fooEv,_ZThn28_N7ee350513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35051[0]),
+ (VTBL_ENTRY)&_ZN7ee350513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350513fooEv,_ZTv0_n12_N7ee350513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee35051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee35051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee35051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee35051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee35051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee35051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee35051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35051[] = {
+ {&(_ZTV7ee35051[5]), 5,21},
+ {&(_ZTV7ee35051[11]), 11,21},
+ {&(_ZTV7ee35051[16]), 16,21},
+ {&(_ZTV7ee35051[20]), 20,21},
+ {&(_tg__ZTV6dd5051__7ee35051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee35051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee35051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee35051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee35051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee35051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee35051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35051[];
+extern VTBL_ENTRY _ZTV7ee35051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35051[];
+static VTBL_ENTRY alt_thunk_names464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350513fooEv,_ZTv0_n12_N7ee350513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee350513fooEv,_ZThn28_N7ee350513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35051 = { "ee35051", // class name
+ bases_ee35051, 4,
+ &(vtc_ee35051[0]), // expected_vtbl_contents
+ &(vtt_ee35051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35051),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names464,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45051 : dd5051 {
+ int e;
+ virtual void bar(); // _ZN7ee450513barEv
+ ~ee45051(); // tgen
+ ee45051(); // tgen
+};
+//SIG(1 ee45051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45051 ::bar(){vfunc_called(this, "_ZN7ee450513barEv");}
+ee45051 ::~ee45051(){ note_dtor("ee45051", this);} // tgen
+ee45051 ::ee45051(){ note_ctor("ee45051", this);} // tgen
+
+static void Test_ee45051()
+{
+ extern Class_Descriptor cd_ee45051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45051, buf);
+ ee45051 *dp, &lv = *(dp=new (buf) ee45051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee45051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee45051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(16,12), "ee45051");
+ check_base_class_offset(lv, (dd5051*), 0, "ee45051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45051.e");
+ test_class_info(&lv, &cd_ee45051);
+ dp->~ee45051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45051(Test_ee45051, "ee45051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45051C1Ev();
+extern void _ZN7ee45051D1Ev();
+Name_Map name_map_ee45051[] = {
+ NSPAIR(_ZN7ee45051C1Ev),
+ NSPAIR(_ZN7ee45051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee45051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45051[];
+extern void _ZN7ee450513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450513barEv,_ZTv0_n16_N7ee450513barEv)();
+extern void ABISELECT(_ZThn16_N7ee450513barEv,_ZThn12_N7ee450513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45051[0]),
+ (VTBL_ENTRY)&_ZN7ee450513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450513barEv,_ZTv0_n16_N7ee450513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee45051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee45051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee45051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee45051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee45051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee45051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee45051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45051[] = {
+ {&(_ZTV7ee45051[4]), 4,14},
+ {&(_tg__ZTV6dd5051__7ee45051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee45051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee45051[3]), 3,4},
+ {&(_ZTV7ee45051[9]), 9,14},
+ {&(_ZTV7ee45051[13]), 13,14},
+ {&(_tg__ZTV5cc051__7ee45051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee45051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee45051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee45051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45051[];
+extern VTBL_ENTRY _ZTV7ee45051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45051[];
+static VTBL_ENTRY alt_thunk_names465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450513barEv,_ZTv0_n16_N7ee450513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450513barEv,_ZThn12_N7ee450513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45051 = { "ee45051", // class name
+ bases_ee45051, 4,
+ &(vtc_ee45051[0]), // expected_vtbl_contents
+ &(vtt_ee45051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45051),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names465,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55051 : virtual dd5051 {
+ int e;
+ virtual void bar(); // _ZN7ee550513barEv
+ ~ee55051(); // tgen
+ ee55051(); // tgen
+};
+//SIG(1 ee55051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55051 ::bar(){vfunc_called(this, "_ZN7ee550513barEv");}
+ee55051 ::~ee55051(){ note_dtor("ee55051", this);} // tgen
+ee55051 ::ee55051(){ note_ctor("ee55051", this);} // tgen
+
+static void Test_ee55051()
+{
+ extern Class_Descriptor cd_ee55051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55051, buf);
+ ee55051 *dp, &lv = *(dp=new (buf) ee55051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee55051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee55051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(32,16), "ee55051");
+ check_base_class_offset(lv, (dd5051*), ABISELECT(16,8), "ee55051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55051.e");
+ test_class_info(&lv, &cd_ee55051);
+ dp->~ee55051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55051(Test_ee55051, "ee55051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55051C1Ev();
+extern void _ZN7ee55051D1Ev();
+Name_Map name_map_ee55051[] = {
+ NSPAIR(_ZN7ee55051C1Ev),
+ NSPAIR(_ZN7ee55051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee55051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55051[];
+extern void _ZN7ee550513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee550513barEv,_ZTv0_n20_N7ee550513barEv)();
+extern void ABISELECT(_ZThn16_N7ee550513barEv,_ZThn8_N7ee550513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee550513barEv,_ZTv0_n16_N7ee550513barEv)();
+extern void ABISELECT(_ZThn32_N7ee550513barEv,_ZThn16_N7ee550513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55051[0]),
+ (VTBL_ENTRY)&_ZN7ee550513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee550513barEv,_ZTv0_n20_N7ee550513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550513barEv,_ZTv0_n16_N7ee550513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee55051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee55051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee55051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee55051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee55051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee55051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee55051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55051[] = {
+ {&(_ZTV7ee55051[5]), 5,21},
+ {&(_ZTV7ee55051[11]), 11,21},
+ {&(_ZTV7ee55051[16]), 16,21},
+ {&(_ZTV7ee55051[20]), 20,21},
+ {&(_tg__ZTV6dd5051__7ee55051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee55051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee55051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee55051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee55051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee55051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee55051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55051[];
+extern VTBL_ENTRY _ZTV7ee55051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55051[];
+static VTBL_ENTRY alt_thunk_names466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550513barEv,_ZTv0_n16_N7ee550513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550513barEv,_ZThn16_N7ee550513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee550513barEv,_ZTv0_n20_N7ee550513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550513barEv,_ZThn8_N7ee550513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55051 = { "ee55051", // class name
+ bases_ee55051, 4,
+ &(vtc_ee55051[0]), // expected_vtbl_contents
+ &(vtt_ee55051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55051),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names466,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65051 : dd5051 {
+ int e;
+ virtual void foo(); // _ZN7ee650513fooEv
+ virtual void bar(); // _ZN7ee650513barEv
+ ~ee65051(); // tgen
+ ee65051(); // tgen
+};
+//SIG(1 ee65051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65051 ::foo(){vfunc_called(this, "_ZN7ee650513fooEv");}
+void ee65051 ::bar(){vfunc_called(this, "_ZN7ee650513barEv");}
+ee65051 ::~ee65051(){ note_dtor("ee65051", this);} // tgen
+ee65051 ::ee65051(){ note_ctor("ee65051", this);} // tgen
+
+static void Test_ee65051()
+{
+ extern Class_Descriptor cd_ee65051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65051, buf);
+ ee65051 *dp, &lv = *(dp=new (buf) ee65051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee65051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee65051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(16,12), "ee65051");
+ check_base_class_offset(lv, (dd5051*), 0, "ee65051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65051.e");
+ test_class_info(&lv, &cd_ee65051);
+ dp->~ee65051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65051(Test_ee65051, "ee65051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65051C1Ev();
+extern void _ZN7ee65051D1Ev();
+Name_Map name_map_ee65051[] = {
+ NSPAIR(_ZN7ee65051C1Ev),
+ NSPAIR(_ZN7ee65051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee65051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65051[];
+extern void _ZN7ee650513barEv();
+extern void _ZN7ee650513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee650513barEv,_ZTv0_n16_N7ee650513barEv)();
+extern void ABISELECT(_ZThn16_N7ee650513barEv,_ZThn12_N7ee650513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee650513fooEv,_ZTv0_n12_N7ee650513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee650513fooEv,_ZThn24_N7ee650513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65051[0]),
+ (VTBL_ENTRY)&_ZN7ee650513barEv,
+ (VTBL_ENTRY)&_ZN7ee650513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650513barEv,_ZTv0_n16_N7ee650513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650513fooEv,_ZTv0_n12_N7ee650513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee65051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee65051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee65051[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee65051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee65051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee65051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee65051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65051[] = {
+ {&(_ZTV7ee65051[4]), 4,15},
+ {&(_tg__ZTV6dd5051__7ee65051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee65051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee65051[3]), 3,4},
+ {&(_ZTV7ee65051[10]), 10,15},
+ {&(_ZTV7ee65051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee65051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee65051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee65051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee65051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65051[];
+extern VTBL_ENTRY _ZTV7ee65051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65051[];
+static VTBL_ENTRY alt_thunk_names467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn12_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650513fooEv,_ZTv0_n12_N7ee650513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee650513fooEv,_ZThn24_N7ee650513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650513barEv,_ZTv0_n16_N7ee650513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650513barEv,_ZThn12_N7ee650513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65051 = { "ee65051", // class name
+ bases_ee65051, 4,
+ &(vtc_ee65051[0]), // expected_vtbl_contents
+ &(vtt_ee65051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names467,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75051 : virtual dd5051 {
+ int e;
+ virtual void foo(); // _ZN7ee750513fooEv
+ virtual void bar(); // _ZN7ee750513barEv
+ ~ee75051(); // tgen
+ ee75051(); // tgen
+};
+//SIG(1 ee75051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75051 ::foo(){vfunc_called(this, "_ZN7ee750513fooEv");}
+void ee75051 ::bar(){vfunc_called(this, "_ZN7ee750513barEv");}
+ee75051 ::~ee75051(){ note_dtor("ee75051", this);} // tgen
+ee75051 ::ee75051(){ note_ctor("ee75051", this);} // tgen
+
+static void Test_ee75051()
+{
+ extern Class_Descriptor cd_ee75051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75051, buf);
+ ee75051 *dp, &lv = *(dp=new (buf) ee75051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee75051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee75051");
+ check_base_class_offset(lv, (cc051*)(dd5051*), ABISELECT(32,16), "ee75051");
+ check_base_class_offset(lv, (dd5051*), ABISELECT(16,8), "ee75051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75051.e");
+ test_class_info(&lv, &cd_ee75051);
+ dp->~ee75051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75051(Test_ee75051, "ee75051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75051C1Ev();
+extern void _ZN7ee75051D1Ev();
+Name_Map name_map_ee75051[] = {
+ NSPAIR(_ZN7ee75051C1Ev),
+ NSPAIR(_ZN7ee75051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd5051;
+extern VTBL_ENTRY _ZTI6dd5051[];
+extern VTBL_ENTRY _ZTV6dd5051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5051[];
+static Base_Class bases_ee75051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5051, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75051[];
+extern void _ZN7ee750513fooEv();
+extern void _ZN7ee750513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee750513barEv,_ZTv0_n20_N7ee750513barEv)();
+extern void ABISELECT(_ZThn16_N7ee750513barEv,_ZThn8_N7ee750513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750513barEv,_ZTv0_n16_N7ee750513barEv)();
+extern void ABISELECT(_ZThn32_N7ee750513barEv,_ZThn16_N7ee750513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750513fooEv,_ZTv0_n12_N7ee750513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee750513fooEv,_ZThn28_N7ee750513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75051[0]),
+ (VTBL_ENTRY)&_ZN7ee750513fooEv,
+ (VTBL_ENTRY)&_ZN7ee750513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee750513barEv,_ZTv0_n20_N7ee750513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750513barEv,_ZTv0_n16_N7ee750513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750513fooEv,_ZTv0_n12_N7ee750513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75051[];
+extern void _ZN6dd50513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5051__7ee75051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN6dd50513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv)();
+extern void ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd5051__7ee75051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5051__7ee75051[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee75051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee75051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee75051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee75051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75051[] = {
+ {&(_ZTV7ee75051[5]), 5,22},
+ {&(_ZTV7ee75051[12]), 12,22},
+ {&(_ZTV7ee75051[17]), 17,22},
+ {&(_ZTV7ee75051[21]), 21,22},
+ {&(_tg__ZTV6dd5051__7ee75051[4]), 4,5},
+ {&(_tg__ZTV5cc051__6dd5051__7ee75051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5051__7ee75051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee75051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee75051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee75051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee75051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75051[];
+extern VTBL_ENTRY _ZTV7ee75051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75051[];
+static VTBL_ENTRY alt_thunk_names468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50513barEv,_ZTv0_n16_N6dd50513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50513barEv,_ZThn8_N6dd50513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750513fooEv,_ZTv0_n12_N7ee750513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee750513fooEv,_ZThn28_N7ee750513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750513barEv,_ZTv0_n16_N7ee750513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750513barEv,_ZThn16_N7ee750513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee750513barEv,_ZTv0_n20_N7ee750513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750513barEv,_ZThn8_N7ee750513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75051 = { "ee75051", // class name
+ bases_ee75051, 4,
+ &(vtc_ee75051[0]), // expected_vtbl_contents
+ &(vtt_ee75051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75051),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names468,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6051 : cc051 {
+ int d;
+ virtual void bar(); // _ZN6dd60513barEv
+ virtual void foo(); // _ZN6dd60513fooEv
+ ~dd6051(); // tgen
+ dd6051(); // tgen
+};
+//SIG(-1 dd6051) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6051 ::bar(){vfunc_called(this, "_ZN6dd60513barEv");}
+void dd6051 ::foo(){vfunc_called(this, "_ZN6dd60513fooEv");}
+dd6051 ::~dd6051(){ note_dtor("dd6051", this);} // tgen
+dd6051 ::dd6051(){ note_ctor("dd6051", this);} // tgen
+
+static void Test_dd6051()
+{
+ extern Class_Descriptor cd_dd6051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6051, buf);
+ dd6051 *dp, &lv = *(dp=new (buf) dd6051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(24,16), "dd6051");
+ check_base_class_offset(lv, (bb51*)(cc051*), 0, "dd6051");
+ check_base_class_offset(lv, (cc051*), 0, "dd6051");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6051.d");
+ test_class_info(&lv, &cd_dd6051);
+ dp->~dd6051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6051(Test_dd6051, "dd6051", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6051C1Ev();
+extern void _ZN6dd6051D1Ev();
+Name_Map name_map_dd6051[] = {
+ NSPAIR(_ZN6dd6051C1Ev),
+ NSPAIR(_ZN6dd6051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd6051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd6051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd6051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd6051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd6051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6051[] = {
+ {&(_ZTV6dd6051[3]), 3,9},
+ {&(_tg__ZTV5cc051__6dd6051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd6051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd6051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd6051[3]), 3,4},
+ {&(_ZTV6dd6051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static VTBL_ENTRY alt_thunk_names469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6051 = { "dd6051", // class name
+ bases_dd6051, 3,
+ &(vtc_dd6051[0]), // expected_vtbl_contents
+ &(vtt_dd6051[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6051),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names469,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06051 : dd6051 {
+ int e;
+ ~ee06051(); // tgen
+ ee06051(); // tgen
+};
+//SIG(1 ee06051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06051 ::~ee06051(){ note_dtor("ee06051", this);} // tgen
+ee06051 ::ee06051(){ note_ctor("ee06051", this);} // tgen
+
+static void Test_ee06051()
+{
+ extern Class_Descriptor cd_ee06051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06051, buf);
+ ee06051 *dp, &lv = *(dp=new (buf) ee06051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(24,20), "ee06051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), 0, "ee06051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), 0, "ee06051");
+ check_base_class_offset(lv, (dd6051*), 0, "ee06051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06051.e");
+ test_class_info(&lv, &cd_ee06051);
+ dp->~ee06051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06051(Test_ee06051, "ee06051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06051C1Ev();
+extern void _ZN7ee06051D1Ev();
+Name_Map name_map_ee06051[] = {
+ NSPAIR(_ZN7ee06051C1Ev),
+ NSPAIR(_ZN7ee06051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee06051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee06051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee06051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee06051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee06051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee06051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee06051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee06051[] = {
+ {&(_ZTV7ee06051[3]), 3,9},
+ {&(_tg__ZTV6dd6051__7ee06051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee06051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee06051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee06051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee06051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee06051[3]), 3,4},
+ {&(_ZTV7ee06051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06051[];
+extern VTBL_ENTRY _ZTV7ee06051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06051[];
+static VTBL_ENTRY alt_thunk_names470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06051 = { "ee06051", // class name
+ bases_ee06051, 4,
+ &(vtc_ee06051[0]), // expected_vtbl_contents
+ &(vtt_ee06051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names470,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16051 : virtual dd6051 {
+ int e;
+ ~ee16051(); // tgen
+ ee16051(); // tgen
+};
+//SIG(1 ee16051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16051 ::~ee16051(){ note_dtor("ee16051", this);} // tgen
+ee16051 ::ee16051(){ note_ctor("ee16051", this);} // tgen
+
+static void Test_ee16051()
+{
+ extern Class_Descriptor cd_ee16051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16051, buf);
+ ee16051 *dp, &lv = *(dp=new (buf) ee16051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(40,24), "ee16051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), ABISELECT(16,8), "ee16051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), ABISELECT(16,8), "ee16051");
+ check_base_class_offset(lv, (dd6051*), ABISELECT(16,8), "ee16051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16051.e");
+ test_class_info(&lv, &cd_ee16051);
+ dp->~ee16051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16051(Test_ee16051, "ee16051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16051C1Ev();
+extern void _ZN7ee16051D1Ev();
+Name_Map name_map_ee16051[] = {
+ NSPAIR(_ZN7ee16051C1Ev),
+ NSPAIR(_ZN7ee16051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee16051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16051[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee16051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee16051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee16051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee16051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee16051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee16051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee16051[] = {
+ {&(_ZTV7ee16051[4]), 4,15},
+ {&(_ZTV7ee16051[9]), 9,15},
+ {&(_ZTV7ee16051[14]), 14,15},
+ {&(_tg__ZTV6dd6051__7ee16051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee16051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee16051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee16051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee16051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee16051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16051[];
+extern VTBL_ENTRY _ZTV7ee16051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16051[];
+static VTBL_ENTRY alt_thunk_names471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16051 = { "ee16051", // class name
+ bases_ee16051, 4,
+ &(vtc_ee16051[0]), // expected_vtbl_contents
+ &(vtt_ee16051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26051 : dd6051 {
+ int e;
+ virtual void foo(); // _ZN7ee260513fooEv
+ ~ee26051(); // tgen
+ ee26051(); // tgen
+};
+//SIG(1 ee26051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26051 ::foo(){vfunc_called(this, "_ZN7ee260513fooEv");}
+ee26051 ::~ee26051(){ note_dtor("ee26051", this);} // tgen
+ee26051 ::ee26051(){ note_ctor("ee26051", this);} // tgen
+
+static void Test_ee26051()
+{
+ extern Class_Descriptor cd_ee26051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26051, buf);
+ ee26051 *dp, &lv = *(dp=new (buf) ee26051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(24,20), "ee26051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), 0, "ee26051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), 0, "ee26051");
+ check_base_class_offset(lv, (dd6051*), 0, "ee26051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26051.e");
+ test_class_info(&lv, &cd_ee26051);
+ dp->~ee26051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26051(Test_ee26051, "ee26051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26051C1Ev();
+extern void _ZN7ee26051D1Ev();
+Name_Map name_map_ee26051[] = {
+ NSPAIR(_ZN7ee26051C1Ev),
+ NSPAIR(_ZN7ee26051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee26051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN7ee260513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee260513fooEv,_ZTv0_n12_N7ee260513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee260513fooEv,_ZThn20_N7ee260513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN7ee260513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee260513fooEv,_ZTv0_n12_N7ee260513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee26051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee26051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee26051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee26051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee26051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee26051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee26051[] = {
+ {&(_ZTV7ee26051[3]), 3,9},
+ {&(_tg__ZTV6dd6051__7ee26051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee26051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee26051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee26051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee26051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee26051[3]), 3,4},
+ {&(_ZTV7ee26051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26051[];
+extern VTBL_ENTRY _ZTV7ee26051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26051[];
+static VTBL_ENTRY alt_thunk_names472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee260513fooEv,_ZTv0_n12_N7ee260513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee260513fooEv,_ZThn20_N7ee260513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26051 = { "ee26051", // class name
+ bases_ee26051, 4,
+ &(vtc_ee26051[0]), // expected_vtbl_contents
+ &(vtt_ee26051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names472,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36051 : virtual dd6051 {
+ int e;
+ virtual void foo(); // _ZN7ee360513fooEv
+ ~ee36051(); // tgen
+ ee36051(); // tgen
+};
+//SIG(1 ee36051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36051 ::foo(){vfunc_called(this, "_ZN7ee360513fooEv");}
+ee36051 ::~ee36051(){ note_dtor("ee36051", this);} // tgen
+ee36051 ::ee36051(){ note_ctor("ee36051", this);} // tgen
+
+static void Test_ee36051()
+{
+ extern Class_Descriptor cd_ee36051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36051, buf);
+ ee36051 *dp, &lv = *(dp=new (buf) ee36051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(40,24), "ee36051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), ABISELECT(16,8), "ee36051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), ABISELECT(16,8), "ee36051");
+ check_base_class_offset(lv, (dd6051*), ABISELECT(16,8), "ee36051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36051.e");
+ test_class_info(&lv, &cd_ee36051);
+ dp->~ee36051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36051(Test_ee36051, "ee36051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36051C1Ev();
+extern void _ZN7ee36051D1Ev();
+Name_Map name_map_ee36051[] = {
+ NSPAIR(_ZN7ee36051C1Ev),
+ NSPAIR(_ZN7ee36051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee36051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36051[];
+extern void _ZN7ee360513fooEv();
+extern void _ZN6dd60513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee360513fooEv,_ZTv0_n20_N7ee360513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360513fooEv,_ZThn8_N7ee360513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee360513fooEv,_ZTv0_n12_N7ee360513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee360513fooEv,_ZThn24_N7ee360513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36051[0]),
+ (VTBL_ENTRY)&_ZN7ee360513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee360513fooEv,_ZTv0_n20_N7ee360513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360513fooEv,_ZTv0_n12_N7ee360513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee36051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee36051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee36051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee36051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee36051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee36051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee36051[] = {
+ {&(_ZTV7ee36051[4]), 4,16},
+ {&(_ZTV7ee36051[10]), 10,16},
+ {&(_ZTV7ee36051[15]), 15,16},
+ {&(_tg__ZTV6dd6051__7ee36051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee36051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee36051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee36051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee36051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee36051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36051[];
+extern VTBL_ENTRY _ZTV7ee36051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36051[];
+static VTBL_ENTRY alt_thunk_names473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360513fooEv,_ZTv0_n12_N7ee360513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee360513fooEv,_ZThn24_N7ee360513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee360513fooEv,_ZTv0_n20_N7ee360513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360513fooEv,_ZThn8_N7ee360513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36051 = { "ee36051", // class name
+ bases_ee36051, 4,
+ &(vtc_ee36051[0]), // expected_vtbl_contents
+ &(vtt_ee36051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36051),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names473,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46051 : dd6051 {
+ int e;
+ virtual void bar(); // _ZN7ee460513barEv
+ ~ee46051(); // tgen
+ ee46051(); // tgen
+};
+//SIG(1 ee46051) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46051 ::bar(){vfunc_called(this, "_ZN7ee460513barEv");}
+ee46051 ::~ee46051(){ note_dtor("ee46051", this);} // tgen
+ee46051 ::ee46051(){ note_ctor("ee46051", this);} // tgen
+
+static void Test_ee46051()
+{
+ extern Class_Descriptor cd_ee46051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46051, buf);
+ ee46051 *dp, &lv = *(dp=new (buf) ee46051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(24,20), "ee46051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), 0, "ee46051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), 0, "ee46051");
+ check_base_class_offset(lv, (dd6051*), 0, "ee46051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46051.e");
+ test_class_info(&lv, &cd_ee46051);
+ dp->~ee46051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46051(Test_ee46051, "ee46051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46051C1Ev();
+extern void _ZN7ee46051D1Ev();
+Name_Map name_map_ee46051[] = {
+ NSPAIR(_ZN7ee46051C1Ev),
+ NSPAIR(_ZN7ee46051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee46051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46051[];
+extern void _ZN7ee460513barEv();
+extern void _ZN6dd60513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46051[0]),
+ (VTBL_ENTRY)&_ZN7ee460513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee46051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee46051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee46051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee46051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee46051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee46051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee46051[] = {
+ {&(_ZTV7ee46051[3]), 3,9},
+ {&(_tg__ZTV6dd6051__7ee46051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee46051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee46051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee46051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee46051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee46051[3]), 3,4},
+ {&(_ZTV7ee46051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46051[];
+extern VTBL_ENTRY _ZTV7ee46051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46051[];
+static VTBL_ENTRY alt_thunk_names474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46051 = { "ee46051", // class name
+ bases_ee46051, 4,
+ &(vtc_ee46051[0]), // expected_vtbl_contents
+ &(vtt_ee46051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names474,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56051 : virtual dd6051 {
+ int e;
+ virtual void bar(); // _ZN7ee560513barEv
+ ~ee56051(); // tgen
+ ee56051(); // tgen
+};
+//SIG(1 ee56051) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56051 ::bar(){vfunc_called(this, "_ZN7ee560513barEv");}
+ee56051 ::~ee56051(){ note_dtor("ee56051", this);} // tgen
+ee56051 ::ee56051(){ note_ctor("ee56051", this);} // tgen
+
+static void Test_ee56051()
+{
+ extern Class_Descriptor cd_ee56051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56051, buf);
+ ee56051 *dp, &lv = *(dp=new (buf) ee56051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(40,24), "ee56051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), ABISELECT(16,8), "ee56051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), ABISELECT(16,8), "ee56051");
+ check_base_class_offset(lv, (dd6051*), ABISELECT(16,8), "ee56051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56051.e");
+ test_class_info(&lv, &cd_ee56051);
+ dp->~ee56051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56051(Test_ee56051, "ee56051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56051C1Ev();
+extern void _ZN7ee56051D1Ev();
+Name_Map name_map_ee56051[] = {
+ NSPAIR(_ZN7ee56051C1Ev),
+ NSPAIR(_ZN7ee56051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee56051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56051[];
+extern void _ZN7ee560513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560513barEv,_ZTv0_n16_N7ee560513barEv)();
+extern void ABISELECT(_ZThn16_N7ee560513barEv,_ZThn8_N7ee560513barEv)() __attribute__((weak));
+extern void _ZN6dd60513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56051[0]),
+ (VTBL_ENTRY)&_ZN7ee560513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560513barEv,_ZTv0_n16_N7ee560513barEv),
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee56051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee56051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee56051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee56051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee56051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee56051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee56051[] = {
+ {&(_ZTV7ee56051[4]), 4,16},
+ {&(_ZTV7ee56051[10]), 10,16},
+ {&(_ZTV7ee56051[15]), 15,16},
+ {&(_tg__ZTV6dd6051__7ee56051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee56051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee56051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee56051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee56051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee56051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56051[];
+extern VTBL_ENTRY _ZTV7ee56051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56051[];
+static VTBL_ENTRY alt_thunk_names475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560513barEv,_ZTv0_n16_N7ee560513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560513barEv,_ZThn8_N7ee560513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56051 = { "ee56051", // class name
+ bases_ee56051, 4,
+ &(vtc_ee56051[0]), // expected_vtbl_contents
+ &(vtt_ee56051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56051),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names475,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66051 : dd6051 {
+ int e;
+ virtual void foo(); // _ZN7ee660513fooEv
+ virtual void bar(); // _ZN7ee660513barEv
+ ~ee66051(); // tgen
+ ee66051(); // tgen
+};
+//SIG(1 ee66051) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66051 ::foo(){vfunc_called(this, "_ZN7ee660513fooEv");}
+void ee66051 ::bar(){vfunc_called(this, "_ZN7ee660513barEv");}
+ee66051 ::~ee66051(){ note_dtor("ee66051", this);} // tgen
+ee66051 ::ee66051(){ note_ctor("ee66051", this);} // tgen
+
+static void Test_ee66051()
+{
+ extern Class_Descriptor cd_ee66051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66051, buf);
+ ee66051 *dp, &lv = *(dp=new (buf) ee66051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(24,20), "ee66051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), 0, "ee66051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), 0, "ee66051");
+ check_base_class_offset(lv, (dd6051*), 0, "ee66051");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66051.e");
+ test_class_info(&lv, &cd_ee66051);
+ dp->~ee66051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66051(Test_ee66051, "ee66051", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66051C1Ev();
+extern void _ZN7ee66051D1Ev();
+Name_Map name_map_ee66051[] = {
+ NSPAIR(_ZN7ee66051C1Ev),
+ NSPAIR(_ZN7ee66051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee66051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66051[];
+extern void _ZN7ee660513barEv();
+extern void _ZN7ee660513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee660513fooEv,_ZTv0_n12_N7ee660513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee660513fooEv,_ZThn20_N7ee660513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66051[0]),
+ (VTBL_ENTRY)&_ZN7ee660513barEv,
+ (VTBL_ENTRY)&_ZN7ee660513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee660513fooEv,_ZTv0_n12_N7ee660513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee66051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee66051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee66051[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee66051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee66051[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee66051[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee66051[] = {
+ {&(_ZTV7ee66051[3]), 3,9},
+ {&(_tg__ZTV6dd6051__7ee66051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee66051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee66051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee66051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee66051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee66051[3]), 3,4},
+ {&(_ZTV7ee66051[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66051[];
+extern VTBL_ENTRY _ZTV7ee66051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66051[];
+static VTBL_ENTRY alt_thunk_names476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn20_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee660513fooEv,_ZTv0_n12_N7ee660513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee660513fooEv,_ZThn20_N7ee660513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66051 = { "ee66051", // class name
+ bases_ee66051, 4,
+ &(vtc_ee66051[0]), // expected_vtbl_contents
+ &(vtt_ee66051[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66051),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66051),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names476,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76051 : virtual dd6051 {
+ int e;
+ virtual void foo(); // _ZN7ee760513fooEv
+ virtual void bar(); // _ZN7ee760513barEv
+ ~ee76051(); // tgen
+ ee76051(); // tgen
+};
+//SIG(1 ee76051) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76051 ::foo(){vfunc_called(this, "_ZN7ee760513fooEv");}
+void ee76051 ::bar(){vfunc_called(this, "_ZN7ee760513barEv");}
+ee76051 ::~ee76051(){ note_dtor("ee76051", this);} // tgen
+ee76051 ::ee76051(){ note_ctor("ee76051", this);} // tgen
+
+static void Test_ee76051()
+{
+ extern Class_Descriptor cd_ee76051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76051, buf);
+ ee76051 *dp, &lv = *(dp=new (buf) ee76051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*)(dd6051*), ABISELECT(40,24), "ee76051");
+ check_base_class_offset(lv, (bb51*)(cc051*)(dd6051*), ABISELECT(16,8), "ee76051");
+ check_base_class_offset(lv, (cc051*)(dd6051*), ABISELECT(16,8), "ee76051");
+ check_base_class_offset(lv, (dd6051*), ABISELECT(16,8), "ee76051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76051.e");
+ test_class_info(&lv, &cd_ee76051);
+ dp->~ee76051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76051(Test_ee76051, "ee76051", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76051C1Ev();
+extern void _ZN7ee76051D1Ev();
+Name_Map name_map_ee76051[] = {
+ NSPAIR(_ZN7ee76051C1Ev),
+ NSPAIR(_ZN7ee76051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd6051;
+extern VTBL_ENTRY _ZTI6dd6051[];
+extern VTBL_ENTRY _ZTV6dd6051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6051[];
+static Base_Class bases_ee76051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6051, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76051[];
+extern void _ZN7ee760513fooEv();
+extern void _ZN7ee760513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee760513barEv,_ZTv0_n16_N7ee760513barEv)();
+extern void ABISELECT(_ZThn16_N7ee760513barEv,_ZThn8_N7ee760513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee760513fooEv,_ZTv0_n20_N7ee760513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760513fooEv,_ZThn8_N7ee760513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee760513fooEv,_ZTv0_n12_N7ee760513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee760513fooEv,_ZThn24_N7ee760513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76051[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76051[0]),
+ (VTBL_ENTRY)&_ZN7ee760513fooEv,
+ (VTBL_ENTRY)&_ZN7ee760513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760513barEv,_ZTv0_n16_N7ee760513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee760513fooEv,_ZTv0_n20_N7ee760513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760513fooEv,_ZTv0_n12_N7ee760513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76051[];
+extern void _ZN6dd60513barEv();
+extern void _ZN6dd60513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6051__7ee76051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&_ZN6dd60513barEv,
+ (VTBL_ENTRY)&_ZN6dd60513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc0516dd6051__7ee76051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc0516dd6051__7ee76051[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc0516dd6051__7ee76051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc0516dd6051__7ee76051[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6051__7ee76051[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv),
+};
+static VTT_ENTRY vtt_ee76051[] = {
+ {&(_ZTV7ee76051[4]), 4,17},
+ {&(_ZTV7ee76051[11]), 11,17},
+ {&(_ZTV7ee76051[16]), 16,17},
+ {&(_tg__ZTV6dd6051__7ee76051[3]), 3,5},
+ {&(_tg__ZTV5cc0516dd6051__7ee76051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc0516dd6051__7ee76051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc0516dd6051__7ee76051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc0516dd6051__7ee76051[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6051__7ee76051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76051[];
+extern VTBL_ENTRY _ZTV7ee76051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76051[];
+static VTBL_ENTRY alt_thunk_names477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60513fooEv,_ZTv0_n12_N6dd60513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60513fooEv,_ZThn16_N6dd60513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760513fooEv,_ZTv0_n12_N7ee760513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee760513fooEv,_ZThn24_N7ee760513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee760513fooEv,_ZTv0_n20_N7ee760513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760513fooEv,_ZThn8_N7ee760513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760513barEv,_ZTv0_n16_N7ee760513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760513barEv,_ZThn8_N7ee760513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76051 = { "ee76051", // class name
+ bases_ee76051, 4,
+ &(vtc_ee76051[0]), // expected_vtbl_contents
+ &(vtt_ee76051[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76051),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76051),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names477,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7051 : virtual cc051 {
+ int d;
+ virtual void bar(); // _ZN6dd70513barEv
+ virtual void foo(); // _ZN6dd70513fooEv
+ ~dd7051(); // tgen
+ dd7051(); // tgen
+};
+//SIG(-1 dd7051) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7051 ::bar(){vfunc_called(this, "_ZN6dd70513barEv");}
+void dd7051 ::foo(){vfunc_called(this, "_ZN6dd70513fooEv");}
+dd7051 ::~dd7051(){ note_dtor("dd7051", this);} // tgen
+dd7051 ::dd7051(){ note_ctor("dd7051", this);} // tgen
+
+static void Test_dd7051()
+{
+ extern Class_Descriptor cd_dd7051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7051, buf);
+ dd7051 *dp, &lv = *(dp=new (buf) dd7051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,20), "dd7051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,8), "dd7051");
+ check_base_class_offset(lv, (cc051*), ABISELECT(16,8), "dd7051");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7051.d");
+ test_class_info(&lv, &cd_dd7051);
+ dp->~dd7051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7051(Test_dd7051, "dd7051", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7051C1Ev();
+extern void _ZN6dd7051D1Ev();
+Name_Map name_map_dd7051[] = {
+ NSPAIR(_ZN6dd7051C1Ev),
+ NSPAIR(_ZN6dd7051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+static Base_Class bases_dd7051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__6dd7051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__6dd7051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__6dd7051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7051[] = {
+ {&(_ZTV6dd7051[4]), 4,15},
+ {&(_ZTV6dd7051[10]), 10,15},
+ {&(_ZTV6dd7051[14]), 14,15},
+ {&(_tg__ZTV5cc051__6dd7051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__6dd7051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__6dd7051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__6dd7051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static VTBL_ENTRY alt_thunk_names478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7051 = { "dd7051", // class name
+ bases_dd7051, 3,
+ &(vtc_dd7051[0]), // expected_vtbl_contents
+ &(vtt_dd7051[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7051),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names478,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07051 : dd7051 {
+ int e;
+ ~ee07051(); // tgen
+ ee07051(); // tgen
+};
+//SIG(1 ee07051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07051 ::~ee07051(){ note_dtor("ee07051", this);} // tgen
+ee07051 ::ee07051(){ note_ctor("ee07051", this);} // tgen
+
+static void Test_ee07051()
+{
+ extern Class_Descriptor cd_ee07051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07051, buf);
+ ee07051 *dp, &lv = *(dp=new (buf) ee07051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee07051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee07051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(16,12), "ee07051");
+ check_base_class_offset(lv, (dd7051*), 0, "ee07051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07051.e");
+ test_class_info(&lv, &cd_ee07051);
+ dp->~ee07051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07051(Test_ee07051, "ee07051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07051C1Ev();
+extern void _ZN7ee07051D1Ev();
+Name_Map name_map_ee07051[] = {
+ NSPAIR(_ZN7ee07051C1Ev),
+ NSPAIR(_ZN7ee07051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee07051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee07051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee07051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee07051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee07051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee07051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee07051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee07051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07051[] = {
+ {&(_ZTV7ee07051[4]), 4,15},
+ {&(_tg__ZTV6dd7051__7ee07051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee07051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee07051[3]), 3,4},
+ {&(_ZTV7ee07051[10]), 10,15},
+ {&(_ZTV7ee07051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee07051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee07051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee07051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee07051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07051[];
+extern VTBL_ENTRY _ZTV7ee07051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07051[];
+static VTBL_ENTRY alt_thunk_names479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07051 = { "ee07051", // class name
+ bases_ee07051, 4,
+ &(vtc_ee07051[0]), // expected_vtbl_contents
+ &(vtt_ee07051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names479,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17051 : virtual dd7051 {
+ int e;
+ ~ee17051(); // tgen
+ ee17051(); // tgen
+};
+//SIG(1 ee17051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17051 ::~ee17051(){ note_dtor("ee17051", this);} // tgen
+ee17051 ::ee17051(){ note_ctor("ee17051", this);} // tgen
+
+static void Test_ee17051()
+{
+ extern Class_Descriptor cd_ee17051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17051, buf);
+ ee17051 *dp, &lv = *(dp=new (buf) ee17051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee17051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee17051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(32,16), "ee17051");
+ check_base_class_offset(lv, (dd7051*), ABISELECT(16,8), "ee17051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17051.e");
+ test_class_info(&lv, &cd_ee17051);
+ dp->~ee17051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17051(Test_ee17051, "ee17051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17051C1Ev();
+extern void _ZN7ee17051D1Ev();
+Name_Map name_map_ee17051[] = {
+ NSPAIR(_ZN7ee17051C1Ev),
+ NSPAIR(_ZN7ee17051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee17051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17051[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee17051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee17051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee17051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee17051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee17051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee17051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee17051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17051[] = {
+ {&(_ZTV7ee17051[5]), 5,22},
+ {&(_ZTV7ee17051[11]), 11,22},
+ {&(_ZTV7ee17051[17]), 17,22},
+ {&(_ZTV7ee17051[21]), 21,22},
+ {&(_tg__ZTV6dd7051__7ee17051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee17051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee17051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee17051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee17051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee17051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee17051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17051[];
+extern VTBL_ENTRY _ZTV7ee17051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17051[];
+static VTBL_ENTRY alt_thunk_names480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17051 = { "ee17051", // class name
+ bases_ee17051, 4,
+ &(vtc_ee17051[0]), // expected_vtbl_contents
+ &(vtt_ee17051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17051),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names480,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27051 : dd7051 {
+ int e;
+ virtual void foo(); // _ZN7ee270513fooEv
+ ~ee27051(); // tgen
+ ee27051(); // tgen
+};
+//SIG(1 ee27051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27051 ::foo(){vfunc_called(this, "_ZN7ee270513fooEv");}
+ee27051 ::~ee27051(){ note_dtor("ee27051", this);} // tgen
+ee27051 ::ee27051(){ note_ctor("ee27051", this);} // tgen
+
+static void Test_ee27051()
+{
+ extern Class_Descriptor cd_ee27051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27051, buf);
+ ee27051 *dp, &lv = *(dp=new (buf) ee27051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee27051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee27051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(16,12), "ee27051");
+ check_base_class_offset(lv, (dd7051*), 0, "ee27051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27051.e");
+ test_class_info(&lv, &cd_ee27051);
+ dp->~ee27051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27051(Test_ee27051, "ee27051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27051C1Ev();
+extern void _ZN7ee27051D1Ev();
+Name_Map name_map_ee27051[] = {
+ NSPAIR(_ZN7ee27051C1Ev),
+ NSPAIR(_ZN7ee27051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee27051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN7ee270513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee270513fooEv,_ZTv0_n12_N7ee270513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee270513fooEv,_ZThn24_N7ee270513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN7ee270513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270513fooEv,_ZTv0_n12_N7ee270513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee27051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee27051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee27051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee27051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee27051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee27051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee27051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27051[] = {
+ {&(_ZTV7ee27051[4]), 4,15},
+ {&(_tg__ZTV6dd7051__7ee27051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee27051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee27051[3]), 3,4},
+ {&(_ZTV7ee27051[10]), 10,15},
+ {&(_ZTV7ee27051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee27051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee27051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee27051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee27051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27051[];
+extern VTBL_ENTRY _ZTV7ee27051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27051[];
+static VTBL_ENTRY alt_thunk_names481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270513fooEv,_ZTv0_n12_N7ee270513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee270513fooEv,_ZThn24_N7ee270513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27051 = { "ee27051", // class name
+ bases_ee27051, 4,
+ &(vtc_ee27051[0]), // expected_vtbl_contents
+ &(vtt_ee27051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names481,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37051 : virtual dd7051 {
+ int e;
+ virtual void foo(); // _ZN7ee370513fooEv
+ ~ee37051(); // tgen
+ ee37051(); // tgen
+};
+//SIG(1 ee37051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37051 ::foo(){vfunc_called(this, "_ZN7ee370513fooEv");}
+ee37051 ::~ee37051(){ note_dtor("ee37051", this);} // tgen
+ee37051 ::ee37051(){ note_ctor("ee37051", this);} // tgen
+
+static void Test_ee37051()
+{
+ extern Class_Descriptor cd_ee37051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37051, buf);
+ ee37051 *dp, &lv = *(dp=new (buf) ee37051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee37051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee37051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(32,16), "ee37051");
+ check_base_class_offset(lv, (dd7051*), ABISELECT(16,8), "ee37051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37051.e");
+ test_class_info(&lv, &cd_ee37051);
+ dp->~ee37051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37051(Test_ee37051, "ee37051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37051C1Ev();
+extern void _ZN7ee37051D1Ev();
+Name_Map name_map_ee37051[] = {
+ NSPAIR(_ZN7ee37051C1Ev),
+ NSPAIR(_ZN7ee37051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee37051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37051[];
+extern void _ZN7ee370513fooEv();
+extern void _ZN6dd70513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee370513fooEv,_ZTv0_n24_N7ee370513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370513fooEv,_ZThn8_N7ee370513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370513fooEv,_ZTv0_n12_N7ee370513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee370513fooEv,_ZThn28_N7ee370513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37051[0]),
+ (VTBL_ENTRY)&_ZN7ee370513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee370513fooEv,_ZTv0_n24_N7ee370513fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370513fooEv,_ZTv0_n12_N7ee370513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee37051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee37051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee37051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee37051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee37051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee37051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee37051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37051[] = {
+ {&(_ZTV7ee37051[5]), 5,23},
+ {&(_ZTV7ee37051[12]), 12,23},
+ {&(_ZTV7ee37051[18]), 18,23},
+ {&(_ZTV7ee37051[22]), 22,23},
+ {&(_tg__ZTV6dd7051__7ee37051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee37051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee37051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee37051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee37051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee37051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee37051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37051[];
+extern VTBL_ENTRY _ZTV7ee37051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37051[];
+static VTBL_ENTRY alt_thunk_names482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370513fooEv,_ZTv0_n12_N7ee370513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee370513fooEv,_ZThn28_N7ee370513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee370513fooEv,_ZTv0_n24_N7ee370513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370513fooEv,_ZThn8_N7ee370513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37051 = { "ee37051", // class name
+ bases_ee37051, 4,
+ &(vtc_ee37051[0]), // expected_vtbl_contents
+ &(vtt_ee37051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37051),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names482,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47051 : dd7051 {
+ int e;
+ virtual void bar(); // _ZN7ee470513barEv
+ ~ee47051(); // tgen
+ ee47051(); // tgen
+};
+//SIG(1 ee47051) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47051 ::bar(){vfunc_called(this, "_ZN7ee470513barEv");}
+ee47051 ::~ee47051(){ note_dtor("ee47051", this);} // tgen
+ee47051 ::ee47051(){ note_ctor("ee47051", this);} // tgen
+
+static void Test_ee47051()
+{
+ extern Class_Descriptor cd_ee47051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47051, buf);
+ ee47051 *dp, &lv = *(dp=new (buf) ee47051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee47051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee47051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(16,12), "ee47051");
+ check_base_class_offset(lv, (dd7051*), 0, "ee47051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47051.e");
+ test_class_info(&lv, &cd_ee47051);
+ dp->~ee47051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47051(Test_ee47051, "ee47051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47051C1Ev();
+extern void _ZN7ee47051D1Ev();
+Name_Map name_map_ee47051[] = {
+ NSPAIR(_ZN7ee47051C1Ev),
+ NSPAIR(_ZN7ee47051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee47051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47051[];
+extern void _ZN7ee470513barEv();
+extern void _ZN6dd70513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee470513barEv,_ZTv0_n16_N7ee470513barEv)();
+extern void ABISELECT(_ZThn16_N7ee470513barEv,_ZThn12_N7ee470513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47051[0]),
+ (VTBL_ENTRY)&_ZN7ee470513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470513barEv,_ZTv0_n16_N7ee470513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee47051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee47051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee47051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee47051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee47051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee47051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee47051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47051[] = {
+ {&(_ZTV7ee47051[4]), 4,15},
+ {&(_tg__ZTV6dd7051__7ee47051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee47051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee47051[3]), 3,4},
+ {&(_ZTV7ee47051[10]), 10,15},
+ {&(_ZTV7ee47051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee47051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee47051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee47051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee47051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47051[];
+extern VTBL_ENTRY _ZTV7ee47051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47051[];
+static VTBL_ENTRY alt_thunk_names483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470513barEv,_ZTv0_n16_N7ee470513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470513barEv,_ZThn12_N7ee470513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47051 = { "ee47051", // class name
+ bases_ee47051, 4,
+ &(vtc_ee47051[0]), // expected_vtbl_contents
+ &(vtt_ee47051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names483,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57051 : virtual dd7051 {
+ int e;
+ virtual void bar(); // _ZN7ee570513barEv
+ ~ee57051(); // tgen
+ ee57051(); // tgen
+};
+//SIG(1 ee57051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57051 ::bar(){vfunc_called(this, "_ZN7ee570513barEv");}
+ee57051 ::~ee57051(){ note_dtor("ee57051", this);} // tgen
+ee57051 ::ee57051(){ note_ctor("ee57051", this);} // tgen
+
+static void Test_ee57051()
+{
+ extern Class_Descriptor cd_ee57051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57051, buf);
+ ee57051 *dp, &lv = *(dp=new (buf) ee57051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee57051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee57051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(32,16), "ee57051");
+ check_base_class_offset(lv, (dd7051*), ABISELECT(16,8), "ee57051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57051.e");
+ test_class_info(&lv, &cd_ee57051);
+ dp->~ee57051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57051(Test_ee57051, "ee57051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57051C1Ev();
+extern void _ZN7ee57051D1Ev();
+Name_Map name_map_ee57051[] = {
+ NSPAIR(_ZN7ee57051C1Ev),
+ NSPAIR(_ZN7ee57051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee57051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57051[];
+extern void _ZN7ee570513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee570513barEv,_ZTv0_n20_N7ee570513barEv)();
+extern void ABISELECT(_ZThn16_N7ee570513barEv,_ZThn8_N7ee570513barEv)() __attribute__((weak));
+extern void _ZN6dd70513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570513barEv,_ZTv0_n16_N7ee570513barEv)();
+extern void ABISELECT(_ZThn32_N7ee570513barEv,_ZThn16_N7ee570513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57051[0]),
+ (VTBL_ENTRY)&_ZN7ee570513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee570513barEv,_ZTv0_n20_N7ee570513barEv),
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570513barEv,_ZTv0_n16_N7ee570513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee57051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee57051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee57051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee57051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee57051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee57051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee57051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57051[] = {
+ {&(_ZTV7ee57051[5]), 5,23},
+ {&(_ZTV7ee57051[12]), 12,23},
+ {&(_ZTV7ee57051[18]), 18,23},
+ {&(_ZTV7ee57051[22]), 22,23},
+ {&(_tg__ZTV6dd7051__7ee57051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee57051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee57051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee57051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee57051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee57051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee57051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57051[];
+extern VTBL_ENTRY _ZTV7ee57051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57051[];
+static VTBL_ENTRY alt_thunk_names484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570513barEv,_ZTv0_n16_N7ee570513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570513barEv,_ZThn16_N7ee570513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee570513barEv,_ZTv0_n20_N7ee570513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570513barEv,_ZThn8_N7ee570513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57051 = { "ee57051", // class name
+ bases_ee57051, 4,
+ &(vtc_ee57051[0]), // expected_vtbl_contents
+ &(vtt_ee57051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57051),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names484,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67051 : dd7051 {
+ int e;
+ virtual void foo(); // _ZN7ee670513fooEv
+ virtual void bar(); // _ZN7ee670513barEv
+ ~ee67051(); // tgen
+ ee67051(); // tgen
+};
+//SIG(1 ee67051) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67051 ::foo(){vfunc_called(this, "_ZN7ee670513fooEv");}
+void ee67051 ::bar(){vfunc_called(this, "_ZN7ee670513barEv");}
+ee67051 ::~ee67051(){ note_dtor("ee67051", this);} // tgen
+ee67051 ::ee67051(){ note_ctor("ee67051", this);} // tgen
+
+static void Test_ee67051()
+{
+ extern Class_Descriptor cd_ee67051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67051, buf);
+ ee67051 *dp, &lv = *(dp=new (buf) ee67051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(32,24), "ee67051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(16,12), "ee67051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(16,12), "ee67051");
+ check_base_class_offset(lv, (dd7051*), 0, "ee67051");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67051.e");
+ test_class_info(&lv, &cd_ee67051);
+ dp->~ee67051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67051(Test_ee67051, "ee67051", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67051C1Ev();
+extern void _ZN7ee67051D1Ev();
+Name_Map name_map_ee67051[] = {
+ NSPAIR(_ZN7ee67051C1Ev),
+ NSPAIR(_ZN7ee67051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee67051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67051[];
+extern void _ZN7ee670513barEv();
+extern void _ZN7ee670513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee670513barEv,_ZTv0_n16_N7ee670513barEv)();
+extern void ABISELECT(_ZThn16_N7ee670513barEv,_ZThn12_N7ee670513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee670513fooEv,_ZTv0_n12_N7ee670513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee670513fooEv,_ZThn24_N7ee670513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67051[0]),
+ (VTBL_ENTRY)&_ZN7ee670513barEv,
+ (VTBL_ENTRY)&_ZN7ee670513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670513barEv,_ZTv0_n16_N7ee670513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670513fooEv,_ZTv0_n12_N7ee670513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee67051[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee67051[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee67051[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee67051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee67051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee67051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee67051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67051[] = {
+ {&(_ZTV7ee67051[4]), 4,15},
+ {&(_tg__ZTV6dd7051__7ee67051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee67051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee67051[3]), 3,4},
+ {&(_ZTV7ee67051[10]), 10,15},
+ {&(_ZTV7ee67051[14]), 14,15},
+ {&(_tg__ZTV5cc051__7ee67051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee67051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee67051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee67051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67051[];
+extern VTBL_ENTRY _ZTV7ee67051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67051[];
+static VTBL_ENTRY alt_thunk_names485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn24_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn12_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670513fooEv,_ZTv0_n12_N7ee670513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee670513fooEv,_ZThn24_N7ee670513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670513barEv,_ZTv0_n16_N7ee670513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670513barEv,_ZThn12_N7ee670513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67051 = { "ee67051", // class name
+ bases_ee67051, 4,
+ &(vtc_ee67051[0]), // expected_vtbl_contents
+ &(vtt_ee67051[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67051),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67051),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67051),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names485,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77051 : virtual dd7051 {
+ int e;
+ virtual void foo(); // _ZN7ee770513fooEv
+ virtual void bar(); // _ZN7ee770513barEv
+ ~ee77051(); // tgen
+ ee77051(); // tgen
+};
+//SIG(1 ee77051) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77051 ::foo(){vfunc_called(this, "_ZN7ee770513fooEv");}
+void ee77051 ::bar(){vfunc_called(this, "_ZN7ee770513barEv");}
+ee77051 ::~ee77051(){ note_dtor("ee77051", this);} // tgen
+ee77051 ::ee77051(){ note_ctor("ee77051", this);} // tgen
+
+static void Test_ee77051()
+{
+ extern Class_Descriptor cd_ee77051;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77051, buf);
+ ee77051 *dp, &lv = *(dp=new (buf) ee77051());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77051)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77051)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc051*), ABISELECT(48,28), "ee77051");
+ check_base_class_offset(lv, (bb51*)(cc051*), ABISELECT(32,16), "ee77051");
+ check_base_class_offset(lv, (cc051*)(dd7051*), ABISELECT(32,16), "ee77051");
+ check_base_class_offset(lv, (dd7051*), ABISELECT(16,8), "ee77051");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77051.e");
+ test_class_info(&lv, &cd_ee77051);
+ dp->~ee77051();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77051(Test_ee77051, "ee77051", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77051C1Ev();
+extern void _ZN7ee77051D1Ev();
+Name_Map name_map_ee77051[] = {
+ NSPAIR(_ZN7ee77051C1Ev),
+ NSPAIR(_ZN7ee77051D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc051;
+extern VTBL_ENTRY _ZTI5cc051[];
+extern VTBL_ENTRY _ZTV5cc051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc051[];
+extern Class_Descriptor cd_dd7051;
+extern VTBL_ENTRY _ZTI6dd7051[];
+extern VTBL_ENTRY _ZTV6dd7051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7051[];
+static Base_Class bases_ee77051[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc051, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7051, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77051[];
+extern void _ZN7ee770513fooEv();
+extern void _ZN7ee770513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee770513barEv,_ZTv0_n20_N7ee770513barEv)();
+extern void ABISELECT(_ZThn16_N7ee770513barEv,_ZThn8_N7ee770513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee770513fooEv,_ZTv0_n24_N7ee770513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770513fooEv,_ZThn8_N7ee770513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770513barEv,_ZTv0_n16_N7ee770513barEv)();
+extern void ABISELECT(_ZThn32_N7ee770513barEv,_ZThn16_N7ee770513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770513fooEv,_ZTv0_n12_N7ee770513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee770513fooEv,_ZThn28_N7ee770513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77051[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77051[0]),
+ (VTBL_ENTRY)&_ZN7ee770513fooEv,
+ (VTBL_ENTRY)&_ZN7ee770513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770513barEv,_ZTv0_n20_N7ee770513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee770513fooEv,_ZTv0_n24_N7ee770513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770513barEv,_ZTv0_n16_N7ee770513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770513fooEv,_ZTv0_n12_N7ee770513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77051[];
+extern void _ZN6dd70513barEv();
+extern void _ZN6dd70513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7051__7ee77051[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&_ZN6dd70513barEv,
+ (VTBL_ENTRY)&_ZN6dd70513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv)();
+extern void ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc051__6dd7051__7ee77051[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7051__7ee77051[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7051[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV5cc051__7ee77051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc051__7ee77051[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc051__7ee77051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc051__7ee77051[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc051[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77051[] = {
+ {&(_ZTV7ee77051[5]), 5,24},
+ {&(_ZTV7ee77051[13]), 13,24},
+ {&(_ZTV7ee77051[19]), 19,24},
+ {&(_ZTV7ee77051[23]), 23,24},
+ {&(_tg__ZTV6dd7051__7ee77051[4]), 4,6},
+ {&(_tg__ZTV5cc051__6dd7051__7ee77051[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7051__7ee77051[3]), 3,4},
+ {&(_tg__ZTV5cc051__7ee77051[3]), 3,4},
+ {&(_tg__ZTV4bb515cc051__7ee77051[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc051__7ee77051[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc051__7ee77051[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77051[];
+extern VTBL_ENTRY _ZTV7ee77051[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77051[];
+static VTBL_ENTRY alt_thunk_names486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70513fooEv,_ZTv0_n12_N6dd70513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70513fooEv,_ZThn20_N6dd70513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70513barEv,_ZTv0_n16_N6dd70513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70513barEv,_ZThn8_N6dd70513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770513fooEv,_ZTv0_n12_N7ee770513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee770513fooEv,_ZThn28_N7ee770513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770513barEv,_ZTv0_n16_N7ee770513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770513barEv,_ZThn16_N7ee770513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee770513fooEv,_ZTv0_n24_N7ee770513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770513fooEv,_ZThn8_N7ee770513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770513barEv,_ZTv0_n20_N7ee770513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770513barEv,_ZThn8_N7ee770513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77051 = { "ee77051", // class name
+ bases_ee77051, 4,
+ &(vtc_ee77051[0]), // expected_vtbl_contents
+ &(vtt_ee77051[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77051),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77051),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77051),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names486,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc151 : virtual bb51 {
+ int c;
+ ~cc151(); // tgen
+ cc151(); // tgen
+};
+//SIG(-1 cc151) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} Fi}
+
+
+cc151 ::~cc151(){ note_dtor("cc151", this);} // tgen
+cc151 ::cc151(){ note_ctor("cc151", this);} // tgen
+
+static void Test_cc151()
+{
+ extern Class_Descriptor cd_cc151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc151, buf);
+ cc151 *dp, &lv = *(dp=new (buf) cc151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,16), "cc151");
+ check_base_class_offset(lv, (bb51*), ABISELECT(16,8), "cc151");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc151.c");
+ test_class_info(&lv, &cd_cc151);
+ dp->~cc151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc151(Test_cc151, "cc151", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc151C1Ev();
+extern void _ZN5cc151D1Ev();
+Name_Map name_map_cc151[] = {
+ NSPAIR(_ZN5cc151C1Ev),
+ NSPAIR(_ZN5cc151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc151[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc151[] = {
+ {&(_ZTV5cc151[4]), 4,13},
+ {&(_ZTV5cc151[8]), 8,13},
+ {&(_ZTV5cc151[12]), 12,13},
+ {&(_tg__ZTV4bb51__5cc151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+Class_Descriptor cd_cc151 = { "cc151", // class name
+ bases_cc151, 2,
+ &(vtc_cc151[0]), // expected_vtbl_contents
+ &(vtt_cc151[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc151),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc151),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0151 : cc151 {
+ int d;
+ ~dd0151(); // tgen
+ dd0151(); // tgen
+};
+//SIG(-1 dd0151) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd0151 ::~dd0151(){ note_dtor("dd0151", this);} // tgen
+dd0151 ::dd0151(){ note_ctor("dd0151", this);} // tgen
+
+static void Test_dd0151()
+{
+ extern Class_Descriptor cd_dd0151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0151, buf);
+ dd0151 *dp, &lv = *(dp=new (buf) dd0151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd0151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(16,12), "dd0151");
+ check_base_class_offset(lv, (cc151*), 0, "dd0151");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0151.d");
+ test_class_info(&lv, &cd_dd0151);
+ dp->~dd0151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0151(Test_dd0151, "dd0151", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0151C1Ev();
+extern void _ZN6dd0151D1Ev();
+Name_Map name_map_dd0151[] = {
+ NSPAIR(_ZN6dd0151C1Ev),
+ NSPAIR(_ZN6dd0151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd0151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd0151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd0151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd0151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd0151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0151[] = {
+ {&(_ZTV6dd0151[4]), 4,13},
+ {&(_tg__ZTV5cc151__6dd0151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd0151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd0151[3]), 3,4},
+ {&(_ZTV6dd0151[8]), 8,13},
+ {&(_ZTV6dd0151[12]), 12,13},
+ {&(_tg__ZTV4bb51__6dd0151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd0151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+Class_Descriptor cd_dd0151 = { "dd0151", // class name
+ bases_dd0151, 3,
+ &(vtc_dd0151[0]), // expected_vtbl_contents
+ &(vtt_dd0151[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0151),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0151),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00151 : dd0151 {
+ int e;
+ ~ee00151(); // tgen
+ ee00151(); // tgen
+};
+//SIG(1 ee00151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00151 ::~ee00151(){ note_dtor("ee00151", this);} // tgen
+ee00151 ::ee00151(){ note_ctor("ee00151", this);} // tgen
+
+static void Test_ee00151()
+{
+ extern Class_Descriptor cd_ee00151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00151, buf);
+ ee00151 *dp, &lv = *(dp=new (buf) ee00151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee00151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(24,16), "ee00151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), 0, "ee00151");
+ check_base_class_offset(lv, (dd0151*), 0, "ee00151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00151.e");
+ test_class_info(&lv, &cd_ee00151);
+ dp->~ee00151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00151(Test_ee00151, "ee00151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00151C1Ev();
+extern void _ZN7ee00151D1Ev();
+Name_Map name_map_ee00151[] = {
+ NSPAIR(_ZN7ee00151C1Ev),
+ NSPAIR(_ZN7ee00151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee00151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 9, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee00151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee00151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee00151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee00151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee00151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee00151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee00151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee00151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00151[] = {
+ {&(_ZTV7ee00151[4]), 4,13},
+ {&(_tg__ZTV6dd0151__7ee00151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee00151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee00151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee00151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee00151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee00151[3]), 3,4},
+ {&(_ZTV7ee00151[8]), 8,13},
+ {&(_ZTV7ee00151[12]), 12,13},
+ {&(_tg__ZTV4bb51__7ee00151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee00151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00151[];
+extern VTBL_ENTRY _ZTV7ee00151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00151[];
+Class_Descriptor cd_ee00151 = { "ee00151", // class name
+ bases_ee00151, 4,
+ &(vtc_ee00151[0]), // expected_vtbl_contents
+ &(vtt_ee00151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00151),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10151 : virtual dd0151 {
+ int e;
+ ~ee10151(); // tgen
+ ee10151(); // tgen
+};
+//SIG(1 ee10151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10151 ::~ee10151(){ note_dtor("ee10151", this);} // tgen
+ee10151 ::ee10151(){ note_ctor("ee10151", this);} // tgen
+
+static void Test_ee10151()
+{
+ extern Class_Descriptor cd_ee10151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10151, buf);
+ ee10151 *dp, &lv = *(dp=new (buf) ee10151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee10151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(32,20), "ee10151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), ABISELECT(16,8), "ee10151");
+ check_base_class_offset(lv, (dd0151*), ABISELECT(16,8), "ee10151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10151.e");
+ test_class_info(&lv, &cd_ee10151);
+ dp->~ee10151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10151(Test_ee10151, "ee10151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10151C1Ev();
+extern void _ZN7ee10151D1Ev();
+Name_Map name_map_ee10151[] = {
+ NSPAIR(_ZN7ee10151C1Ev),
+ NSPAIR(_ZN7ee10151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee10151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 14, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10151[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee10151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee10151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee10151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee10151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee10151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee10151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee10151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee10151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10151[] = {
+ {&(_ZTV7ee10151[5]), 5,18},
+ {&(_ZTV7ee10151[9]), 9,18},
+ {&(_ZTV7ee10151[13]), 13,18},
+ {&(_ZTV7ee10151[17]), 17,18},
+ {&(_tg__ZTV6dd0151__7ee10151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee10151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee10151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee10151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee10151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee10151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee10151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee10151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10151[];
+extern VTBL_ENTRY _ZTV7ee10151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10151[];
+Class_Descriptor cd_ee10151 = { "ee10151", // class name
+ bases_ee10151, 4,
+ &(vtc_ee10151[0]), // expected_vtbl_contents
+ &(vtt_ee10151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10151),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20151 : dd0151 {
+ int e;
+ virtual void foo(); // _ZN7ee201513fooEv
+ ~ee20151(); // tgen
+ ee20151(); // tgen
+};
+//SIG(1 ee20151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20151 ::foo(){vfunc_called(this, "_ZN7ee201513fooEv");}
+ee20151 ::~ee20151(){ note_dtor("ee20151", this);} // tgen
+ee20151 ::ee20151(){ note_ctor("ee20151", this);} // tgen
+
+static void Test_ee20151()
+{
+ extern Class_Descriptor cd_ee20151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20151, buf);
+ ee20151 *dp, &lv = *(dp=new (buf) ee20151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee20151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(24,16), "ee20151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), 0, "ee20151");
+ check_base_class_offset(lv, (dd0151*), 0, "ee20151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20151.e");
+ test_class_info(&lv, &cd_ee20151);
+ dp->~ee20151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20151(Test_ee20151, "ee20151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20151C1Ev();
+extern void _ZN7ee20151D1Ev();
+Name_Map name_map_ee20151[] = {
+ NSPAIR(_ZN7ee20151C1Ev),
+ NSPAIR(_ZN7ee20151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee20151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20151[];
+extern void _ZN7ee201513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201513fooEv,_ZTv0_n12_N7ee201513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee201513fooEv,_ZThn24_N7ee201513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20151[0]),
+ (VTBL_ENTRY)&_ZN7ee201513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201513fooEv,_ZTv0_n12_N7ee201513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee20151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee20151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee20151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee20151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee20151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee20151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee20151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee20151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20151[] = {
+ {&(_ZTV7ee20151[4]), 4,14},
+ {&(_tg__ZTV6dd0151__7ee20151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee20151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee20151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee20151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee20151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee20151[3]), 3,4},
+ {&(_ZTV7ee20151[9]), 9,14},
+ {&(_ZTV7ee20151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee20151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee20151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20151[];
+extern VTBL_ENTRY _ZTV7ee20151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20151[];
+static VTBL_ENTRY alt_thunk_names487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201513fooEv,_ZTv0_n12_N7ee201513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee201513fooEv,_ZThn24_N7ee201513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20151 = { "ee20151", // class name
+ bases_ee20151, 4,
+ &(vtc_ee20151[0]), // expected_vtbl_contents
+ &(vtt_ee20151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names487,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30151 : virtual dd0151 {
+ int e;
+ virtual void foo(); // _ZN7ee301513fooEv
+ ~ee30151(); // tgen
+ ee30151(); // tgen
+};
+//SIG(1 ee30151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30151 ::foo(){vfunc_called(this, "_ZN7ee301513fooEv");}
+ee30151 ::~ee30151(){ note_dtor("ee30151", this);} // tgen
+ee30151 ::ee30151(){ note_ctor("ee30151", this);} // tgen
+
+static void Test_ee30151()
+{
+ extern Class_Descriptor cd_ee30151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30151, buf);
+ ee30151 *dp, &lv = *(dp=new (buf) ee30151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee30151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(32,20), "ee30151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), ABISELECT(16,8), "ee30151");
+ check_base_class_offset(lv, (dd0151*), ABISELECT(16,8), "ee30151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30151.e");
+ test_class_info(&lv, &cd_ee30151);
+ dp->~ee30151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30151(Test_ee30151, "ee30151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30151C1Ev();
+extern void _ZN7ee30151D1Ev();
+Name_Map name_map_ee30151[] = {
+ NSPAIR(_ZN7ee30151C1Ev),
+ NSPAIR(_ZN7ee30151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee30151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30151[];
+extern void _ZN7ee301513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301513fooEv,_ZTv0_n12_N7ee301513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee301513fooEv,_ZThn28_N7ee301513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30151[0]),
+ (VTBL_ENTRY)&_ZN7ee301513fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301513fooEv,_ZTv0_n12_N7ee301513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee30151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee30151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee30151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee30151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee30151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee30151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee30151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee30151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30151[] = {
+ {&(_ZTV7ee30151[5]), 5,19},
+ {&(_ZTV7ee30151[10]), 10,19},
+ {&(_ZTV7ee30151[14]), 14,19},
+ {&(_ZTV7ee30151[18]), 18,19},
+ {&(_tg__ZTV6dd0151__7ee30151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee30151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee30151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee30151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee30151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee30151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee30151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee30151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30151[];
+extern VTBL_ENTRY _ZTV7ee30151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30151[];
+static VTBL_ENTRY alt_thunk_names488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301513fooEv,_ZTv0_n12_N7ee301513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee301513fooEv,_ZThn28_N7ee301513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30151 = { "ee30151", // class name
+ bases_ee30151, 4,
+ &(vtc_ee30151[0]), // expected_vtbl_contents
+ &(vtt_ee30151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names488,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40151 : dd0151 {
+ int e;
+ virtual void bar(); // _ZN7ee401513barEv
+ ~ee40151(); // tgen
+ ee40151(); // tgen
+};
+//SIG(1 ee40151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40151 ::bar(){vfunc_called(this, "_ZN7ee401513barEv");}
+ee40151 ::~ee40151(){ note_dtor("ee40151", this);} // tgen
+ee40151 ::ee40151(){ note_ctor("ee40151", this);} // tgen
+
+static void Test_ee40151()
+{
+ extern Class_Descriptor cd_ee40151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40151, buf);
+ ee40151 *dp, &lv = *(dp=new (buf) ee40151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee40151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(24,16), "ee40151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), 0, "ee40151");
+ check_base_class_offset(lv, (dd0151*), 0, "ee40151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40151.e");
+ test_class_info(&lv, &cd_ee40151);
+ dp->~ee40151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40151(Test_ee40151, "ee40151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40151C1Ev();
+extern void _ZN7ee40151D1Ev();
+Name_Map name_map_ee40151[] = {
+ NSPAIR(_ZN7ee40151C1Ev),
+ NSPAIR(_ZN7ee40151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee40151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40151[];
+extern void _ZN7ee401513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401513barEv,_ZTv0_n16_N7ee401513barEv)();
+extern void ABISELECT(_ZThn24_N7ee401513barEv,_ZThn16_N7ee401513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40151[0]),
+ (VTBL_ENTRY)&_ZN7ee401513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401513barEv,_ZTv0_n16_N7ee401513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee40151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee40151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee40151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee40151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee40151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee40151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee40151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee40151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40151[] = {
+ {&(_ZTV7ee40151[4]), 4,14},
+ {&(_tg__ZTV6dd0151__7ee40151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee40151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee40151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee40151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee40151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee40151[3]), 3,4},
+ {&(_ZTV7ee40151[9]), 9,14},
+ {&(_ZTV7ee40151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee40151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee40151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40151[];
+extern VTBL_ENTRY _ZTV7ee40151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40151[];
+static VTBL_ENTRY alt_thunk_names489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401513barEv,_ZTv0_n16_N7ee401513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401513barEv,_ZThn16_N7ee401513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40151 = { "ee40151", // class name
+ bases_ee40151, 4,
+ &(vtc_ee40151[0]), // expected_vtbl_contents
+ &(vtt_ee40151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names489,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50151 : virtual dd0151 {
+ int e;
+ virtual void bar(); // _ZN7ee501513barEv
+ ~ee50151(); // tgen
+ ee50151(); // tgen
+};
+//SIG(1 ee50151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50151 ::bar(){vfunc_called(this, "_ZN7ee501513barEv");}
+ee50151 ::~ee50151(){ note_dtor("ee50151", this);} // tgen
+ee50151 ::ee50151(){ note_ctor("ee50151", this);} // tgen
+
+static void Test_ee50151()
+{
+ extern Class_Descriptor cd_ee50151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50151, buf);
+ ee50151 *dp, &lv = *(dp=new (buf) ee50151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee50151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(32,20), "ee50151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), ABISELECT(16,8), "ee50151");
+ check_base_class_offset(lv, (dd0151*), ABISELECT(16,8), "ee50151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50151.e");
+ test_class_info(&lv, &cd_ee50151);
+ dp->~ee50151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50151(Test_ee50151, "ee50151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50151C1Ev();
+extern void _ZN7ee50151D1Ev();
+Name_Map name_map_ee50151[] = {
+ NSPAIR(_ZN7ee50151C1Ev),
+ NSPAIR(_ZN7ee50151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee50151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50151[];
+extern void _ZN7ee501513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501513barEv,_ZTv0_n16_N7ee501513barEv)();
+extern void ABISELECT(_ZThn32_N7ee501513barEv,_ZThn20_N7ee501513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50151[0]),
+ (VTBL_ENTRY)&_ZN7ee501513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501513barEv,_ZTv0_n16_N7ee501513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee50151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee50151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee50151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee50151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee50151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee50151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee50151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee50151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50151[] = {
+ {&(_ZTV7ee50151[5]), 5,19},
+ {&(_ZTV7ee50151[10]), 10,19},
+ {&(_ZTV7ee50151[14]), 14,19},
+ {&(_ZTV7ee50151[18]), 18,19},
+ {&(_tg__ZTV6dd0151__7ee50151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee50151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee50151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee50151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee50151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee50151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee50151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee50151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50151[];
+extern VTBL_ENTRY _ZTV7ee50151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50151[];
+static VTBL_ENTRY alt_thunk_names490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501513barEv,_ZTv0_n16_N7ee501513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501513barEv,_ZThn20_N7ee501513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50151 = { "ee50151", // class name
+ bases_ee50151, 4,
+ &(vtc_ee50151[0]), // expected_vtbl_contents
+ &(vtt_ee50151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names490,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60151 : dd0151 {
+ int e;
+ virtual void foo(); // _ZN7ee601513fooEv
+ virtual void bar(); // _ZN7ee601513barEv
+ ~ee60151(); // tgen
+ ee60151(); // tgen
+};
+//SIG(1 ee60151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60151 ::foo(){vfunc_called(this, "_ZN7ee601513fooEv");}
+void ee60151 ::bar(){vfunc_called(this, "_ZN7ee601513barEv");}
+ee60151 ::~ee60151(){ note_dtor("ee60151", this);} // tgen
+ee60151 ::ee60151(){ note_ctor("ee60151", this);} // tgen
+
+static void Test_ee60151()
+{
+ extern Class_Descriptor cd_ee60151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60151, buf);
+ ee60151 *dp, &lv = *(dp=new (buf) ee60151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee60151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(24,16), "ee60151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), 0, "ee60151");
+ check_base_class_offset(lv, (dd0151*), 0, "ee60151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60151.e");
+ test_class_info(&lv, &cd_ee60151);
+ dp->~ee60151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60151(Test_ee60151, "ee60151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60151C1Ev();
+extern void _ZN7ee60151D1Ev();
+Name_Map name_map_ee60151[] = {
+ NSPAIR(_ZN7ee60151C1Ev),
+ NSPAIR(_ZN7ee60151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee60151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60151[];
+extern void _ZN7ee601513fooEv();
+extern void _ZN7ee601513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee601513barEv,_ZTv0_n16_N7ee601513barEv)();
+extern void ABISELECT(_ZThn24_N7ee601513barEv,_ZThn16_N7ee601513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee601513fooEv,_ZTv0_n12_N7ee601513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee601513fooEv,_ZThn24_N7ee601513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60151[0]),
+ (VTBL_ENTRY)&_ZN7ee601513fooEv,
+ (VTBL_ENTRY)&_ZN7ee601513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601513barEv,_ZTv0_n16_N7ee601513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601513fooEv,_ZTv0_n12_N7ee601513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee60151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee60151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee60151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee60151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee60151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee60151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee60151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee60151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60151[] = {
+ {&(_ZTV7ee60151[4]), 4,15},
+ {&(_tg__ZTV6dd0151__7ee60151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee60151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee60151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee60151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee60151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee60151[3]), 3,4},
+ {&(_ZTV7ee60151[10]), 10,15},
+ {&(_ZTV7ee60151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee60151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee60151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60151[];
+extern VTBL_ENTRY _ZTV7ee60151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60151[];
+static VTBL_ENTRY alt_thunk_names491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601513fooEv,_ZTv0_n12_N7ee601513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee601513fooEv,_ZThn24_N7ee601513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601513barEv,_ZTv0_n16_N7ee601513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601513barEv,_ZThn16_N7ee601513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60151 = { "ee60151", // class name
+ bases_ee60151, 4,
+ &(vtc_ee60151[0]), // expected_vtbl_contents
+ &(vtt_ee60151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names491,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70151 : virtual dd0151 {
+ int e;
+ virtual void foo(); // _ZN7ee701513fooEv
+ virtual void bar(); // _ZN7ee701513barEv
+ ~ee70151(); // tgen
+ ee70151(); // tgen
+};
+//SIG(1 ee70151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70151 ::foo(){vfunc_called(this, "_ZN7ee701513fooEv");}
+void ee70151 ::bar(){vfunc_called(this, "_ZN7ee701513barEv");}
+ee70151 ::~ee70151(){ note_dtor("ee70151", this);} // tgen
+ee70151 ::ee70151(){ note_ctor("ee70151", this);} // tgen
+
+static void Test_ee70151()
+{
+ extern Class_Descriptor cd_ee70151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70151, buf);
+ ee70151 *dp, &lv = *(dp=new (buf) ee70151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee70151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd0151*), ABISELECT(32,20), "ee70151");
+ check_base_class_offset(lv, (cc151*)(dd0151*), ABISELECT(16,8), "ee70151");
+ check_base_class_offset(lv, (dd0151*), ABISELECT(16,8), "ee70151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70151.e");
+ test_class_info(&lv, &cd_ee70151);
+ dp->~ee70151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70151(Test_ee70151, "ee70151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70151C1Ev();
+extern void _ZN7ee70151D1Ev();
+Name_Map name_map_ee70151[] = {
+ NSPAIR(_ZN7ee70151C1Ev),
+ NSPAIR(_ZN7ee70151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd0151;
+extern VTBL_ENTRY _ZTI6dd0151[];
+extern VTBL_ENTRY _ZTV6dd0151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0151[];
+static Base_Class bases_ee70151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70151[];
+extern void _ZN7ee701513fooEv();
+extern void _ZN7ee701513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee701513barEv,_ZTv0_n16_N7ee701513barEv)();
+extern void ABISELECT(_ZThn32_N7ee701513barEv,_ZThn20_N7ee701513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee701513fooEv,_ZTv0_n12_N7ee701513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee701513fooEv,_ZThn28_N7ee701513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70151[0]),
+ (VTBL_ENTRY)&_ZN7ee701513fooEv,
+ (VTBL_ENTRY)&_ZN7ee701513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701513barEv,_ZTv0_n16_N7ee701513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701513fooEv,_ZTv0_n12_N7ee701513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70151[];
+static VTBL_ENTRY _tg__ZTV6dd0151__7ee70151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd0151__7ee70151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd0151__7ee70151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd0151__7ee70151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0151__7ee70151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0151__7ee70151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee70151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee70151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70151[] = {
+ {&(_ZTV7ee70151[5]), 5,20},
+ {&(_ZTV7ee70151[11]), 11,20},
+ {&(_ZTV7ee70151[15]), 15,20},
+ {&(_ZTV7ee70151[19]), 19,20},
+ {&(_tg__ZTV6dd0151__7ee70151[4]), 4,4},
+ {&(_tg__ZTV5cc1516dd0151__7ee70151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd0151__7ee70151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd0151__7ee70151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0151__7ee70151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0151__7ee70151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee70151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee70151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70151[];
+extern VTBL_ENTRY _ZTV7ee70151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70151[];
+static VTBL_ENTRY alt_thunk_names492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701513fooEv,_ZTv0_n12_N7ee701513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee701513fooEv,_ZThn28_N7ee701513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701513barEv,_ZTv0_n16_N7ee701513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701513barEv,_ZThn20_N7ee701513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70151 = { "ee70151", // class name
+ bases_ee70151, 4,
+ &(vtc_ee70151[0]), // expected_vtbl_contents
+ &(vtt_ee70151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names492,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1151 : virtual cc151 {
+ int d;
+ ~dd1151(); // tgen
+ dd1151(); // tgen
+};
+//SIG(-1 dd1151) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} Fi}
+
+
+dd1151 ::~dd1151(){ note_dtor("dd1151", this);} // tgen
+dd1151 ::dd1151(){ note_ctor("dd1151", this);} // tgen
+
+static void Test_dd1151()
+{
+ extern Class_Descriptor cd_dd1151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1151, buf);
+ dd1151 *dp, &lv = *(dp=new (buf) dd1151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd1151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,16), "dd1151");
+ check_base_class_offset(lv, (cc151*), ABISELECT(16,8), "dd1151");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1151.d");
+ test_class_info(&lv, &cd_dd1151);
+ dp->~dd1151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1151(Test_dd1151, "dd1151", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1151C1Ev();
+extern void _ZN6dd1151D1Ev();
+Name_Map name_map_dd1151[] = {
+ NSPAIR(_ZN6dd1151C1Ev),
+ NSPAIR(_ZN6dd1151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd1151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 14, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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 _ZTI6dd1151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd1151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd1151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd1151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1151[] = {
+ {&(_ZTV6dd1151[5]), 5,18},
+ {&(_ZTV6dd1151[9]), 9,18},
+ {&(_ZTV6dd1151[13]), 13,18},
+ {&(_ZTV6dd1151[17]), 17,18},
+ {&(_tg__ZTV5cc151__6dd1151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd1151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd1151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd1151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd1151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+Class_Descriptor cd_dd1151 = { "dd1151", // class name
+ bases_dd1151, 3,
+ &(vtc_dd1151[0]), // expected_vtbl_contents
+ &(vtt_dd1151[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1151),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1151),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01151 : dd1151 {
+ int e;
+ ~ee01151(); // tgen
+ ee01151(); // tgen
+};
+//SIG(1 ee01151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01151 ::~ee01151(){ note_dtor("ee01151", this);} // tgen
+ee01151 ::ee01151(){ note_ctor("ee01151", this);} // tgen
+
+static void Test_ee01151()
+{
+ extern Class_Descriptor cd_ee01151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01151, buf);
+ ee01151 *dp, &lv = *(dp=new (buf) ee01151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee01151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee01151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(16,12), "ee01151");
+ check_base_class_offset(lv, (dd1151*), 0, "ee01151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01151.e");
+ test_class_info(&lv, &cd_ee01151);
+ dp->~ee01151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01151(Test_ee01151, "ee01151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01151C1Ev();
+extern void _ZN7ee01151D1Ev();
+Name_Map name_map_ee01151[] = {
+ NSPAIR(_ZN7ee01151C1Ev),
+ NSPAIR(_ZN7ee01151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee01151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee01151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee01151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee01151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee01151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee01151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee01151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee01151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee01151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee01151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01151[] = {
+ {&(_ZTV7ee01151[5]), 5,18},
+ {&(_tg__ZTV6dd1151__7ee01151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee01151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee01151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee01151[3]), 3,4},
+ {&(_ZTV7ee01151[9]), 9,18},
+ {&(_ZTV7ee01151[13]), 13,18},
+ {&(_ZTV7ee01151[17]), 17,18},
+ {&(_tg__ZTV5cc151__7ee01151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee01151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee01151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee01151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee01151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01151[];
+extern VTBL_ENTRY _ZTV7ee01151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01151[];
+Class_Descriptor cd_ee01151 = { "ee01151", // class name
+ bases_ee01151, 4,
+ &(vtc_ee01151[0]), // expected_vtbl_contents
+ &(vtt_ee01151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01151),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11151 : virtual dd1151 {
+ int e;
+ ~ee11151(); // tgen
+ ee11151(); // tgen
+};
+//SIG(1 ee11151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11151 ::~ee11151(){ note_dtor("ee11151", this);} // tgen
+ee11151 ::ee11151(){ note_ctor("ee11151", this);} // tgen
+
+static void Test_ee11151()
+{
+ extern Class_Descriptor cd_ee11151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11151, buf);
+ ee11151 *dp, &lv = *(dp=new (buf) ee11151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee11151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee11151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(32,16), "ee11151");
+ check_base_class_offset(lv, (dd1151*), ABISELECT(16,8), "ee11151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11151.e");
+ test_class_info(&lv, &cd_ee11151);
+ dp->~ee11151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11151(Test_ee11151, "ee11151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11151C1Ev();
+extern void _ZN7ee11151D1Ev();
+Name_Map name_map_ee11151[] = {
+ NSPAIR(_ZN7ee11151C1Ev),
+ NSPAIR(_ZN7ee11151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee11151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11151[];
+extern void _ZN4bb513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11151[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee11151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee11151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee11151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee11151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee11151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee11151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee11151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee11151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee11151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11151[] = {
+ {&(_ZTV7ee11151[6]), 6,24},
+ {&(_ZTV7ee11151[11]), 11,24},
+ {&(_ZTV7ee11151[15]), 15,24},
+ {&(_ZTV7ee11151[19]), 19,24},
+ {&(_ZTV7ee11151[23]), 23,24},
+ {&(_tg__ZTV6dd1151__7ee11151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee11151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee11151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee11151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee11151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee11151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee11151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee11151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee11151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11151[];
+extern VTBL_ENTRY _ZTV7ee11151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11151[];
+Class_Descriptor cd_ee11151 = { "ee11151", // class name
+ bases_ee11151, 4,
+ &(vtc_ee11151[0]), // expected_vtbl_contents
+ &(vtt_ee11151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11151),24, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21151 : dd1151 {
+ int e;
+ virtual void foo(); // _ZN7ee211513fooEv
+ ~ee21151(); // tgen
+ ee21151(); // tgen
+};
+//SIG(1 ee21151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21151 ::foo(){vfunc_called(this, "_ZN7ee211513fooEv");}
+ee21151 ::~ee21151(){ note_dtor("ee21151", this);} // tgen
+ee21151 ::ee21151(){ note_ctor("ee21151", this);} // tgen
+
+static void Test_ee21151()
+{
+ extern Class_Descriptor cd_ee21151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21151, buf);
+ ee21151 *dp, &lv = *(dp=new (buf) ee21151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee21151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee21151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(16,12), "ee21151");
+ check_base_class_offset(lv, (dd1151*), 0, "ee21151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21151.e");
+ test_class_info(&lv, &cd_ee21151);
+ dp->~ee21151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21151(Test_ee21151, "ee21151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21151C1Ev();
+extern void _ZN7ee21151D1Ev();
+Name_Map name_map_ee21151[] = {
+ NSPAIR(_ZN7ee21151C1Ev),
+ NSPAIR(_ZN7ee21151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee21151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21151[];
+extern void _ZN7ee211513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211513fooEv,_ZTv0_n12_N7ee211513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee211513fooEv,_ZThn28_N7ee211513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21151[0]),
+ (VTBL_ENTRY)&_ZN7ee211513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211513fooEv,_ZTv0_n12_N7ee211513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee21151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee21151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee21151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee21151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee21151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee21151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee21151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee21151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee21151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21151[] = {
+ {&(_ZTV7ee21151[5]), 5,19},
+ {&(_tg__ZTV6dd1151__7ee21151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee21151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee21151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee21151[3]), 3,4},
+ {&(_ZTV7ee21151[10]), 10,19},
+ {&(_ZTV7ee21151[14]), 14,19},
+ {&(_ZTV7ee21151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee21151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee21151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee21151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee21151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee21151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21151[];
+extern VTBL_ENTRY _ZTV7ee21151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21151[];
+static VTBL_ENTRY alt_thunk_names493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211513fooEv,_ZTv0_n12_N7ee211513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee211513fooEv,_ZThn28_N7ee211513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21151 = { "ee21151", // class name
+ bases_ee21151, 4,
+ &(vtc_ee21151[0]), // expected_vtbl_contents
+ &(vtt_ee21151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names493,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31151 : virtual dd1151 {
+ int e;
+ virtual void foo(); // _ZN7ee311513fooEv
+ ~ee31151(); // tgen
+ ee31151(); // tgen
+};
+//SIG(1 ee31151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31151 ::foo(){vfunc_called(this, "_ZN7ee311513fooEv");}
+ee31151 ::~ee31151(){ note_dtor("ee31151", this);} // tgen
+ee31151 ::ee31151(){ note_ctor("ee31151", this);} // tgen
+
+static void Test_ee31151()
+{
+ extern Class_Descriptor cd_ee31151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31151, buf);
+ ee31151 *dp, &lv = *(dp=new (buf) ee31151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee31151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee31151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(32,16), "ee31151");
+ check_base_class_offset(lv, (dd1151*), ABISELECT(16,8), "ee31151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31151.e");
+ test_class_info(&lv, &cd_ee31151);
+ dp->~ee31151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31151(Test_ee31151, "ee31151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31151C1Ev();
+extern void _ZN7ee31151D1Ev();
+Name_Map name_map_ee31151[] = {
+ NSPAIR(_ZN7ee31151C1Ev),
+ NSPAIR(_ZN7ee31151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee31151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31151[];
+extern void _ZN7ee311513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311513fooEv,_ZTv0_n12_N7ee311513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee311513fooEv,_ZThn32_N7ee311513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31151[0]),
+ (VTBL_ENTRY)&_ZN7ee311513fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311513fooEv,_ZTv0_n12_N7ee311513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee31151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee31151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee31151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee31151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee31151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee31151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee31151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee31151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee31151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31151[] = {
+ {&(_ZTV7ee31151[6]), 6,25},
+ {&(_ZTV7ee31151[12]), 12,25},
+ {&(_ZTV7ee31151[16]), 16,25},
+ {&(_ZTV7ee31151[20]), 20,25},
+ {&(_ZTV7ee31151[24]), 24,25},
+ {&(_tg__ZTV6dd1151__7ee31151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee31151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee31151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee31151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee31151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee31151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee31151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee31151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee31151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31151[];
+extern VTBL_ENTRY _ZTV7ee31151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31151[];
+static VTBL_ENTRY alt_thunk_names494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311513fooEv,_ZTv0_n12_N7ee311513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee311513fooEv,_ZThn32_N7ee311513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31151 = { "ee31151", // class name
+ bases_ee31151, 4,
+ &(vtc_ee31151[0]), // expected_vtbl_contents
+ &(vtt_ee31151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31151),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names494,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41151 : dd1151 {
+ int e;
+ virtual void bar(); // _ZN7ee411513barEv
+ ~ee41151(); // tgen
+ ee41151(); // tgen
+};
+//SIG(1 ee41151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41151 ::bar(){vfunc_called(this, "_ZN7ee411513barEv");}
+ee41151 ::~ee41151(){ note_dtor("ee41151", this);} // tgen
+ee41151 ::ee41151(){ note_ctor("ee41151", this);} // tgen
+
+static void Test_ee41151()
+{
+ extern Class_Descriptor cd_ee41151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41151, buf);
+ ee41151 *dp, &lv = *(dp=new (buf) ee41151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee41151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee41151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(16,12), "ee41151");
+ check_base_class_offset(lv, (dd1151*), 0, "ee41151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41151.e");
+ test_class_info(&lv, &cd_ee41151);
+ dp->~ee41151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41151(Test_ee41151, "ee41151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41151C1Ev();
+extern void _ZN7ee41151D1Ev();
+Name_Map name_map_ee41151[] = {
+ NSPAIR(_ZN7ee41151C1Ev),
+ NSPAIR(_ZN7ee41151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee41151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41151[];
+extern void _ZN7ee411513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411513barEv,_ZTv0_n16_N7ee411513barEv)();
+extern void ABISELECT(_ZThn32_N7ee411513barEv,_ZThn20_N7ee411513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41151[0]),
+ (VTBL_ENTRY)&_ZN7ee411513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411513barEv,_ZTv0_n16_N7ee411513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee41151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee41151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee41151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee41151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee41151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee41151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee41151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee41151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee41151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41151[] = {
+ {&(_ZTV7ee41151[5]), 5,19},
+ {&(_tg__ZTV6dd1151__7ee41151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee41151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee41151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee41151[3]), 3,4},
+ {&(_ZTV7ee41151[10]), 10,19},
+ {&(_ZTV7ee41151[14]), 14,19},
+ {&(_ZTV7ee41151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee41151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee41151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee41151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee41151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee41151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41151[];
+extern VTBL_ENTRY _ZTV7ee41151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41151[];
+static VTBL_ENTRY alt_thunk_names495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411513barEv,_ZTv0_n16_N7ee411513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411513barEv,_ZThn20_N7ee411513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41151 = { "ee41151", // class name
+ bases_ee41151, 4,
+ &(vtc_ee41151[0]), // expected_vtbl_contents
+ &(vtt_ee41151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names495,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51151 : virtual dd1151 {
+ int e;
+ virtual void bar(); // _ZN7ee511513barEv
+ ~ee51151(); // tgen
+ ee51151(); // tgen
+};
+//SIG(1 ee51151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51151 ::bar(){vfunc_called(this, "_ZN7ee511513barEv");}
+ee51151 ::~ee51151(){ note_dtor("ee51151", this);} // tgen
+ee51151 ::ee51151(){ note_ctor("ee51151", this);} // tgen
+
+static void Test_ee51151()
+{
+ extern Class_Descriptor cd_ee51151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51151, buf);
+ ee51151 *dp, &lv = *(dp=new (buf) ee51151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee51151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee51151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(32,16), "ee51151");
+ check_base_class_offset(lv, (dd1151*), ABISELECT(16,8), "ee51151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51151.e");
+ test_class_info(&lv, &cd_ee51151);
+ dp->~ee51151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51151(Test_ee51151, "ee51151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51151C1Ev();
+extern void _ZN7ee51151D1Ev();
+Name_Map name_map_ee51151[] = {
+ NSPAIR(_ZN7ee51151C1Ev),
+ NSPAIR(_ZN7ee51151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee51151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51151[];
+extern void _ZN7ee511513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511513barEv,_ZTv0_n16_N7ee511513barEv)();
+extern void ABISELECT(_ZThn48_N7ee511513barEv,_ZThn24_N7ee511513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51151[0]),
+ (VTBL_ENTRY)&_ZN7ee511513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511513barEv,_ZTv0_n16_N7ee511513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee51151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee51151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee51151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee51151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee51151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee51151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee51151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee51151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee51151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51151[] = {
+ {&(_ZTV7ee51151[6]), 6,25},
+ {&(_ZTV7ee51151[12]), 12,25},
+ {&(_ZTV7ee51151[16]), 16,25},
+ {&(_ZTV7ee51151[20]), 20,25},
+ {&(_ZTV7ee51151[24]), 24,25},
+ {&(_tg__ZTV6dd1151__7ee51151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee51151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee51151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee51151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee51151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee51151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee51151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee51151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee51151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51151[];
+extern VTBL_ENTRY _ZTV7ee51151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51151[];
+static VTBL_ENTRY alt_thunk_names496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511513barEv,_ZTv0_n16_N7ee511513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511513barEv,_ZThn24_N7ee511513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51151 = { "ee51151", // class name
+ bases_ee51151, 4,
+ &(vtc_ee51151[0]), // expected_vtbl_contents
+ &(vtt_ee51151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51151),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names496,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61151 : dd1151 {
+ int e;
+ virtual void foo(); // _ZN7ee611513fooEv
+ virtual void bar(); // _ZN7ee611513barEv
+ ~ee61151(); // tgen
+ ee61151(); // tgen
+};
+//SIG(1 ee61151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61151 ::foo(){vfunc_called(this, "_ZN7ee611513fooEv");}
+void ee61151 ::bar(){vfunc_called(this, "_ZN7ee611513barEv");}
+ee61151 ::~ee61151(){ note_dtor("ee61151", this);} // tgen
+ee61151 ::ee61151(){ note_ctor("ee61151", this);} // tgen
+
+static void Test_ee61151()
+{
+ extern Class_Descriptor cd_ee61151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61151, buf);
+ ee61151 *dp, &lv = *(dp=new (buf) ee61151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee61151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee61151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(16,12), "ee61151");
+ check_base_class_offset(lv, (dd1151*), 0, "ee61151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61151.e");
+ test_class_info(&lv, &cd_ee61151);
+ dp->~ee61151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61151(Test_ee61151, "ee61151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61151C1Ev();
+extern void _ZN7ee61151D1Ev();
+Name_Map name_map_ee61151[] = {
+ NSPAIR(_ZN7ee61151C1Ev),
+ NSPAIR(_ZN7ee61151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee61151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61151[];
+extern void _ZN7ee611513fooEv();
+extern void _ZN7ee611513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee611513barEv,_ZTv0_n16_N7ee611513barEv)();
+extern void ABISELECT(_ZThn32_N7ee611513barEv,_ZThn20_N7ee611513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee611513fooEv,_ZTv0_n12_N7ee611513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee611513fooEv,_ZThn28_N7ee611513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61151[0]),
+ (VTBL_ENTRY)&_ZN7ee611513fooEv,
+ (VTBL_ENTRY)&_ZN7ee611513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611513barEv,_ZTv0_n16_N7ee611513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611513fooEv,_ZTv0_n12_N7ee611513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee61151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee61151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee61151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee61151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee61151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee61151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee61151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee61151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee61151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61151[] = {
+ {&(_ZTV7ee61151[5]), 5,20},
+ {&(_tg__ZTV6dd1151__7ee61151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee61151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee61151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee61151[3]), 3,4},
+ {&(_ZTV7ee61151[11]), 11,20},
+ {&(_ZTV7ee61151[15]), 15,20},
+ {&(_ZTV7ee61151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee61151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee61151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee61151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee61151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee61151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61151[];
+extern VTBL_ENTRY _ZTV7ee61151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61151[];
+static VTBL_ENTRY alt_thunk_names497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611513fooEv,_ZTv0_n12_N7ee611513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee611513fooEv,_ZThn28_N7ee611513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611513barEv,_ZTv0_n16_N7ee611513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611513barEv,_ZThn20_N7ee611513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61151 = { "ee61151", // class name
+ bases_ee61151, 4,
+ &(vtc_ee61151[0]), // expected_vtbl_contents
+ &(vtt_ee61151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names497,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71151 : virtual dd1151 {
+ int e;
+ virtual void foo(); // _ZN7ee711513fooEv
+ virtual void bar(); // _ZN7ee711513barEv
+ ~ee71151(); // tgen
+ ee71151(); // tgen
+};
+//SIG(1 ee71151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71151 ::foo(){vfunc_called(this, "_ZN7ee711513fooEv");}
+void ee71151 ::bar(){vfunc_called(this, "_ZN7ee711513barEv");}
+ee71151 ::~ee71151(){ note_dtor("ee71151", this);} // tgen
+ee71151 ::ee71151(){ note_ctor("ee71151", this);} // tgen
+
+static void Test_ee71151()
+{
+ extern Class_Descriptor cd_ee71151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71151, buf);
+ ee71151 *dp, &lv = *(dp=new (buf) ee71151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee71151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee71151");
+ check_base_class_offset(lv, (cc151*)(dd1151*), ABISELECT(32,16), "ee71151");
+ check_base_class_offset(lv, (dd1151*), ABISELECT(16,8), "ee71151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71151.e");
+ test_class_info(&lv, &cd_ee71151);
+ dp->~ee71151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71151(Test_ee71151, "ee71151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71151C1Ev();
+extern void _ZN7ee71151D1Ev();
+Name_Map name_map_ee71151[] = {
+ NSPAIR(_ZN7ee71151C1Ev),
+ NSPAIR(_ZN7ee71151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd1151;
+extern VTBL_ENTRY _ZTI6dd1151[];
+extern VTBL_ENTRY _ZTV6dd1151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1151[];
+static Base_Class bases_ee71151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1151, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71151[];
+extern void _ZN7ee711513fooEv();
+extern void _ZN7ee711513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee711513barEv,_ZTv0_n16_N7ee711513barEv)();
+extern void ABISELECT(_ZThn48_N7ee711513barEv,_ZThn24_N7ee711513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee711513fooEv,_ZTv0_n12_N7ee711513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee711513fooEv,_ZThn32_N7ee711513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71151[0]),
+ (VTBL_ENTRY)&_ZN7ee711513fooEv,
+ (VTBL_ENTRY)&_ZN7ee711513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71151[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711513barEv,_ZTv0_n16_N7ee711513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711513fooEv,_ZTv0_n12_N7ee711513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71151[];
+static VTBL_ENTRY _tg__ZTV6dd1151__7ee71151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd1151__7ee71151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1151__7ee71151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1151__7ee71151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee71151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee71151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee71151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee71151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee71151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71151[] = {
+ {&(_ZTV7ee71151[6]), 6,26},
+ {&(_ZTV7ee71151[13]), 13,26},
+ {&(_ZTV7ee71151[17]), 17,26},
+ {&(_ZTV7ee71151[21]), 21,26},
+ {&(_ZTV7ee71151[25]), 25,26},
+ {&(_tg__ZTV6dd1151__7ee71151[5]), 5,5},
+ {&(_tg__ZTV5cc151__6dd1151__7ee71151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd1151__7ee71151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1151__7ee71151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee71151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee71151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee71151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee71151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee71151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71151[];
+extern VTBL_ENTRY _ZTV7ee71151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71151[];
+static VTBL_ENTRY alt_thunk_names498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711513fooEv,_ZTv0_n12_N7ee711513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee711513fooEv,_ZThn32_N7ee711513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711513barEv,_ZTv0_n16_N7ee711513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711513barEv,_ZThn24_N7ee711513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71151 = { "ee71151", // class name
+ bases_ee71151, 4,
+ &(vtc_ee71151[0]), // expected_vtbl_contents
+ &(vtt_ee71151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71151),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names498,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2151 : cc151 {
+ int d;
+ virtual void foo(); // _ZN6dd21513fooEv
+ ~dd2151(); // tgen
+ dd2151(); // tgen
+};
+//SIG(-1 dd2151) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2151 ::foo(){vfunc_called(this, "_ZN6dd21513fooEv");}
+dd2151 ::~dd2151(){ note_dtor("dd2151", this);} // tgen
+dd2151 ::dd2151(){ note_ctor("dd2151", this);} // tgen
+
+static void Test_dd2151()
+{
+ extern Class_Descriptor cd_dd2151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2151, buf);
+ dd2151 *dp, &lv = *(dp=new (buf) dd2151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd2151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(16,12), "dd2151");
+ check_base_class_offset(lv, (cc151*), 0, "dd2151");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2151.d");
+ test_class_info(&lv, &cd_dd2151);
+ dp->~dd2151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2151(Test_dd2151, "dd2151", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2151C1Ev();
+extern void _ZN6dd2151D1Ev();
+Name_Map name_map_dd2151[] = {
+ NSPAIR(_ZN6dd2151C1Ev),
+ NSPAIR(_ZN6dd2151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd2151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern void _ZN6dd21513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd2151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd2151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd2151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd2151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2151[] = {
+ {&(_ZTV6dd2151[4]), 4,14},
+ {&(_tg__ZTV5cc151__6dd2151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd2151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd2151[3]), 3,4},
+ {&(_ZTV6dd2151[9]), 9,14},
+ {&(_ZTV6dd2151[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd2151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd2151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static VTBL_ENTRY alt_thunk_names499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2151 = { "dd2151", // class name
+ bases_dd2151, 3,
+ &(vtc_dd2151[0]), // expected_vtbl_contents
+ &(vtt_dd2151[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2151),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02151 : dd2151 {
+ int e;
+ ~ee02151(); // tgen
+ ee02151(); // tgen
+};
+//SIG(1 ee02151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02151 ::~ee02151(){ note_dtor("ee02151", this);} // tgen
+ee02151 ::ee02151(){ note_ctor("ee02151", this);} // tgen
+
+static void Test_ee02151()
+{
+ extern Class_Descriptor cd_ee02151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02151, buf);
+ ee02151 *dp, &lv = *(dp=new (buf) ee02151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee02151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(24,16), "ee02151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), 0, "ee02151");
+ check_base_class_offset(lv, (dd2151*), 0, "ee02151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02151.e");
+ test_class_info(&lv, &cd_ee02151);
+ dp->~ee02151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02151(Test_ee02151, "ee02151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02151C1Ev();
+extern void _ZN7ee02151D1Ev();
+Name_Map name_map_ee02151[] = {
+ NSPAIR(_ZN7ee02151C1Ev),
+ NSPAIR(_ZN7ee02151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee02151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02151[];
+extern void _ZN6dd21513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee02151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee02151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee02151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee02151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee02151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee02151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee02151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee02151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee02151[] = {
+ {&(_ZTV7ee02151[4]), 4,14},
+ {&(_tg__ZTV6dd2151__7ee02151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee02151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee02151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee02151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee02151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee02151[3]), 3,4},
+ {&(_ZTV7ee02151[9]), 9,14},
+ {&(_ZTV7ee02151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee02151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee02151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02151[];
+extern VTBL_ENTRY _ZTV7ee02151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02151[];
+static VTBL_ENTRY alt_thunk_names500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02151 = { "ee02151", // class name
+ bases_ee02151, 4,
+ &(vtc_ee02151[0]), // expected_vtbl_contents
+ &(vtt_ee02151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names500,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12151 : virtual dd2151 {
+ int e;
+ ~ee12151(); // tgen
+ ee12151(); // tgen
+};
+//SIG(1 ee12151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12151 ::~ee12151(){ note_dtor("ee12151", this);} // tgen
+ee12151 ::ee12151(){ note_ctor("ee12151", this);} // tgen
+
+static void Test_ee12151()
+{
+ extern Class_Descriptor cd_ee12151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12151, buf);
+ ee12151 *dp, &lv = *(dp=new (buf) ee12151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee12151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(32,20), "ee12151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), ABISELECT(16,8), "ee12151");
+ check_base_class_offset(lv, (dd2151*), ABISELECT(16,8), "ee12151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12151.e");
+ test_class_info(&lv, &cd_ee12151);
+ dp->~ee12151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12151(Test_ee12151, "ee12151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12151C1Ev();
+extern void _ZN7ee12151D1Ev();
+Name_Map name_map_ee12151[] = {
+ NSPAIR(_ZN7ee12151C1Ev),
+ NSPAIR(_ZN7ee12151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee12151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12151[];
+extern void _ZN6dd21513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12151[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee12151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee12151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee12151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee12151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee12151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee12151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee12151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee12151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee12151[] = {
+ {&(_ZTV7ee12151[5]), 5,20},
+ {&(_ZTV7ee12151[10]), 10,20},
+ {&(_ZTV7ee12151[15]), 15,20},
+ {&(_ZTV7ee12151[19]), 19,20},
+ {&(_tg__ZTV6dd2151__7ee12151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee12151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee12151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee12151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee12151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee12151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee12151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee12151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12151[];
+extern VTBL_ENTRY _ZTV7ee12151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12151[];
+static VTBL_ENTRY alt_thunk_names501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12151 = { "ee12151", // class name
+ bases_ee12151, 4,
+ &(vtc_ee12151[0]), // expected_vtbl_contents
+ &(vtt_ee12151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names501,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22151 : dd2151 {
+ int e;
+ virtual void foo(); // _ZN7ee221513fooEv
+ ~ee22151(); // tgen
+ ee22151(); // tgen
+};
+//SIG(1 ee22151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22151 ::foo(){vfunc_called(this, "_ZN7ee221513fooEv");}
+ee22151 ::~ee22151(){ note_dtor("ee22151", this);} // tgen
+ee22151 ::ee22151(){ note_ctor("ee22151", this);} // tgen
+
+static void Test_ee22151()
+{
+ extern Class_Descriptor cd_ee22151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22151, buf);
+ ee22151 *dp, &lv = *(dp=new (buf) ee22151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee22151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(24,16), "ee22151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), 0, "ee22151");
+ check_base_class_offset(lv, (dd2151*), 0, "ee22151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22151.e");
+ test_class_info(&lv, &cd_ee22151);
+ dp->~ee22151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22151(Test_ee22151, "ee22151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22151C1Ev();
+extern void _ZN7ee22151D1Ev();
+Name_Map name_map_ee22151[] = {
+ NSPAIR(_ZN7ee22151C1Ev),
+ NSPAIR(_ZN7ee22151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee22151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22151[];
+extern void _ZN7ee221513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221513fooEv,_ZTv0_n12_N7ee221513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee221513fooEv,_ZThn24_N7ee221513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22151[0]),
+ (VTBL_ENTRY)&_ZN7ee221513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221513fooEv,_ZTv0_n12_N7ee221513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee22151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee22151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee22151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee22151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee22151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee22151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee22151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee22151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee22151[] = {
+ {&(_ZTV7ee22151[4]), 4,14},
+ {&(_tg__ZTV6dd2151__7ee22151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee22151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee22151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee22151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee22151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee22151[3]), 3,4},
+ {&(_ZTV7ee22151[9]), 9,14},
+ {&(_ZTV7ee22151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee22151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee22151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22151[];
+extern VTBL_ENTRY _ZTV7ee22151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22151[];
+static VTBL_ENTRY alt_thunk_names502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221513fooEv,_ZTv0_n12_N7ee221513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee221513fooEv,_ZThn24_N7ee221513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22151 = { "ee22151", // class name
+ bases_ee22151, 4,
+ &(vtc_ee22151[0]), // expected_vtbl_contents
+ &(vtt_ee22151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names502,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32151 : virtual dd2151 {
+ int e;
+ virtual void foo(); // _ZN7ee321513fooEv
+ ~ee32151(); // tgen
+ ee32151(); // tgen
+};
+//SIG(1 ee32151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32151 ::foo(){vfunc_called(this, "_ZN7ee321513fooEv");}
+ee32151 ::~ee32151(){ note_dtor("ee32151", this);} // tgen
+ee32151 ::ee32151(){ note_ctor("ee32151", this);} // tgen
+
+static void Test_ee32151()
+{
+ extern Class_Descriptor cd_ee32151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32151, buf);
+ ee32151 *dp, &lv = *(dp=new (buf) ee32151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee32151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(32,20), "ee32151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), ABISELECT(16,8), "ee32151");
+ check_base_class_offset(lv, (dd2151*), ABISELECT(16,8), "ee32151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32151.e");
+ test_class_info(&lv, &cd_ee32151);
+ dp->~ee32151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32151(Test_ee32151, "ee32151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32151C1Ev();
+extern void _ZN7ee32151D1Ev();
+Name_Map name_map_ee32151[] = {
+ NSPAIR(_ZN7ee32151C1Ev),
+ NSPAIR(_ZN7ee32151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee32151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32151[];
+extern void _ZN7ee321513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee321513fooEv,_ZTv0_n20_N7ee321513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321513fooEv,_ZThn8_N7ee321513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee321513fooEv,_ZTv0_n12_N7ee321513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee321513fooEv,_ZThn28_N7ee321513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32151[0]),
+ (VTBL_ENTRY)&_ZN7ee321513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee321513fooEv,_ZTv0_n20_N7ee321513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321513fooEv,_ZTv0_n12_N7ee321513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee32151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee32151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee32151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee32151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee32151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee32151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee32151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee32151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee32151[] = {
+ {&(_ZTV7ee32151[5]), 5,21},
+ {&(_ZTV7ee32151[11]), 11,21},
+ {&(_ZTV7ee32151[16]), 16,21},
+ {&(_ZTV7ee32151[20]), 20,21},
+ {&(_tg__ZTV6dd2151__7ee32151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee32151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee32151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee32151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee32151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee32151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee32151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee32151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32151[];
+extern VTBL_ENTRY _ZTV7ee32151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32151[];
+static VTBL_ENTRY alt_thunk_names503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321513fooEv,_ZTv0_n12_N7ee321513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee321513fooEv,_ZThn28_N7ee321513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee321513fooEv,_ZTv0_n20_N7ee321513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321513fooEv,_ZThn8_N7ee321513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32151 = { "ee32151", // class name
+ bases_ee32151, 4,
+ &(vtc_ee32151[0]), // expected_vtbl_contents
+ &(vtt_ee32151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32151),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names503,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42151 : dd2151 {
+ int e;
+ virtual void bar(); // _ZN7ee421513barEv
+ ~ee42151(); // tgen
+ ee42151(); // tgen
+};
+//SIG(1 ee42151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42151 ::bar(){vfunc_called(this, "_ZN7ee421513barEv");}
+ee42151 ::~ee42151(){ note_dtor("ee42151", this);} // tgen
+ee42151 ::ee42151(){ note_ctor("ee42151", this);} // tgen
+
+static void Test_ee42151()
+{
+ extern Class_Descriptor cd_ee42151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42151, buf);
+ ee42151 *dp, &lv = *(dp=new (buf) ee42151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee42151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(24,16), "ee42151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), 0, "ee42151");
+ check_base_class_offset(lv, (dd2151*), 0, "ee42151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42151.e");
+ test_class_info(&lv, &cd_ee42151);
+ dp->~ee42151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42151(Test_ee42151, "ee42151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42151C1Ev();
+extern void _ZN7ee42151D1Ev();
+Name_Map name_map_ee42151[] = {
+ NSPAIR(_ZN7ee42151C1Ev),
+ NSPAIR(_ZN7ee42151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee42151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42151[];
+extern void _ZN6dd21513fooEv();
+extern void _ZN7ee421513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee421513barEv,_ZTv0_n16_N7ee421513barEv)();
+extern void ABISELECT(_ZThn24_N7ee421513barEv,_ZThn16_N7ee421513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+ (VTBL_ENTRY)&_ZN7ee421513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421513barEv,_ZTv0_n16_N7ee421513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee42151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee42151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee42151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee42151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee42151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee42151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee42151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee42151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee42151[] = {
+ {&(_ZTV7ee42151[4]), 4,15},
+ {&(_tg__ZTV6dd2151__7ee42151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee42151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee42151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee42151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee42151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee42151[3]), 3,4},
+ {&(_ZTV7ee42151[10]), 10,15},
+ {&(_ZTV7ee42151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee42151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee42151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42151[];
+extern VTBL_ENTRY _ZTV7ee42151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42151[];
+static VTBL_ENTRY alt_thunk_names504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421513barEv,_ZTv0_n16_N7ee421513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421513barEv,_ZThn16_N7ee421513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42151 = { "ee42151", // class name
+ bases_ee42151, 4,
+ &(vtc_ee42151[0]), // expected_vtbl_contents
+ &(vtt_ee42151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names504,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52151 : virtual dd2151 {
+ int e;
+ virtual void bar(); // _ZN7ee521513barEv
+ ~ee52151(); // tgen
+ ee52151(); // tgen
+};
+//SIG(1 ee52151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52151 ::bar(){vfunc_called(this, "_ZN7ee521513barEv");}
+ee52151 ::~ee52151(){ note_dtor("ee52151", this);} // tgen
+ee52151 ::ee52151(){ note_ctor("ee52151", this);} // tgen
+
+static void Test_ee52151()
+{
+ extern Class_Descriptor cd_ee52151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52151, buf);
+ ee52151 *dp, &lv = *(dp=new (buf) ee52151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee52151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(32,20), "ee52151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), ABISELECT(16,8), "ee52151");
+ check_base_class_offset(lv, (dd2151*), ABISELECT(16,8), "ee52151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52151.e");
+ test_class_info(&lv, &cd_ee52151);
+ dp->~ee52151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52151(Test_ee52151, "ee52151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52151C1Ev();
+extern void _ZN7ee52151D1Ev();
+Name_Map name_map_ee52151[] = {
+ NSPAIR(_ZN7ee52151C1Ev),
+ NSPAIR(_ZN7ee52151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee52151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52151[];
+extern void _ZN7ee521513barEv();
+extern void _ZN6dd21513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee521513barEv,_ZTv0_n16_N7ee521513barEv)();
+extern void ABISELECT(_ZThn32_N7ee521513barEv,_ZThn20_N7ee521513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52151[0]),
+ (VTBL_ENTRY)&_ZN7ee521513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521513barEv,_ZTv0_n16_N7ee521513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee52151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee52151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee52151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee52151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee52151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee52151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee52151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee52151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee52151[] = {
+ {&(_ZTV7ee52151[5]), 5,21},
+ {&(_ZTV7ee52151[11]), 11,21},
+ {&(_ZTV7ee52151[16]), 16,21},
+ {&(_ZTV7ee52151[20]), 20,21},
+ {&(_tg__ZTV6dd2151__7ee52151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee52151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee52151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee52151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee52151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee52151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee52151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee52151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52151[];
+extern VTBL_ENTRY _ZTV7ee52151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52151[];
+static VTBL_ENTRY alt_thunk_names505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521513barEv,_ZTv0_n16_N7ee521513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521513barEv,_ZThn20_N7ee521513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52151 = { "ee52151", // class name
+ bases_ee52151, 4,
+ &(vtc_ee52151[0]), // expected_vtbl_contents
+ &(vtt_ee52151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52151),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names505,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62151 : dd2151 {
+ int e;
+ virtual void foo(); // _ZN7ee621513fooEv
+ virtual void bar(); // _ZN7ee621513barEv
+ ~ee62151(); // tgen
+ ee62151(); // tgen
+};
+//SIG(1 ee62151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62151 ::foo(){vfunc_called(this, "_ZN7ee621513fooEv");}
+void ee62151 ::bar(){vfunc_called(this, "_ZN7ee621513barEv");}
+ee62151 ::~ee62151(){ note_dtor("ee62151", this);} // tgen
+ee62151 ::ee62151(){ note_ctor("ee62151", this);} // tgen
+
+static void Test_ee62151()
+{
+ extern Class_Descriptor cd_ee62151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62151, buf);
+ ee62151 *dp, &lv = *(dp=new (buf) ee62151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee62151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(24,16), "ee62151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), 0, "ee62151");
+ check_base_class_offset(lv, (dd2151*), 0, "ee62151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62151.e");
+ test_class_info(&lv, &cd_ee62151);
+ dp->~ee62151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62151(Test_ee62151, "ee62151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62151C1Ev();
+extern void _ZN7ee62151D1Ev();
+Name_Map name_map_ee62151[] = {
+ NSPAIR(_ZN7ee62151C1Ev),
+ NSPAIR(_ZN7ee62151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee62151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62151[];
+extern void _ZN7ee621513fooEv();
+extern void _ZN7ee621513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee621513barEv,_ZTv0_n16_N7ee621513barEv)();
+extern void ABISELECT(_ZThn24_N7ee621513barEv,_ZThn16_N7ee621513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee621513fooEv,_ZTv0_n12_N7ee621513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee621513fooEv,_ZThn24_N7ee621513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62151[0]),
+ (VTBL_ENTRY)&_ZN7ee621513fooEv,
+ (VTBL_ENTRY)&_ZN7ee621513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621513barEv,_ZTv0_n16_N7ee621513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621513fooEv,_ZTv0_n12_N7ee621513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee62151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee62151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee62151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee62151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee62151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee62151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee62151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee62151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee62151[] = {
+ {&(_ZTV7ee62151[4]), 4,15},
+ {&(_tg__ZTV6dd2151__7ee62151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee62151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee62151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee62151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee62151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee62151[3]), 3,4},
+ {&(_ZTV7ee62151[10]), 10,15},
+ {&(_ZTV7ee62151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee62151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee62151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62151[];
+extern VTBL_ENTRY _ZTV7ee62151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62151[];
+static VTBL_ENTRY alt_thunk_names506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21513fooEv,_ZThn24_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621513fooEv,_ZTv0_n12_N7ee621513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee621513fooEv,_ZThn24_N7ee621513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621513barEv,_ZTv0_n16_N7ee621513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621513barEv,_ZThn16_N7ee621513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62151 = { "ee62151", // class name
+ bases_ee62151, 4,
+ &(vtc_ee62151[0]), // expected_vtbl_contents
+ &(vtt_ee62151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names506,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72151 : virtual dd2151 {
+ int e;
+ virtual void foo(); // _ZN7ee721513fooEv
+ virtual void bar(); // _ZN7ee721513barEv
+ ~ee72151(); // tgen
+ ee72151(); // tgen
+};
+//SIG(1 ee72151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72151 ::foo(){vfunc_called(this, "_ZN7ee721513fooEv");}
+void ee72151 ::bar(){vfunc_called(this, "_ZN7ee721513barEv");}
+ee72151 ::~ee72151(){ note_dtor("ee72151", this);} // tgen
+ee72151 ::ee72151(){ note_ctor("ee72151", this);} // tgen
+
+static void Test_ee72151()
+{
+ extern Class_Descriptor cd_ee72151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72151, buf);
+ ee72151 *dp, &lv = *(dp=new (buf) ee72151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee72151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd2151*), ABISELECT(32,20), "ee72151");
+ check_base_class_offset(lv, (cc151*)(dd2151*), ABISELECT(16,8), "ee72151");
+ check_base_class_offset(lv, (dd2151*), ABISELECT(16,8), "ee72151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72151.e");
+ test_class_info(&lv, &cd_ee72151);
+ dp->~ee72151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72151(Test_ee72151, "ee72151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72151C1Ev();
+extern void _ZN7ee72151D1Ev();
+Name_Map name_map_ee72151[] = {
+ NSPAIR(_ZN7ee72151C1Ev),
+ NSPAIR(_ZN7ee72151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd2151;
+extern VTBL_ENTRY _ZTI6dd2151[];
+extern VTBL_ENTRY _ZTV6dd2151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2151[];
+static Base_Class bases_ee72151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72151[];
+extern void _ZN7ee721513fooEv();
+extern void _ZN7ee721513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee721513fooEv,_ZTv0_n20_N7ee721513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721513fooEv,_ZThn8_N7ee721513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721513barEv,_ZTv0_n16_N7ee721513barEv)();
+extern void ABISELECT(_ZThn32_N7ee721513barEv,_ZThn20_N7ee721513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721513fooEv,_ZTv0_n12_N7ee721513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee721513fooEv,_ZThn28_N7ee721513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72151[0]),
+ (VTBL_ENTRY)&_ZN7ee721513fooEv,
+ (VTBL_ENTRY)&_ZN7ee721513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee721513fooEv,_ZTv0_n20_N7ee721513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721513barEv,_ZTv0_n16_N7ee721513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721513fooEv,_ZTv0_n12_N7ee721513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72151[];
+extern void _ZN6dd21513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2151__7ee72151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN6dd21513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd2151__7ee72151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd2151__7ee72151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd2151__7ee72151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2151__7ee72151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2151__7ee72151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee72151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee72151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee72151[] = {
+ {&(_ZTV7ee72151[5]), 5,22},
+ {&(_ZTV7ee72151[12]), 12,22},
+ {&(_ZTV7ee72151[17]), 17,22},
+ {&(_ZTV7ee72151[21]), 21,22},
+ {&(_tg__ZTV6dd2151__7ee72151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd2151__7ee72151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd2151__7ee72151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd2151__7ee72151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2151__7ee72151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2151__7ee72151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee72151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee72151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72151[];
+extern VTBL_ENTRY _ZTV7ee72151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72151[];
+static VTBL_ENTRY alt_thunk_names507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21513fooEv,_ZTv0_n12_N6dd21513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21513fooEv,_ZThn20_N6dd21513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721513fooEv,_ZTv0_n12_N7ee721513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee721513fooEv,_ZThn28_N7ee721513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721513barEv,_ZTv0_n16_N7ee721513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721513barEv,_ZThn20_N7ee721513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee721513fooEv,_ZTv0_n20_N7ee721513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721513fooEv,_ZThn8_N7ee721513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72151 = { "ee72151", // class name
+ bases_ee72151, 4,
+ &(vtc_ee72151[0]), // expected_vtbl_contents
+ &(vtt_ee72151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72151),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names507,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3151 : virtual cc151 {
+ int d;
+ virtual void foo(); // _ZN6dd31513fooEv
+ ~dd3151(); // tgen
+ dd3151(); // tgen
+};
+//SIG(-1 dd3151) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3151 ::foo(){vfunc_called(this, "_ZN6dd31513fooEv");}
+dd3151 ::~dd3151(){ note_dtor("dd3151", this);} // tgen
+dd3151 ::dd3151(){ note_ctor("dd3151", this);} // tgen
+
+static void Test_dd3151()
+{
+ extern Class_Descriptor cd_dd3151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3151, buf);
+ dd3151 *dp, &lv = *(dp=new (buf) dd3151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd3151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,16), "dd3151");
+ check_base_class_offset(lv, (cc151*), ABISELECT(16,8), "dd3151");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3151.d");
+ test_class_info(&lv, &cd_dd3151);
+ dp->~dd3151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3151(Test_dd3151, "dd3151", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3151C1Ev();
+extern void _ZN6dd3151D1Ev();
+Name_Map name_map_dd3151[] = {
+ NSPAIR(_ZN6dd3151C1Ev),
+ NSPAIR(_ZN6dd3151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd3151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern void _ZN6dd31513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd3151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd3151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd3151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3151[] = {
+ {&(_ZTV6dd3151[5]), 5,19},
+ {&(_ZTV6dd3151[10]), 10,19},
+ {&(_ZTV6dd3151[14]), 14,19},
+ {&(_ZTV6dd3151[18]), 18,19},
+ {&(_tg__ZTV5cc151__6dd3151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd3151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd3151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd3151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd3151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static VTBL_ENTRY alt_thunk_names508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3151 = { "dd3151", // class name
+ bases_dd3151, 3,
+ &(vtc_dd3151[0]), // expected_vtbl_contents
+ &(vtt_dd3151[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3151),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names508,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03151 : dd3151 {
+ int e;
+ ~ee03151(); // tgen
+ ee03151(); // tgen
+};
+//SIG(1 ee03151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03151 ::~ee03151(){ note_dtor("ee03151", this);} // tgen
+ee03151 ::ee03151(){ note_ctor("ee03151", this);} // tgen
+
+static void Test_ee03151()
+{
+ extern Class_Descriptor cd_ee03151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03151, buf);
+ ee03151 *dp, &lv = *(dp=new (buf) ee03151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee03151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee03151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(16,12), "ee03151");
+ check_base_class_offset(lv, (dd3151*), 0, "ee03151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03151.e");
+ test_class_info(&lv, &cd_ee03151);
+ dp->~ee03151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03151(Test_ee03151, "ee03151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03151C1Ev();
+extern void _ZN7ee03151D1Ev();
+Name_Map name_map_ee03151[] = {
+ NSPAIR(_ZN7ee03151C1Ev),
+ NSPAIR(_ZN7ee03151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee03151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03151[];
+extern void _ZN6dd31513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee03151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee03151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee03151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee03151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee03151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee03151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee03151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee03151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee03151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03151[] = {
+ {&(_ZTV7ee03151[5]), 5,19},
+ {&(_tg__ZTV6dd3151__7ee03151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee03151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee03151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee03151[3]), 3,4},
+ {&(_ZTV7ee03151[10]), 10,19},
+ {&(_ZTV7ee03151[14]), 14,19},
+ {&(_ZTV7ee03151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee03151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee03151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee03151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee03151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee03151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03151[];
+extern VTBL_ENTRY _ZTV7ee03151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03151[];
+static VTBL_ENTRY alt_thunk_names509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03151 = { "ee03151", // class name
+ bases_ee03151, 4,
+ &(vtc_ee03151[0]), // expected_vtbl_contents
+ &(vtt_ee03151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names509,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13151 : virtual dd3151 {
+ int e;
+ ~ee13151(); // tgen
+ ee13151(); // tgen
+};
+//SIG(1 ee13151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13151 ::~ee13151(){ note_dtor("ee13151", this);} // tgen
+ee13151 ::ee13151(){ note_ctor("ee13151", this);} // tgen
+
+static void Test_ee13151()
+{
+ extern Class_Descriptor cd_ee13151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13151, buf);
+ ee13151 *dp, &lv = *(dp=new (buf) ee13151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee13151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee13151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(32,16), "ee13151");
+ check_base_class_offset(lv, (dd3151*), ABISELECT(16,8), "ee13151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13151.e");
+ test_class_info(&lv, &cd_ee13151);
+ dp->~ee13151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13151(Test_ee13151, "ee13151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13151C1Ev();
+extern void _ZN7ee13151D1Ev();
+Name_Map name_map_ee13151[] = {
+ NSPAIR(_ZN7ee13151C1Ev),
+ NSPAIR(_ZN7ee13151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee13151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13151[];
+extern void _ZN6dd31513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13151[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee13151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee13151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee13151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee13151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee13151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee13151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee13151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee13151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee13151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13151[] = {
+ {&(_ZTV7ee13151[6]), 6,26},
+ {&(_ZTV7ee13151[12]), 12,26},
+ {&(_ZTV7ee13151[17]), 17,26},
+ {&(_ZTV7ee13151[21]), 21,26},
+ {&(_ZTV7ee13151[25]), 25,26},
+ {&(_tg__ZTV6dd3151__7ee13151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee13151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee13151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee13151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee13151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee13151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee13151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee13151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee13151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13151[];
+extern VTBL_ENTRY _ZTV7ee13151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13151[];
+static VTBL_ENTRY alt_thunk_names510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13151 = { "ee13151", // class name
+ bases_ee13151, 4,
+ &(vtc_ee13151[0]), // expected_vtbl_contents
+ &(vtt_ee13151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13151),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names510,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23151 : dd3151 {
+ int e;
+ virtual void foo(); // _ZN7ee231513fooEv
+ ~ee23151(); // tgen
+ ee23151(); // tgen
+};
+//SIG(1 ee23151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23151 ::foo(){vfunc_called(this, "_ZN7ee231513fooEv");}
+ee23151 ::~ee23151(){ note_dtor("ee23151", this);} // tgen
+ee23151 ::ee23151(){ note_ctor("ee23151", this);} // tgen
+
+static void Test_ee23151()
+{
+ extern Class_Descriptor cd_ee23151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23151, buf);
+ ee23151 *dp, &lv = *(dp=new (buf) ee23151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee23151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee23151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(16,12), "ee23151");
+ check_base_class_offset(lv, (dd3151*), 0, "ee23151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23151.e");
+ test_class_info(&lv, &cd_ee23151);
+ dp->~ee23151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23151(Test_ee23151, "ee23151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23151C1Ev();
+extern void _ZN7ee23151D1Ev();
+Name_Map name_map_ee23151[] = {
+ NSPAIR(_ZN7ee23151C1Ev),
+ NSPAIR(_ZN7ee23151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee23151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23151[];
+extern void _ZN7ee231513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231513fooEv,_ZTv0_n12_N7ee231513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee231513fooEv,_ZThn28_N7ee231513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23151[0]),
+ (VTBL_ENTRY)&_ZN7ee231513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231513fooEv,_ZTv0_n12_N7ee231513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee23151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee23151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee23151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee23151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee23151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee23151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee23151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee23151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee23151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23151[] = {
+ {&(_ZTV7ee23151[5]), 5,19},
+ {&(_tg__ZTV6dd3151__7ee23151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee23151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee23151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee23151[3]), 3,4},
+ {&(_ZTV7ee23151[10]), 10,19},
+ {&(_ZTV7ee23151[14]), 14,19},
+ {&(_ZTV7ee23151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee23151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee23151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee23151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee23151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee23151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23151[];
+extern VTBL_ENTRY _ZTV7ee23151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23151[];
+static VTBL_ENTRY alt_thunk_names511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231513fooEv,_ZTv0_n12_N7ee231513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee231513fooEv,_ZThn28_N7ee231513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23151 = { "ee23151", // class name
+ bases_ee23151, 4,
+ &(vtc_ee23151[0]), // expected_vtbl_contents
+ &(vtt_ee23151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names511,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33151 : virtual dd3151 {
+ int e;
+ virtual void foo(); // _ZN7ee331513fooEv
+ ~ee33151(); // tgen
+ ee33151(); // tgen
+};
+//SIG(1 ee33151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33151 ::foo(){vfunc_called(this, "_ZN7ee331513fooEv");}
+ee33151 ::~ee33151(){ note_dtor("ee33151", this);} // tgen
+ee33151 ::ee33151(){ note_ctor("ee33151", this);} // tgen
+
+static void Test_ee33151()
+{
+ extern Class_Descriptor cd_ee33151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33151, buf);
+ ee33151 *dp, &lv = *(dp=new (buf) ee33151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee33151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee33151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(32,16), "ee33151");
+ check_base_class_offset(lv, (dd3151*), ABISELECT(16,8), "ee33151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33151.e");
+ test_class_info(&lv, &cd_ee33151);
+ dp->~ee33151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33151(Test_ee33151, "ee33151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33151C1Ev();
+extern void _ZN7ee33151D1Ev();
+Name_Map name_map_ee33151[] = {
+ NSPAIR(_ZN7ee33151C1Ev),
+ NSPAIR(_ZN7ee33151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee33151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33151[];
+extern void _ZN7ee331513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee331513fooEv,_ZTv0_n24_N7ee331513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331513fooEv,_ZThn8_N7ee331513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee331513fooEv,_ZTv0_n12_N7ee331513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee331513fooEv,_ZThn32_N7ee331513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33151[0]),
+ (VTBL_ENTRY)&_ZN7ee331513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee331513fooEv,_ZTv0_n24_N7ee331513fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33151[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331513fooEv,_ZTv0_n12_N7ee331513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee33151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee33151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee33151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee33151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee33151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee33151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee33151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee33151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee33151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33151[] = {
+ {&(_ZTV7ee33151[6]), 6,27},
+ {&(_ZTV7ee33151[13]), 13,27},
+ {&(_ZTV7ee33151[18]), 18,27},
+ {&(_ZTV7ee33151[22]), 22,27},
+ {&(_ZTV7ee33151[26]), 26,27},
+ {&(_tg__ZTV6dd3151__7ee33151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee33151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee33151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee33151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee33151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee33151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee33151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee33151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee33151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33151[];
+extern VTBL_ENTRY _ZTV7ee33151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33151[];
+static VTBL_ENTRY alt_thunk_names512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331513fooEv,_ZTv0_n12_N7ee331513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee331513fooEv,_ZThn32_N7ee331513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee331513fooEv,_ZTv0_n24_N7ee331513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331513fooEv,_ZThn8_N7ee331513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33151 = { "ee33151", // class name
+ bases_ee33151, 4,
+ &(vtc_ee33151[0]), // expected_vtbl_contents
+ &(vtt_ee33151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33151),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names512,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43151 : dd3151 {
+ int e;
+ virtual void bar(); // _ZN7ee431513barEv
+ ~ee43151(); // tgen
+ ee43151(); // tgen
+};
+//SIG(1 ee43151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43151 ::bar(){vfunc_called(this, "_ZN7ee431513barEv");}
+ee43151 ::~ee43151(){ note_dtor("ee43151", this);} // tgen
+ee43151 ::ee43151(){ note_ctor("ee43151", this);} // tgen
+
+static void Test_ee43151()
+{
+ extern Class_Descriptor cd_ee43151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43151, buf);
+ ee43151 *dp, &lv = *(dp=new (buf) ee43151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee43151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee43151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(16,12), "ee43151");
+ check_base_class_offset(lv, (dd3151*), 0, "ee43151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43151.e");
+ test_class_info(&lv, &cd_ee43151);
+ dp->~ee43151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43151(Test_ee43151, "ee43151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43151C1Ev();
+extern void _ZN7ee43151D1Ev();
+Name_Map name_map_ee43151[] = {
+ NSPAIR(_ZN7ee43151C1Ev),
+ NSPAIR(_ZN7ee43151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee43151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43151[];
+extern void _ZN6dd31513fooEv();
+extern void _ZN7ee431513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee431513barEv,_ZTv0_n16_N7ee431513barEv)();
+extern void ABISELECT(_ZThn32_N7ee431513barEv,_ZThn20_N7ee431513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+ (VTBL_ENTRY)&_ZN7ee431513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431513barEv,_ZTv0_n16_N7ee431513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee43151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee43151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee43151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee43151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee43151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee43151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee43151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee43151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee43151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43151[] = {
+ {&(_ZTV7ee43151[5]), 5,20},
+ {&(_tg__ZTV6dd3151__7ee43151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee43151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee43151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee43151[3]), 3,4},
+ {&(_ZTV7ee43151[11]), 11,20},
+ {&(_ZTV7ee43151[15]), 15,20},
+ {&(_ZTV7ee43151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee43151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee43151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee43151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee43151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee43151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43151[];
+extern VTBL_ENTRY _ZTV7ee43151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43151[];
+static VTBL_ENTRY alt_thunk_names513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431513barEv,_ZTv0_n16_N7ee431513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431513barEv,_ZThn20_N7ee431513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43151 = { "ee43151", // class name
+ bases_ee43151, 4,
+ &(vtc_ee43151[0]), // expected_vtbl_contents
+ &(vtt_ee43151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names513,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53151 : virtual dd3151 {
+ int e;
+ virtual void bar(); // _ZN7ee531513barEv
+ ~ee53151(); // tgen
+ ee53151(); // tgen
+};
+//SIG(1 ee53151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53151 ::bar(){vfunc_called(this, "_ZN7ee531513barEv");}
+ee53151 ::~ee53151(){ note_dtor("ee53151", this);} // tgen
+ee53151 ::ee53151(){ note_ctor("ee53151", this);} // tgen
+
+static void Test_ee53151()
+{
+ extern Class_Descriptor cd_ee53151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53151, buf);
+ ee53151 *dp, &lv = *(dp=new (buf) ee53151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee53151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee53151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(32,16), "ee53151");
+ check_base_class_offset(lv, (dd3151*), ABISELECT(16,8), "ee53151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53151.e");
+ test_class_info(&lv, &cd_ee53151);
+ dp->~ee53151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53151(Test_ee53151, "ee53151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53151C1Ev();
+extern void _ZN7ee53151D1Ev();
+Name_Map name_map_ee53151[] = {
+ NSPAIR(_ZN7ee53151C1Ev),
+ NSPAIR(_ZN7ee53151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee53151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53151[];
+extern void _ZN7ee531513barEv();
+extern void _ZN6dd31513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee531513barEv,_ZTv0_n16_N7ee531513barEv)();
+extern void ABISELECT(_ZThn48_N7ee531513barEv,_ZThn24_N7ee531513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53151[0]),
+ (VTBL_ENTRY)&_ZN7ee531513barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531513barEv,_ZTv0_n16_N7ee531513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee53151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee53151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee53151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee53151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee53151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee53151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee53151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee53151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee53151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53151[] = {
+ {&(_ZTV7ee53151[6]), 6,27},
+ {&(_ZTV7ee53151[13]), 13,27},
+ {&(_ZTV7ee53151[18]), 18,27},
+ {&(_ZTV7ee53151[22]), 22,27},
+ {&(_ZTV7ee53151[26]), 26,27},
+ {&(_tg__ZTV6dd3151__7ee53151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee53151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee53151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee53151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee53151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee53151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee53151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee53151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee53151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53151[];
+extern VTBL_ENTRY _ZTV7ee53151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53151[];
+static VTBL_ENTRY alt_thunk_names514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531513barEv,_ZTv0_n16_N7ee531513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531513barEv,_ZThn24_N7ee531513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53151 = { "ee53151", // class name
+ bases_ee53151, 4,
+ &(vtc_ee53151[0]), // expected_vtbl_contents
+ &(vtt_ee53151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53151),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names514,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63151 : dd3151 {
+ int e;
+ virtual void foo(); // _ZN7ee631513fooEv
+ virtual void bar(); // _ZN7ee631513barEv
+ ~ee63151(); // tgen
+ ee63151(); // tgen
+};
+//SIG(1 ee63151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63151 ::foo(){vfunc_called(this, "_ZN7ee631513fooEv");}
+void ee63151 ::bar(){vfunc_called(this, "_ZN7ee631513barEv");}
+ee63151 ::~ee63151(){ note_dtor("ee63151", this);} // tgen
+ee63151 ::ee63151(){ note_ctor("ee63151", this);} // tgen
+
+static void Test_ee63151()
+{
+ extern Class_Descriptor cd_ee63151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63151, buf);
+ ee63151 *dp, &lv = *(dp=new (buf) ee63151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee63151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee63151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(16,12), "ee63151");
+ check_base_class_offset(lv, (dd3151*), 0, "ee63151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63151.e");
+ test_class_info(&lv, &cd_ee63151);
+ dp->~ee63151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63151(Test_ee63151, "ee63151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63151C1Ev();
+extern void _ZN7ee63151D1Ev();
+Name_Map name_map_ee63151[] = {
+ NSPAIR(_ZN7ee63151C1Ev),
+ NSPAIR(_ZN7ee63151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee63151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63151[];
+extern void _ZN7ee631513fooEv();
+extern void _ZN7ee631513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee631513barEv,_ZTv0_n16_N7ee631513barEv)();
+extern void ABISELECT(_ZThn32_N7ee631513barEv,_ZThn20_N7ee631513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee631513fooEv,_ZTv0_n12_N7ee631513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee631513fooEv,_ZThn28_N7ee631513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63151[0]),
+ (VTBL_ENTRY)&_ZN7ee631513fooEv,
+ (VTBL_ENTRY)&_ZN7ee631513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631513barEv,_ZTv0_n16_N7ee631513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631513fooEv,_ZTv0_n12_N7ee631513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee63151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee63151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee63151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee63151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee63151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee63151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee63151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee63151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee63151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63151[] = {
+ {&(_ZTV7ee63151[5]), 5,20},
+ {&(_tg__ZTV6dd3151__7ee63151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee63151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee63151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee63151[3]), 3,4},
+ {&(_ZTV7ee63151[11]), 11,20},
+ {&(_ZTV7ee63151[15]), 15,20},
+ {&(_ZTV7ee63151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee63151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee63151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee63151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee63151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee63151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63151[];
+extern VTBL_ENTRY _ZTV7ee63151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63151[];
+static VTBL_ENTRY alt_thunk_names515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn28_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631513fooEv,_ZTv0_n12_N7ee631513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee631513fooEv,_ZThn28_N7ee631513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631513barEv,_ZTv0_n16_N7ee631513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631513barEv,_ZThn20_N7ee631513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63151 = { "ee63151", // class name
+ bases_ee63151, 4,
+ &(vtc_ee63151[0]), // expected_vtbl_contents
+ &(vtt_ee63151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names515,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73151 : virtual dd3151 {
+ int e;
+ virtual void foo(); // _ZN7ee731513fooEv
+ virtual void bar(); // _ZN7ee731513barEv
+ ~ee73151(); // tgen
+ ee73151(); // tgen
+};
+//SIG(1 ee73151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73151 ::foo(){vfunc_called(this, "_ZN7ee731513fooEv");}
+void ee73151 ::bar(){vfunc_called(this, "_ZN7ee731513barEv");}
+ee73151 ::~ee73151(){ note_dtor("ee73151", this);} // tgen
+ee73151 ::ee73151(){ note_ctor("ee73151", this);} // tgen
+
+static void Test_ee73151()
+{
+ extern Class_Descriptor cd_ee73151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73151, buf);
+ ee73151 *dp, &lv = *(dp=new (buf) ee73151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee73151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee73151");
+ check_base_class_offset(lv, (cc151*)(dd3151*), ABISELECT(32,16), "ee73151");
+ check_base_class_offset(lv, (dd3151*), ABISELECT(16,8), "ee73151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73151.e");
+ test_class_info(&lv, &cd_ee73151);
+ dp->~ee73151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73151(Test_ee73151, "ee73151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73151C1Ev();
+extern void _ZN7ee73151D1Ev();
+Name_Map name_map_ee73151[] = {
+ NSPAIR(_ZN7ee73151C1Ev),
+ NSPAIR(_ZN7ee73151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd3151;
+extern VTBL_ENTRY _ZTI6dd3151[];
+extern VTBL_ENTRY _ZTV6dd3151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3151[];
+static Base_Class bases_ee73151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3151, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73151[];
+extern void _ZN7ee731513fooEv();
+extern void _ZN7ee731513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee731513fooEv,_ZTv0_n24_N7ee731513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731513fooEv,_ZThn8_N7ee731513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731513barEv,_ZTv0_n16_N7ee731513barEv)();
+extern void ABISELECT(_ZThn48_N7ee731513barEv,_ZThn24_N7ee731513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731513fooEv,_ZTv0_n12_N7ee731513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee731513fooEv,_ZThn32_N7ee731513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73151[0]),
+ (VTBL_ENTRY)&_ZN7ee731513fooEv,
+ (VTBL_ENTRY)&_ZN7ee731513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee731513fooEv,_ZTv0_n24_N7ee731513fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731513barEv,_ZTv0_n16_N7ee731513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731513fooEv,_ZTv0_n12_N7ee731513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73151[];
+extern void _ZN6dd31513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3151__7ee73151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN6dd31513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd3151__7ee73151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3151__7ee73151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3151__7ee73151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee73151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee73151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee73151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee73151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee73151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73151[] = {
+ {&(_ZTV7ee73151[6]), 6,28},
+ {&(_ZTV7ee73151[14]), 14,28},
+ {&(_ZTV7ee73151[19]), 19,28},
+ {&(_ZTV7ee73151[23]), 23,28},
+ {&(_ZTV7ee73151[27]), 27,28},
+ {&(_tg__ZTV6dd3151__7ee73151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd3151__7ee73151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd3151__7ee73151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3151__7ee73151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee73151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee73151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee73151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee73151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee73151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73151[];
+extern VTBL_ENTRY _ZTV7ee73151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73151[];
+static VTBL_ENTRY alt_thunk_names516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31513fooEv,_ZTv0_n12_N6dd31513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31513fooEv,_ZThn24_N6dd31513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731513fooEv,_ZTv0_n12_N7ee731513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee731513fooEv,_ZThn32_N7ee731513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731513barEv,_ZTv0_n16_N7ee731513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731513barEv,_ZThn24_N7ee731513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee731513fooEv,_ZTv0_n24_N7ee731513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731513fooEv,_ZThn8_N7ee731513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73151 = { "ee73151", // class name
+ bases_ee73151, 4,
+ &(vtc_ee73151[0]), // expected_vtbl_contents
+ &(vtt_ee73151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73151),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names516,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4151 : cc151 {
+ int d;
+ virtual void bar(); // _ZN6dd41513barEv
+ ~dd4151(); // tgen
+ dd4151(); // tgen
+};
+//SIG(-1 dd4151) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4151 ::bar(){vfunc_called(this, "_ZN6dd41513barEv");}
+dd4151 ::~dd4151(){ note_dtor("dd4151", this);} // tgen
+dd4151 ::dd4151(){ note_ctor("dd4151", this);} // tgen
+
+static void Test_dd4151()
+{
+ extern Class_Descriptor cd_dd4151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4151, buf);
+ dd4151 *dp, &lv = *(dp=new (buf) dd4151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd4151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(16,12), "dd4151");
+ check_base_class_offset(lv, (cc151*), 0, "dd4151");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4151.d");
+ test_class_info(&lv, &cd_dd4151);
+ dp->~dd4151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4151(Test_dd4151, "dd4151", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4151C1Ev();
+extern void _ZN6dd4151D1Ev();
+Name_Map name_map_dd4151[] = {
+ NSPAIR(_ZN6dd4151C1Ev),
+ NSPAIR(_ZN6dd4151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd4151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern void _ZN6dd41513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd4151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd4151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd4151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd4151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4151[] = {
+ {&(_ZTV6dd4151[4]), 4,14},
+ {&(_tg__ZTV5cc151__6dd4151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd4151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd4151[3]), 3,4},
+ {&(_ZTV6dd4151[9]), 9,14},
+ {&(_ZTV6dd4151[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd4151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd4151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static VTBL_ENTRY alt_thunk_names517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4151 = { "dd4151", // class name
+ bases_dd4151, 3,
+ &(vtc_dd4151[0]), // expected_vtbl_contents
+ &(vtt_dd4151[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4151),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names517,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04151 : dd4151 {
+ int e;
+ ~ee04151(); // tgen
+ ee04151(); // tgen
+};
+//SIG(1 ee04151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04151 ::~ee04151(){ note_dtor("ee04151", this);} // tgen
+ee04151 ::ee04151(){ note_ctor("ee04151", this);} // tgen
+
+static void Test_ee04151()
+{
+ extern Class_Descriptor cd_ee04151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04151, buf);
+ ee04151 *dp, &lv = *(dp=new (buf) ee04151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee04151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(24,16), "ee04151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), 0, "ee04151");
+ check_base_class_offset(lv, (dd4151*), 0, "ee04151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04151.e");
+ test_class_info(&lv, &cd_ee04151);
+ dp->~ee04151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04151(Test_ee04151, "ee04151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04151C1Ev();
+extern void _ZN7ee04151D1Ev();
+Name_Map name_map_ee04151[] = {
+ NSPAIR(_ZN7ee04151C1Ev),
+ NSPAIR(_ZN7ee04151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee04151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04151[];
+extern void _ZN6dd41513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee04151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee04151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee04151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee04151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee04151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee04151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee04151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee04151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04151[] = {
+ {&(_ZTV7ee04151[4]), 4,14},
+ {&(_tg__ZTV6dd4151__7ee04151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee04151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee04151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee04151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee04151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee04151[3]), 3,4},
+ {&(_ZTV7ee04151[9]), 9,14},
+ {&(_ZTV7ee04151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee04151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee04151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04151[];
+extern VTBL_ENTRY _ZTV7ee04151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04151[];
+static VTBL_ENTRY alt_thunk_names518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04151 = { "ee04151", // class name
+ bases_ee04151, 4,
+ &(vtc_ee04151[0]), // expected_vtbl_contents
+ &(vtt_ee04151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names518,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14151 : virtual dd4151 {
+ int e;
+ ~ee14151(); // tgen
+ ee14151(); // tgen
+};
+//SIG(1 ee14151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14151 ::~ee14151(){ note_dtor("ee14151", this);} // tgen
+ee14151 ::ee14151(){ note_ctor("ee14151", this);} // tgen
+
+static void Test_ee14151()
+{
+ extern Class_Descriptor cd_ee14151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14151, buf);
+ ee14151 *dp, &lv = *(dp=new (buf) ee14151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee14151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(32,20), "ee14151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), ABISELECT(16,8), "ee14151");
+ check_base_class_offset(lv, (dd4151*), ABISELECT(16,8), "ee14151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14151.e");
+ test_class_info(&lv, &cd_ee14151);
+ dp->~ee14151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14151(Test_ee14151, "ee14151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14151C1Ev();
+extern void _ZN7ee14151D1Ev();
+Name_Map name_map_ee14151[] = {
+ NSPAIR(_ZN7ee14151C1Ev),
+ NSPAIR(_ZN7ee14151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee14151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14151[];
+extern void _ZN6dd41513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14151[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee14151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee14151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee14151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee14151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee14151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee14151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee14151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee14151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14151[] = {
+ {&(_ZTV7ee14151[5]), 5,20},
+ {&(_ZTV7ee14151[10]), 10,20},
+ {&(_ZTV7ee14151[15]), 15,20},
+ {&(_ZTV7ee14151[19]), 19,20},
+ {&(_tg__ZTV6dd4151__7ee14151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee14151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee14151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee14151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee14151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee14151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee14151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee14151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14151[];
+extern VTBL_ENTRY _ZTV7ee14151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14151[];
+static VTBL_ENTRY alt_thunk_names519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14151 = { "ee14151", // class name
+ bases_ee14151, 4,
+ &(vtc_ee14151[0]), // expected_vtbl_contents
+ &(vtt_ee14151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names519,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24151 : dd4151 {
+ int e;
+ virtual void foo(); // _ZN7ee241513fooEv
+ ~ee24151(); // tgen
+ ee24151(); // tgen
+};
+//SIG(1 ee24151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24151 ::foo(){vfunc_called(this, "_ZN7ee241513fooEv");}
+ee24151 ::~ee24151(){ note_dtor("ee24151", this);} // tgen
+ee24151 ::ee24151(){ note_ctor("ee24151", this);} // tgen
+
+static void Test_ee24151()
+{
+ extern Class_Descriptor cd_ee24151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24151, buf);
+ ee24151 *dp, &lv = *(dp=new (buf) ee24151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee24151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(24,16), "ee24151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), 0, "ee24151");
+ check_base_class_offset(lv, (dd4151*), 0, "ee24151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24151.e");
+ test_class_info(&lv, &cd_ee24151);
+ dp->~ee24151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24151(Test_ee24151, "ee24151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24151C1Ev();
+extern void _ZN7ee24151D1Ev();
+Name_Map name_map_ee24151[] = {
+ NSPAIR(_ZN7ee24151C1Ev),
+ NSPAIR(_ZN7ee24151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee24151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24151[];
+extern void _ZN6dd41513barEv();
+extern void _ZN7ee241513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee241513fooEv,_ZTv0_n12_N7ee241513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee241513fooEv,_ZThn24_N7ee241513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+ (VTBL_ENTRY)&_ZN7ee241513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241513fooEv,_ZTv0_n12_N7ee241513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee24151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee24151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee24151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee24151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee24151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee24151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee24151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee24151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24151[] = {
+ {&(_ZTV7ee24151[4]), 4,15},
+ {&(_tg__ZTV6dd4151__7ee24151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee24151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee24151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee24151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee24151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee24151[3]), 3,4},
+ {&(_ZTV7ee24151[10]), 10,15},
+ {&(_ZTV7ee24151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee24151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee24151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24151[];
+extern VTBL_ENTRY _ZTV7ee24151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24151[];
+static VTBL_ENTRY alt_thunk_names520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241513fooEv,_ZTv0_n12_N7ee241513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee241513fooEv,_ZThn24_N7ee241513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24151 = { "ee24151", // class name
+ bases_ee24151, 4,
+ &(vtc_ee24151[0]), // expected_vtbl_contents
+ &(vtt_ee24151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names520,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34151 : virtual dd4151 {
+ int e;
+ virtual void foo(); // _ZN7ee341513fooEv
+ ~ee34151(); // tgen
+ ee34151(); // tgen
+};
+//SIG(1 ee34151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34151 ::foo(){vfunc_called(this, "_ZN7ee341513fooEv");}
+ee34151 ::~ee34151(){ note_dtor("ee34151", this);} // tgen
+ee34151 ::ee34151(){ note_ctor("ee34151", this);} // tgen
+
+static void Test_ee34151()
+{
+ extern Class_Descriptor cd_ee34151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34151, buf);
+ ee34151 *dp, &lv = *(dp=new (buf) ee34151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee34151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(32,20), "ee34151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), ABISELECT(16,8), "ee34151");
+ check_base_class_offset(lv, (dd4151*), ABISELECT(16,8), "ee34151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34151.e");
+ test_class_info(&lv, &cd_ee34151);
+ dp->~ee34151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34151(Test_ee34151, "ee34151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34151C1Ev();
+extern void _ZN7ee34151D1Ev();
+Name_Map name_map_ee34151[] = {
+ NSPAIR(_ZN7ee34151C1Ev),
+ NSPAIR(_ZN7ee34151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee34151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34151[];
+extern void _ZN7ee341513fooEv();
+extern void _ZN6dd41513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee341513fooEv,_ZTv0_n12_N7ee341513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee341513fooEv,_ZThn28_N7ee341513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34151[0]),
+ (VTBL_ENTRY)&_ZN7ee341513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341513fooEv,_ZTv0_n12_N7ee341513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee34151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee34151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee34151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee34151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee34151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee34151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee34151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee34151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34151[] = {
+ {&(_ZTV7ee34151[5]), 5,21},
+ {&(_ZTV7ee34151[11]), 11,21},
+ {&(_ZTV7ee34151[16]), 16,21},
+ {&(_ZTV7ee34151[20]), 20,21},
+ {&(_tg__ZTV6dd4151__7ee34151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee34151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee34151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee34151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee34151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee34151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee34151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee34151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34151[];
+extern VTBL_ENTRY _ZTV7ee34151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34151[];
+static VTBL_ENTRY alt_thunk_names521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341513fooEv,_ZTv0_n12_N7ee341513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee341513fooEv,_ZThn28_N7ee341513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34151 = { "ee34151", // class name
+ bases_ee34151, 4,
+ &(vtc_ee34151[0]), // expected_vtbl_contents
+ &(vtt_ee34151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34151),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names521,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44151 : dd4151 {
+ int e;
+ virtual void bar(); // _ZN7ee441513barEv
+ ~ee44151(); // tgen
+ ee44151(); // tgen
+};
+//SIG(1 ee44151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44151 ::bar(){vfunc_called(this, "_ZN7ee441513barEv");}
+ee44151 ::~ee44151(){ note_dtor("ee44151", this);} // tgen
+ee44151 ::ee44151(){ note_ctor("ee44151", this);} // tgen
+
+static void Test_ee44151()
+{
+ extern Class_Descriptor cd_ee44151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44151, buf);
+ ee44151 *dp, &lv = *(dp=new (buf) ee44151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee44151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(24,16), "ee44151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), 0, "ee44151");
+ check_base_class_offset(lv, (dd4151*), 0, "ee44151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44151.e");
+ test_class_info(&lv, &cd_ee44151);
+ dp->~ee44151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44151(Test_ee44151, "ee44151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44151C1Ev();
+extern void _ZN7ee44151D1Ev();
+Name_Map name_map_ee44151[] = {
+ NSPAIR(_ZN7ee44151C1Ev),
+ NSPAIR(_ZN7ee44151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee44151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44151[];
+extern void _ZN7ee441513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441513barEv,_ZTv0_n16_N7ee441513barEv)();
+extern void ABISELECT(_ZThn24_N7ee441513barEv,_ZThn16_N7ee441513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44151[0]),
+ (VTBL_ENTRY)&_ZN7ee441513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441513barEv,_ZTv0_n16_N7ee441513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee44151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee44151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee44151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee44151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee44151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee44151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee44151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee44151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44151[] = {
+ {&(_ZTV7ee44151[4]), 4,14},
+ {&(_tg__ZTV6dd4151__7ee44151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee44151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee44151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee44151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee44151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee44151[3]), 3,4},
+ {&(_ZTV7ee44151[9]), 9,14},
+ {&(_ZTV7ee44151[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee44151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee44151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44151[];
+extern VTBL_ENTRY _ZTV7ee44151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44151[];
+static VTBL_ENTRY alt_thunk_names522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441513barEv,_ZTv0_n16_N7ee441513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441513barEv,_ZThn16_N7ee441513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44151 = { "ee44151", // class name
+ bases_ee44151, 4,
+ &(vtc_ee44151[0]), // expected_vtbl_contents
+ &(vtt_ee44151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44151),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names522,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54151 : virtual dd4151 {
+ int e;
+ virtual void bar(); // _ZN7ee541513barEv
+ ~ee54151(); // tgen
+ ee54151(); // tgen
+};
+//SIG(1 ee54151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54151 ::bar(){vfunc_called(this, "_ZN7ee541513barEv");}
+ee54151 ::~ee54151(){ note_dtor("ee54151", this);} // tgen
+ee54151 ::ee54151(){ note_ctor("ee54151", this);} // tgen
+
+static void Test_ee54151()
+{
+ extern Class_Descriptor cd_ee54151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54151, buf);
+ ee54151 *dp, &lv = *(dp=new (buf) ee54151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee54151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(32,20), "ee54151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), ABISELECT(16,8), "ee54151");
+ check_base_class_offset(lv, (dd4151*), ABISELECT(16,8), "ee54151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54151.e");
+ test_class_info(&lv, &cd_ee54151);
+ dp->~ee54151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54151(Test_ee54151, "ee54151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54151C1Ev();
+extern void _ZN7ee54151D1Ev();
+Name_Map name_map_ee54151[] = {
+ NSPAIR(_ZN7ee54151C1Ev),
+ NSPAIR(_ZN7ee54151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee54151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54151[];
+extern void _ZN7ee541513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee541513barEv,_ZTv0_n20_N7ee541513barEv)();
+extern void ABISELECT(_ZThn16_N7ee541513barEv,_ZThn8_N7ee541513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee541513barEv,_ZTv0_n16_N7ee541513barEv)();
+extern void ABISELECT(_ZThn32_N7ee541513barEv,_ZThn20_N7ee541513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54151[0]),
+ (VTBL_ENTRY)&_ZN7ee541513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee541513barEv,_ZTv0_n20_N7ee541513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541513barEv,_ZTv0_n16_N7ee541513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee54151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee54151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee54151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee54151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee54151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee54151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee54151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee54151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54151[] = {
+ {&(_ZTV7ee54151[5]), 5,21},
+ {&(_ZTV7ee54151[11]), 11,21},
+ {&(_ZTV7ee54151[16]), 16,21},
+ {&(_ZTV7ee54151[20]), 20,21},
+ {&(_tg__ZTV6dd4151__7ee54151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee54151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee54151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee54151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee54151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee54151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee54151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee54151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54151[];
+extern VTBL_ENTRY _ZTV7ee54151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54151[];
+static VTBL_ENTRY alt_thunk_names523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541513barEv,_ZTv0_n16_N7ee541513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541513barEv,_ZThn20_N7ee541513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee541513barEv,_ZTv0_n20_N7ee541513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541513barEv,_ZThn8_N7ee541513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54151 = { "ee54151", // class name
+ bases_ee54151, 4,
+ &(vtc_ee54151[0]), // expected_vtbl_contents
+ &(vtt_ee54151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54151),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names523,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64151 : dd4151 {
+ int e;
+ virtual void foo(); // _ZN7ee641513fooEv
+ virtual void bar(); // _ZN7ee641513barEv
+ ~ee64151(); // tgen
+ ee64151(); // tgen
+};
+//SIG(1 ee64151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64151 ::foo(){vfunc_called(this, "_ZN7ee641513fooEv");}
+void ee64151 ::bar(){vfunc_called(this, "_ZN7ee641513barEv");}
+ee64151 ::~ee64151(){ note_dtor("ee64151", this);} // tgen
+ee64151 ::ee64151(){ note_ctor("ee64151", this);} // tgen
+
+static void Test_ee64151()
+{
+ extern Class_Descriptor cd_ee64151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64151, buf);
+ ee64151 *dp, &lv = *(dp=new (buf) ee64151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee64151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(24,16), "ee64151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), 0, "ee64151");
+ check_base_class_offset(lv, (dd4151*), 0, "ee64151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64151.e");
+ test_class_info(&lv, &cd_ee64151);
+ dp->~ee64151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64151(Test_ee64151, "ee64151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64151C1Ev();
+extern void _ZN7ee64151D1Ev();
+Name_Map name_map_ee64151[] = {
+ NSPAIR(_ZN7ee64151C1Ev),
+ NSPAIR(_ZN7ee64151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee64151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64151[];
+extern void _ZN7ee641513barEv();
+extern void _ZN7ee641513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee641513barEv,_ZTv0_n16_N7ee641513barEv)();
+extern void ABISELECT(_ZThn24_N7ee641513barEv,_ZThn16_N7ee641513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee641513fooEv,_ZTv0_n12_N7ee641513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee641513fooEv,_ZThn24_N7ee641513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64151[0]),
+ (VTBL_ENTRY)&_ZN7ee641513barEv,
+ (VTBL_ENTRY)&_ZN7ee641513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641513barEv,_ZTv0_n16_N7ee641513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641513fooEv,_ZTv0_n12_N7ee641513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee64151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee64151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee64151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee64151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee64151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee64151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee64151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee64151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64151[] = {
+ {&(_ZTV7ee64151[4]), 4,15},
+ {&(_tg__ZTV6dd4151__7ee64151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee64151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee64151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee64151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee64151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee64151[3]), 3,4},
+ {&(_ZTV7ee64151[10]), 10,15},
+ {&(_ZTV7ee64151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee64151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee64151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64151[];
+extern VTBL_ENTRY _ZTV7ee64151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64151[];
+static VTBL_ENTRY alt_thunk_names524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41513barEv,_ZThn16_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641513fooEv,_ZTv0_n12_N7ee641513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee641513fooEv,_ZThn24_N7ee641513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641513barEv,_ZTv0_n16_N7ee641513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641513barEv,_ZThn16_N7ee641513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64151 = { "ee64151", // class name
+ bases_ee64151, 4,
+ &(vtc_ee64151[0]), // expected_vtbl_contents
+ &(vtt_ee64151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names524,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74151 : virtual dd4151 {
+ int e;
+ virtual void foo(); // _ZN7ee741513fooEv
+ virtual void bar(); // _ZN7ee741513barEv
+ ~ee74151(); // tgen
+ ee74151(); // tgen
+};
+//SIG(1 ee74151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74151 ::foo(){vfunc_called(this, "_ZN7ee741513fooEv");}
+void ee74151 ::bar(){vfunc_called(this, "_ZN7ee741513barEv");}
+ee74151 ::~ee74151(){ note_dtor("ee74151", this);} // tgen
+ee74151 ::ee74151(){ note_ctor("ee74151", this);} // tgen
+
+static void Test_ee74151()
+{
+ extern Class_Descriptor cd_ee74151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74151, buf);
+ ee74151 *dp, &lv = *(dp=new (buf) ee74151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee74151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd4151*), ABISELECT(32,20), "ee74151");
+ check_base_class_offset(lv, (cc151*)(dd4151*), ABISELECT(16,8), "ee74151");
+ check_base_class_offset(lv, (dd4151*), ABISELECT(16,8), "ee74151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74151.e");
+ test_class_info(&lv, &cd_ee74151);
+ dp->~ee74151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74151(Test_ee74151, "ee74151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74151C1Ev();
+extern void _ZN7ee74151D1Ev();
+Name_Map name_map_ee74151[] = {
+ NSPAIR(_ZN7ee74151C1Ev),
+ NSPAIR(_ZN7ee74151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd4151;
+extern VTBL_ENTRY _ZTI6dd4151[];
+extern VTBL_ENTRY _ZTV6dd4151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4151[];
+static Base_Class bases_ee74151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74151[];
+extern void _ZN7ee741513fooEv();
+extern void _ZN7ee741513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee741513barEv,_ZTv0_n20_N7ee741513barEv)();
+extern void ABISELECT(_ZThn16_N7ee741513barEv,_ZThn8_N7ee741513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741513barEv,_ZTv0_n16_N7ee741513barEv)();
+extern void ABISELECT(_ZThn32_N7ee741513barEv,_ZThn20_N7ee741513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741513fooEv,_ZTv0_n12_N7ee741513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee741513fooEv,_ZThn28_N7ee741513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74151[0]),
+ (VTBL_ENTRY)&_ZN7ee741513fooEv,
+ (VTBL_ENTRY)&_ZN7ee741513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee741513barEv,_ZTv0_n20_N7ee741513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741513barEv,_ZTv0_n16_N7ee741513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741513fooEv,_ZTv0_n12_N7ee741513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74151[];
+extern void _ZN6dd41513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4151__7ee74151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN6dd41513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd4151__7ee74151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd4151__7ee74151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd4151__7ee74151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv)();
+extern void ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4151__7ee74151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4151__7ee74151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee74151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee74151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74151[] = {
+ {&(_ZTV7ee74151[5]), 5,22},
+ {&(_ZTV7ee74151[12]), 12,22},
+ {&(_ZTV7ee74151[17]), 17,22},
+ {&(_ZTV7ee74151[21]), 21,22},
+ {&(_tg__ZTV6dd4151__7ee74151[4]), 4,5},
+ {&(_tg__ZTV5cc1516dd4151__7ee74151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd4151__7ee74151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd4151__7ee74151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4151__7ee74151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4151__7ee74151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee74151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee74151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74151[];
+extern VTBL_ENTRY _ZTV7ee74151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74151[];
+static VTBL_ENTRY alt_thunk_names525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41513barEv,_ZTv0_n16_N6dd41513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41513barEv,_ZThn12_N6dd41513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741513fooEv,_ZTv0_n12_N7ee741513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee741513fooEv,_ZThn28_N7ee741513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741513barEv,_ZTv0_n16_N7ee741513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741513barEv,_ZThn20_N7ee741513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee741513barEv,_ZTv0_n20_N7ee741513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741513barEv,_ZThn8_N7ee741513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74151 = { "ee74151", // class name
+ bases_ee74151, 4,
+ &(vtc_ee74151[0]), // expected_vtbl_contents
+ &(vtt_ee74151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74151),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5151 : virtual cc151 {
+ int d;
+ virtual void bar(); // _ZN6dd51513barEv
+ ~dd5151(); // tgen
+ dd5151(); // tgen
+};
+//SIG(-1 dd5151) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5151 ::bar(){vfunc_called(this, "_ZN6dd51513barEv");}
+dd5151 ::~dd5151(){ note_dtor("dd5151", this);} // tgen
+dd5151 ::dd5151(){ note_ctor("dd5151", this);} // tgen
+
+static void Test_dd5151()
+{
+ extern Class_Descriptor cd_dd5151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5151, buf);
+ dd5151 *dp, &lv = *(dp=new (buf) dd5151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd5151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,16), "dd5151");
+ check_base_class_offset(lv, (cc151*), ABISELECT(16,8), "dd5151");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5151.d");
+ test_class_info(&lv, &cd_dd5151);
+ dp->~dd5151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5151(Test_dd5151, "dd5151", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5151C1Ev();
+extern void _ZN6dd5151D1Ev();
+Name_Map name_map_dd5151[] = {
+ NSPAIR(_ZN6dd5151C1Ev),
+ NSPAIR(_ZN6dd5151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd5151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern void _ZN6dd51513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd5151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd5151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd5151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5151[] = {
+ {&(_ZTV6dd5151[5]), 5,19},
+ {&(_ZTV6dd5151[10]), 10,19},
+ {&(_ZTV6dd5151[14]), 14,19},
+ {&(_ZTV6dd5151[18]), 18,19},
+ {&(_tg__ZTV5cc151__6dd5151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd5151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd5151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd5151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd5151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static VTBL_ENTRY alt_thunk_names526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5151 = { "dd5151", // class name
+ bases_dd5151, 3,
+ &(vtc_dd5151[0]), // expected_vtbl_contents
+ &(vtt_dd5151[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5151),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names526,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05151 : dd5151 {
+ int e;
+ ~ee05151(); // tgen
+ ee05151(); // tgen
+};
+//SIG(1 ee05151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05151 ::~ee05151(){ note_dtor("ee05151", this);} // tgen
+ee05151 ::ee05151(){ note_ctor("ee05151", this);} // tgen
+
+static void Test_ee05151()
+{
+ extern Class_Descriptor cd_ee05151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05151, buf);
+ ee05151 *dp, &lv = *(dp=new (buf) ee05151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee05151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee05151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(16,12), "ee05151");
+ check_base_class_offset(lv, (dd5151*), 0, "ee05151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05151.e");
+ test_class_info(&lv, &cd_ee05151);
+ dp->~ee05151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05151(Test_ee05151, "ee05151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05151C1Ev();
+extern void _ZN7ee05151D1Ev();
+Name_Map name_map_ee05151[] = {
+ NSPAIR(_ZN7ee05151C1Ev),
+ NSPAIR(_ZN7ee05151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee05151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05151[];
+extern void _ZN6dd51513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee05151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee05151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee05151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee05151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee05151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee05151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee05151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee05151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee05151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05151[] = {
+ {&(_ZTV7ee05151[5]), 5,19},
+ {&(_tg__ZTV6dd5151__7ee05151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee05151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee05151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee05151[3]), 3,4},
+ {&(_ZTV7ee05151[10]), 10,19},
+ {&(_ZTV7ee05151[14]), 14,19},
+ {&(_ZTV7ee05151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee05151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee05151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee05151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee05151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee05151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05151[];
+extern VTBL_ENTRY _ZTV7ee05151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05151[];
+static VTBL_ENTRY alt_thunk_names527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05151 = { "ee05151", // class name
+ bases_ee05151, 4,
+ &(vtc_ee05151[0]), // expected_vtbl_contents
+ &(vtt_ee05151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names527,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15151 : virtual dd5151 {
+ int e;
+ ~ee15151(); // tgen
+ ee15151(); // tgen
+};
+//SIG(1 ee15151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15151 ::~ee15151(){ note_dtor("ee15151", this);} // tgen
+ee15151 ::ee15151(){ note_ctor("ee15151", this);} // tgen
+
+static void Test_ee15151()
+{
+ extern Class_Descriptor cd_ee15151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15151, buf);
+ ee15151 *dp, &lv = *(dp=new (buf) ee15151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee15151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee15151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(32,16), "ee15151");
+ check_base_class_offset(lv, (dd5151*), ABISELECT(16,8), "ee15151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15151.e");
+ test_class_info(&lv, &cd_ee15151);
+ dp->~ee15151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15151(Test_ee15151, "ee15151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15151C1Ev();
+extern void _ZN7ee15151D1Ev();
+Name_Map name_map_ee15151[] = {
+ NSPAIR(_ZN7ee15151C1Ev),
+ NSPAIR(_ZN7ee15151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee15151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15151[];
+extern void _ZN6dd51513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15151[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee15151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee15151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee15151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee15151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee15151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee15151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee15151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee15151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee15151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15151[] = {
+ {&(_ZTV7ee15151[6]), 6,26},
+ {&(_ZTV7ee15151[12]), 12,26},
+ {&(_ZTV7ee15151[17]), 17,26},
+ {&(_ZTV7ee15151[21]), 21,26},
+ {&(_ZTV7ee15151[25]), 25,26},
+ {&(_tg__ZTV6dd5151__7ee15151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee15151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee15151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee15151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee15151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee15151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee15151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee15151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee15151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15151[];
+extern VTBL_ENTRY _ZTV7ee15151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15151[];
+static VTBL_ENTRY alt_thunk_names528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15151 = { "ee15151", // class name
+ bases_ee15151, 4,
+ &(vtc_ee15151[0]), // expected_vtbl_contents
+ &(vtt_ee15151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15151),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names528,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25151 : dd5151 {
+ int e;
+ virtual void foo(); // _ZN7ee251513fooEv
+ ~ee25151(); // tgen
+ ee25151(); // tgen
+};
+//SIG(1 ee25151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25151 ::foo(){vfunc_called(this, "_ZN7ee251513fooEv");}
+ee25151 ::~ee25151(){ note_dtor("ee25151", this);} // tgen
+ee25151 ::ee25151(){ note_ctor("ee25151", this);} // tgen
+
+static void Test_ee25151()
+{
+ extern Class_Descriptor cd_ee25151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25151, buf);
+ ee25151 *dp, &lv = *(dp=new (buf) ee25151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee25151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee25151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(16,12), "ee25151");
+ check_base_class_offset(lv, (dd5151*), 0, "ee25151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25151.e");
+ test_class_info(&lv, &cd_ee25151);
+ dp->~ee25151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25151(Test_ee25151, "ee25151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25151C1Ev();
+extern void _ZN7ee25151D1Ev();
+Name_Map name_map_ee25151[] = {
+ NSPAIR(_ZN7ee25151C1Ev),
+ NSPAIR(_ZN7ee25151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee25151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25151[];
+extern void _ZN6dd51513barEv();
+extern void _ZN7ee251513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee251513fooEv,_ZTv0_n12_N7ee251513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee251513fooEv,_ZThn28_N7ee251513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+ (VTBL_ENTRY)&_ZN7ee251513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251513fooEv,_ZTv0_n12_N7ee251513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee25151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee25151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee25151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee25151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee25151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee25151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee25151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee25151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee25151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25151[] = {
+ {&(_ZTV7ee25151[5]), 5,20},
+ {&(_tg__ZTV6dd5151__7ee25151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee25151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee25151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee25151[3]), 3,4},
+ {&(_ZTV7ee25151[11]), 11,20},
+ {&(_ZTV7ee25151[15]), 15,20},
+ {&(_ZTV7ee25151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee25151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee25151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee25151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee25151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee25151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25151[];
+extern VTBL_ENTRY _ZTV7ee25151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25151[];
+static VTBL_ENTRY alt_thunk_names529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251513fooEv,_ZTv0_n12_N7ee251513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee251513fooEv,_ZThn28_N7ee251513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25151 = { "ee25151", // class name
+ bases_ee25151, 4,
+ &(vtc_ee25151[0]), // expected_vtbl_contents
+ &(vtt_ee25151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names529,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35151 : virtual dd5151 {
+ int e;
+ virtual void foo(); // _ZN7ee351513fooEv
+ ~ee35151(); // tgen
+ ee35151(); // tgen
+};
+//SIG(1 ee35151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35151 ::foo(){vfunc_called(this, "_ZN7ee351513fooEv");}
+ee35151 ::~ee35151(){ note_dtor("ee35151", this);} // tgen
+ee35151 ::ee35151(){ note_ctor("ee35151", this);} // tgen
+
+static void Test_ee35151()
+{
+ extern Class_Descriptor cd_ee35151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35151, buf);
+ ee35151 *dp, &lv = *(dp=new (buf) ee35151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee35151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee35151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(32,16), "ee35151");
+ check_base_class_offset(lv, (dd5151*), ABISELECT(16,8), "ee35151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35151.e");
+ test_class_info(&lv, &cd_ee35151);
+ dp->~ee35151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35151(Test_ee35151, "ee35151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35151C1Ev();
+extern void _ZN7ee35151D1Ev();
+Name_Map name_map_ee35151[] = {
+ NSPAIR(_ZN7ee35151C1Ev),
+ NSPAIR(_ZN7ee35151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee35151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35151[];
+extern void _ZN7ee351513fooEv();
+extern void _ZN6dd51513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee351513fooEv,_ZTv0_n12_N7ee351513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee351513fooEv,_ZThn32_N7ee351513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35151[0]),
+ (VTBL_ENTRY)&_ZN7ee351513fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351513fooEv,_ZTv0_n12_N7ee351513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee35151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee35151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee35151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee35151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee35151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee35151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee35151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee35151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee35151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35151[] = {
+ {&(_ZTV7ee35151[6]), 6,27},
+ {&(_ZTV7ee35151[13]), 13,27},
+ {&(_ZTV7ee35151[18]), 18,27},
+ {&(_ZTV7ee35151[22]), 22,27},
+ {&(_ZTV7ee35151[26]), 26,27},
+ {&(_tg__ZTV6dd5151__7ee35151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee35151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee35151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee35151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee35151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee35151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee35151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee35151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee35151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35151[];
+extern VTBL_ENTRY _ZTV7ee35151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35151[];
+static VTBL_ENTRY alt_thunk_names530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351513fooEv,_ZTv0_n12_N7ee351513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee351513fooEv,_ZThn32_N7ee351513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35151 = { "ee35151", // class name
+ bases_ee35151, 4,
+ &(vtc_ee35151[0]), // expected_vtbl_contents
+ &(vtt_ee35151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35151),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names530,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45151 : dd5151 {
+ int e;
+ virtual void bar(); // _ZN7ee451513barEv
+ ~ee45151(); // tgen
+ ee45151(); // tgen
+};
+//SIG(1 ee45151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45151 ::bar(){vfunc_called(this, "_ZN7ee451513barEv");}
+ee45151 ::~ee45151(){ note_dtor("ee45151", this);} // tgen
+ee45151 ::ee45151(){ note_ctor("ee45151", this);} // tgen
+
+static void Test_ee45151()
+{
+ extern Class_Descriptor cd_ee45151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45151, buf);
+ ee45151 *dp, &lv = *(dp=new (buf) ee45151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee45151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee45151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(16,12), "ee45151");
+ check_base_class_offset(lv, (dd5151*), 0, "ee45151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45151.e");
+ test_class_info(&lv, &cd_ee45151);
+ dp->~ee45151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45151(Test_ee45151, "ee45151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45151C1Ev();
+extern void _ZN7ee45151D1Ev();
+Name_Map name_map_ee45151[] = {
+ NSPAIR(_ZN7ee45151C1Ev),
+ NSPAIR(_ZN7ee45151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee45151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 15, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45151[];
+extern void _ZN7ee451513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451513barEv,_ZTv0_n16_N7ee451513barEv)();
+extern void ABISELECT(_ZThn32_N7ee451513barEv,_ZThn20_N7ee451513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45151[0]),
+ (VTBL_ENTRY)&_ZN7ee451513barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451513barEv,_ZTv0_n16_N7ee451513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee45151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee45151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee45151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee45151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee45151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee45151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee45151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee45151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee45151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45151[] = {
+ {&(_ZTV7ee45151[5]), 5,19},
+ {&(_tg__ZTV6dd5151__7ee45151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee45151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee45151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee45151[3]), 3,4},
+ {&(_ZTV7ee45151[10]), 10,19},
+ {&(_ZTV7ee45151[14]), 14,19},
+ {&(_ZTV7ee45151[18]), 18,19},
+ {&(_tg__ZTV5cc151__7ee45151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee45151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee45151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee45151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee45151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45151[];
+extern VTBL_ENTRY _ZTV7ee45151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45151[];
+static VTBL_ENTRY alt_thunk_names531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451513barEv,_ZTv0_n16_N7ee451513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451513barEv,_ZThn20_N7ee451513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45151 = { "ee45151", // class name
+ bases_ee45151, 4,
+ &(vtc_ee45151[0]), // expected_vtbl_contents
+ &(vtt_ee45151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45151),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names531,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55151 : virtual dd5151 {
+ int e;
+ virtual void bar(); // _ZN7ee551513barEv
+ ~ee55151(); // tgen
+ ee55151(); // tgen
+};
+//SIG(1 ee55151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55151 ::bar(){vfunc_called(this, "_ZN7ee551513barEv");}
+ee55151 ::~ee55151(){ note_dtor("ee55151", this);} // tgen
+ee55151 ::ee55151(){ note_ctor("ee55151", this);} // tgen
+
+static void Test_ee55151()
+{
+ extern Class_Descriptor cd_ee55151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55151, buf);
+ ee55151 *dp, &lv = *(dp=new (buf) ee55151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee55151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee55151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(32,16), "ee55151");
+ check_base_class_offset(lv, (dd5151*), ABISELECT(16,8), "ee55151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55151.e");
+ test_class_info(&lv, &cd_ee55151);
+ dp->~ee55151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55151(Test_ee55151, "ee55151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55151C1Ev();
+extern void _ZN7ee55151D1Ev();
+Name_Map name_map_ee55151[] = {
+ NSPAIR(_ZN7ee55151C1Ev),
+ NSPAIR(_ZN7ee55151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee55151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55151[];
+extern void _ZN7ee551513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee551513barEv,_ZTv0_n24_N7ee551513barEv)();
+extern void ABISELECT(_ZThn16_N7ee551513barEv,_ZThn8_N7ee551513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee551513barEv,_ZTv0_n16_N7ee551513barEv)();
+extern void ABISELECT(_ZThn48_N7ee551513barEv,_ZThn24_N7ee551513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55151[0]),
+ (VTBL_ENTRY)&_ZN7ee551513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee551513barEv,_ZTv0_n24_N7ee551513barEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551513barEv,_ZTv0_n16_N7ee551513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee55151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee55151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee55151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee55151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee55151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee55151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee55151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee55151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee55151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55151[] = {
+ {&(_ZTV7ee55151[6]), 6,27},
+ {&(_ZTV7ee55151[13]), 13,27},
+ {&(_ZTV7ee55151[18]), 18,27},
+ {&(_ZTV7ee55151[22]), 22,27},
+ {&(_ZTV7ee55151[26]), 26,27},
+ {&(_tg__ZTV6dd5151__7ee55151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee55151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee55151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee55151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee55151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee55151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee55151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee55151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee55151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55151[];
+extern VTBL_ENTRY _ZTV7ee55151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55151[];
+static VTBL_ENTRY alt_thunk_names532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551513barEv,_ZTv0_n16_N7ee551513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551513barEv,_ZThn24_N7ee551513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee551513barEv,_ZTv0_n24_N7ee551513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551513barEv,_ZThn8_N7ee551513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55151 = { "ee55151", // class name
+ bases_ee55151, 4,
+ &(vtc_ee55151[0]), // expected_vtbl_contents
+ &(vtt_ee55151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55151),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names532,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65151 : dd5151 {
+ int e;
+ virtual void foo(); // _ZN7ee651513fooEv
+ virtual void bar(); // _ZN7ee651513barEv
+ ~ee65151(); // tgen
+ ee65151(); // tgen
+};
+//SIG(1 ee65151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65151 ::foo(){vfunc_called(this, "_ZN7ee651513fooEv");}
+void ee65151 ::bar(){vfunc_called(this, "_ZN7ee651513barEv");}
+ee65151 ::~ee65151(){ note_dtor("ee65151", this);} // tgen
+ee65151 ::ee65151(){ note_ctor("ee65151", this);} // tgen
+
+static void Test_ee65151()
+{
+ extern Class_Descriptor cd_ee65151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65151, buf);
+ ee65151 *dp, &lv = *(dp=new (buf) ee65151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee65151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee65151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(16,12), "ee65151");
+ check_base_class_offset(lv, (dd5151*), 0, "ee65151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65151.e");
+ test_class_info(&lv, &cd_ee65151);
+ dp->~ee65151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65151(Test_ee65151, "ee65151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65151C1Ev();
+extern void _ZN7ee65151D1Ev();
+Name_Map name_map_ee65151[] = {
+ NSPAIR(_ZN7ee65151C1Ev),
+ NSPAIR(_ZN7ee65151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee65151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65151[];
+extern void _ZN7ee651513barEv();
+extern void _ZN7ee651513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee651513barEv,_ZTv0_n16_N7ee651513barEv)();
+extern void ABISELECT(_ZThn32_N7ee651513barEv,_ZThn20_N7ee651513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee651513fooEv,_ZTv0_n12_N7ee651513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee651513fooEv,_ZThn28_N7ee651513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65151[0]),
+ (VTBL_ENTRY)&_ZN7ee651513barEv,
+ (VTBL_ENTRY)&_ZN7ee651513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651513barEv,_ZTv0_n16_N7ee651513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651513fooEv,_ZTv0_n12_N7ee651513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee65151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee65151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee65151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee65151[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee65151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee65151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee65151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee65151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee65151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65151[] = {
+ {&(_ZTV7ee65151[5]), 5,20},
+ {&(_tg__ZTV6dd5151__7ee65151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee65151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee65151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee65151[3]), 3,4},
+ {&(_ZTV7ee65151[11]), 11,20},
+ {&(_ZTV7ee65151[15]), 15,20},
+ {&(_ZTV7ee65151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee65151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee65151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee65151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee65151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee65151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65151[];
+extern VTBL_ENTRY _ZTV7ee65151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65151[];
+static VTBL_ENTRY alt_thunk_names533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn20_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651513fooEv,_ZTv0_n12_N7ee651513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee651513fooEv,_ZThn28_N7ee651513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651513barEv,_ZTv0_n16_N7ee651513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651513barEv,_ZThn20_N7ee651513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65151 = { "ee65151", // class name
+ bases_ee65151, 4,
+ &(vtc_ee65151[0]), // expected_vtbl_contents
+ &(vtt_ee65151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names533,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75151 : virtual dd5151 {
+ int e;
+ virtual void foo(); // _ZN7ee751513fooEv
+ virtual void bar(); // _ZN7ee751513barEv
+ ~ee75151(); // tgen
+ ee75151(); // tgen
+};
+//SIG(1 ee75151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75151 ::foo(){vfunc_called(this, "_ZN7ee751513fooEv");}
+void ee75151 ::bar(){vfunc_called(this, "_ZN7ee751513barEv");}
+ee75151 ::~ee75151(){ note_dtor("ee75151", this);} // tgen
+ee75151 ::ee75151(){ note_ctor("ee75151", this);} // tgen
+
+static void Test_ee75151()
+{
+ extern Class_Descriptor cd_ee75151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75151, buf);
+ ee75151 *dp, &lv = *(dp=new (buf) ee75151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee75151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee75151");
+ check_base_class_offset(lv, (cc151*)(dd5151*), ABISELECT(32,16), "ee75151");
+ check_base_class_offset(lv, (dd5151*), ABISELECT(16,8), "ee75151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75151.e");
+ test_class_info(&lv, &cd_ee75151);
+ dp->~ee75151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75151(Test_ee75151, "ee75151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75151C1Ev();
+extern void _ZN7ee75151D1Ev();
+Name_Map name_map_ee75151[] = {
+ NSPAIR(_ZN7ee75151C1Ev),
+ NSPAIR(_ZN7ee75151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd5151;
+extern VTBL_ENTRY _ZTI6dd5151[];
+extern VTBL_ENTRY _ZTV6dd5151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5151[];
+static Base_Class bases_ee75151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5151, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75151[];
+extern void _ZN7ee751513fooEv();
+extern void _ZN7ee751513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee751513barEv,_ZTv0_n24_N7ee751513barEv)();
+extern void ABISELECT(_ZThn16_N7ee751513barEv,_ZThn8_N7ee751513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751513barEv,_ZTv0_n16_N7ee751513barEv)();
+extern void ABISELECT(_ZThn48_N7ee751513barEv,_ZThn24_N7ee751513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751513fooEv,_ZTv0_n12_N7ee751513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee751513fooEv,_ZThn32_N7ee751513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75151[0]),
+ (VTBL_ENTRY)&_ZN7ee751513fooEv,
+ (VTBL_ENTRY)&_ZN7ee751513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee751513barEv,_ZTv0_n24_N7ee751513barEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751513barEv,_ZTv0_n16_N7ee751513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751513fooEv,_ZTv0_n12_N7ee751513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75151[];
+extern void _ZN6dd51513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5151__7ee75151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN6dd51513barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd5151__7ee75151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv)();
+extern void ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5151__7ee75151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5151__7ee75151[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee75151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee75151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee75151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee75151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee75151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75151[] = {
+ {&(_ZTV7ee75151[6]), 6,28},
+ {&(_ZTV7ee75151[14]), 14,28},
+ {&(_ZTV7ee75151[19]), 19,28},
+ {&(_ZTV7ee75151[23]), 23,28},
+ {&(_ZTV7ee75151[27]), 27,28},
+ {&(_tg__ZTV6dd5151__7ee75151[5]), 5,6},
+ {&(_tg__ZTV5cc151__6dd5151__7ee75151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd5151__7ee75151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5151__7ee75151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee75151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee75151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee75151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee75151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee75151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75151[];
+extern VTBL_ENTRY _ZTV7ee75151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75151[];
+static VTBL_ENTRY alt_thunk_names534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51513barEv,_ZTv0_n16_N6dd51513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51513barEv,_ZThn16_N6dd51513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751513fooEv,_ZTv0_n12_N7ee751513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee751513fooEv,_ZThn32_N7ee751513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751513barEv,_ZTv0_n16_N7ee751513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751513barEv,_ZThn24_N7ee751513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee751513barEv,_ZTv0_n24_N7ee751513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751513barEv,_ZThn8_N7ee751513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75151 = { "ee75151", // class name
+ bases_ee75151, 4,
+ &(vtc_ee75151[0]), // expected_vtbl_contents
+ &(vtt_ee75151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75151),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names534,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6151 : cc151 {
+ int d;
+ virtual void bar(); // _ZN6dd61513barEv
+ virtual void foo(); // _ZN6dd61513fooEv
+ ~dd6151(); // tgen
+ dd6151(); // tgen
+};
+//SIG(-1 dd6151) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6151 ::bar(){vfunc_called(this, "_ZN6dd61513barEv");}
+void dd6151 ::foo(){vfunc_called(this, "_ZN6dd61513fooEv");}
+dd6151 ::~dd6151(){ note_dtor("dd6151", this);} // tgen
+dd6151 ::dd6151(){ note_ctor("dd6151", this);} // tgen
+
+static void Test_dd6151()
+{
+ extern Class_Descriptor cd_dd6151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6151, buf);
+ dd6151 *dp, &lv = *(dp=new (buf) dd6151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd6151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(16,12), "dd6151");
+ check_base_class_offset(lv, (cc151*), 0, "dd6151");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6151.d");
+ test_class_info(&lv, &cd_dd6151);
+ dp->~dd6151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6151(Test_dd6151, "dd6151", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6151C1Ev();
+extern void _ZN6dd6151D1Ev();
+Name_Map name_map_dd6151[] = {
+ NSPAIR(_ZN6dd6151C1Ev),
+ NSPAIR(_ZN6dd6151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd6151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd6151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd6151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd6151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd6151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6151[] = {
+ {&(_ZTV6dd6151[4]), 4,15},
+ {&(_tg__ZTV5cc151__6dd6151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd6151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd6151[3]), 3,4},
+ {&(_ZTV6dd6151[10]), 10,15},
+ {&(_ZTV6dd6151[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd6151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd6151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static VTBL_ENTRY alt_thunk_names535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6151 = { "dd6151", // class name
+ bases_dd6151, 3,
+ &(vtc_dd6151[0]), // expected_vtbl_contents
+ &(vtt_dd6151[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6151),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names535,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06151 : dd6151 {
+ int e;
+ ~ee06151(); // tgen
+ ee06151(); // tgen
+};
+//SIG(1 ee06151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06151 ::~ee06151(){ note_dtor("ee06151", this);} // tgen
+ee06151 ::ee06151(){ note_ctor("ee06151", this);} // tgen
+
+static void Test_ee06151()
+{
+ extern Class_Descriptor cd_ee06151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06151, buf);
+ ee06151 *dp, &lv = *(dp=new (buf) ee06151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee06151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(24,16), "ee06151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), 0, "ee06151");
+ check_base_class_offset(lv, (dd6151*), 0, "ee06151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06151.e");
+ test_class_info(&lv, &cd_ee06151);
+ dp->~ee06151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06151(Test_ee06151, "ee06151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06151C1Ev();
+extern void _ZN7ee06151D1Ev();
+Name_Map name_map_ee06151[] = {
+ NSPAIR(_ZN7ee06151C1Ev),
+ NSPAIR(_ZN7ee06151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee06151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee06151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee06151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee06151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee06151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee06151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee06151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee06151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee06151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee06151[] = {
+ {&(_ZTV7ee06151[4]), 4,15},
+ {&(_tg__ZTV6dd6151__7ee06151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee06151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee06151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee06151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee06151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee06151[3]), 3,4},
+ {&(_ZTV7ee06151[10]), 10,15},
+ {&(_ZTV7ee06151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee06151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee06151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06151[];
+extern VTBL_ENTRY _ZTV7ee06151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06151[];
+static VTBL_ENTRY alt_thunk_names536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06151 = { "ee06151", // class name
+ bases_ee06151, 4,
+ &(vtc_ee06151[0]), // expected_vtbl_contents
+ &(vtt_ee06151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names536,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16151 : virtual dd6151 {
+ int e;
+ ~ee16151(); // tgen
+ ee16151(); // tgen
+};
+//SIG(1 ee16151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16151 ::~ee16151(){ note_dtor("ee16151", this);} // tgen
+ee16151 ::ee16151(){ note_ctor("ee16151", this);} // tgen
+
+static void Test_ee16151()
+{
+ extern Class_Descriptor cd_ee16151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16151, buf);
+ ee16151 *dp, &lv = *(dp=new (buf) ee16151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee16151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(32,20), "ee16151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), ABISELECT(16,8), "ee16151");
+ check_base_class_offset(lv, (dd6151*), ABISELECT(16,8), "ee16151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16151.e");
+ test_class_info(&lv, &cd_ee16151);
+ dp->~ee16151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16151(Test_ee16151, "ee16151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16151C1Ev();
+extern void _ZN7ee16151D1Ev();
+Name_Map name_map_ee16151[] = {
+ NSPAIR(_ZN7ee16151C1Ev),
+ NSPAIR(_ZN7ee16151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee16151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16151[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee16151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee16151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee16151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee16151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee16151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee16151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee16151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee16151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee16151[] = {
+ {&(_ZTV7ee16151[5]), 5,22},
+ {&(_ZTV7ee16151[11]), 11,22},
+ {&(_ZTV7ee16151[17]), 17,22},
+ {&(_ZTV7ee16151[21]), 21,22},
+ {&(_tg__ZTV6dd6151__7ee16151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee16151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee16151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee16151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee16151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee16151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee16151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee16151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16151[];
+extern VTBL_ENTRY _ZTV7ee16151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16151[];
+static VTBL_ENTRY alt_thunk_names537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16151 = { "ee16151", // class name
+ bases_ee16151, 4,
+ &(vtc_ee16151[0]), // expected_vtbl_contents
+ &(vtt_ee16151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16151),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names537,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26151 : dd6151 {
+ int e;
+ virtual void foo(); // _ZN7ee261513fooEv
+ ~ee26151(); // tgen
+ ee26151(); // tgen
+};
+//SIG(1 ee26151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26151 ::foo(){vfunc_called(this, "_ZN7ee261513fooEv");}
+ee26151 ::~ee26151(){ note_dtor("ee26151", this);} // tgen
+ee26151 ::ee26151(){ note_ctor("ee26151", this);} // tgen
+
+static void Test_ee26151()
+{
+ extern Class_Descriptor cd_ee26151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26151, buf);
+ ee26151 *dp, &lv = *(dp=new (buf) ee26151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee26151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(24,16), "ee26151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), 0, "ee26151");
+ check_base_class_offset(lv, (dd6151*), 0, "ee26151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26151.e");
+ test_class_info(&lv, &cd_ee26151);
+ dp->~ee26151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26151(Test_ee26151, "ee26151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26151C1Ev();
+extern void _ZN7ee26151D1Ev();
+Name_Map name_map_ee26151[] = {
+ NSPAIR(_ZN7ee26151C1Ev),
+ NSPAIR(_ZN7ee26151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee26151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN7ee261513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee261513fooEv,_ZTv0_n12_N7ee261513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee261513fooEv,_ZThn24_N7ee261513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN7ee261513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261513fooEv,_ZTv0_n12_N7ee261513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee26151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee26151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee26151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee26151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee26151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee26151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee26151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee26151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee26151[] = {
+ {&(_ZTV7ee26151[4]), 4,15},
+ {&(_tg__ZTV6dd6151__7ee26151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee26151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee26151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee26151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee26151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee26151[3]), 3,4},
+ {&(_ZTV7ee26151[10]), 10,15},
+ {&(_ZTV7ee26151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee26151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee26151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26151[];
+extern VTBL_ENTRY _ZTV7ee26151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26151[];
+static VTBL_ENTRY alt_thunk_names538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261513fooEv,_ZTv0_n12_N7ee261513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee261513fooEv,_ZThn24_N7ee261513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26151 = { "ee26151", // class name
+ bases_ee26151, 4,
+ &(vtc_ee26151[0]), // expected_vtbl_contents
+ &(vtt_ee26151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names538,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36151 : virtual dd6151 {
+ int e;
+ virtual void foo(); // _ZN7ee361513fooEv
+ ~ee36151(); // tgen
+ ee36151(); // tgen
+};
+//SIG(1 ee36151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36151 ::foo(){vfunc_called(this, "_ZN7ee361513fooEv");}
+ee36151 ::~ee36151(){ note_dtor("ee36151", this);} // tgen
+ee36151 ::ee36151(){ note_ctor("ee36151", this);} // tgen
+
+static void Test_ee36151()
+{
+ extern Class_Descriptor cd_ee36151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36151, buf);
+ ee36151 *dp, &lv = *(dp=new (buf) ee36151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee36151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(32,20), "ee36151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), ABISELECT(16,8), "ee36151");
+ check_base_class_offset(lv, (dd6151*), ABISELECT(16,8), "ee36151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36151.e");
+ test_class_info(&lv, &cd_ee36151);
+ dp->~ee36151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36151(Test_ee36151, "ee36151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36151C1Ev();
+extern void _ZN7ee36151D1Ev();
+Name_Map name_map_ee36151[] = {
+ NSPAIR(_ZN7ee36151C1Ev),
+ NSPAIR(_ZN7ee36151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee36151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36151[];
+extern void _ZN7ee361513fooEv();
+extern void _ZN6dd61513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee361513fooEv,_ZTv0_n24_N7ee361513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361513fooEv,_ZThn8_N7ee361513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361513fooEv,_ZTv0_n12_N7ee361513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee361513fooEv,_ZThn28_N7ee361513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36151[0]),
+ (VTBL_ENTRY)&_ZN7ee361513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee361513fooEv,_ZTv0_n24_N7ee361513fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361513fooEv,_ZTv0_n12_N7ee361513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee36151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee36151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee36151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee36151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee36151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee36151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee36151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee36151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee36151[] = {
+ {&(_ZTV7ee36151[5]), 5,23},
+ {&(_ZTV7ee36151[12]), 12,23},
+ {&(_ZTV7ee36151[18]), 18,23},
+ {&(_ZTV7ee36151[22]), 22,23},
+ {&(_tg__ZTV6dd6151__7ee36151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee36151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee36151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee36151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee36151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee36151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee36151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee36151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36151[];
+extern VTBL_ENTRY _ZTV7ee36151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36151[];
+static VTBL_ENTRY alt_thunk_names539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361513fooEv,_ZTv0_n12_N7ee361513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee361513fooEv,_ZThn28_N7ee361513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee361513fooEv,_ZTv0_n24_N7ee361513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361513fooEv,_ZThn8_N7ee361513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36151 = { "ee36151", // class name
+ bases_ee36151, 4,
+ &(vtc_ee36151[0]), // expected_vtbl_contents
+ &(vtt_ee36151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36151),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names539,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46151 : dd6151 {
+ int e;
+ virtual void bar(); // _ZN7ee461513barEv
+ ~ee46151(); // tgen
+ ee46151(); // tgen
+};
+//SIG(1 ee46151) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46151 ::bar(){vfunc_called(this, "_ZN7ee461513barEv");}
+ee46151 ::~ee46151(){ note_dtor("ee46151", this);} // tgen
+ee46151 ::ee46151(){ note_ctor("ee46151", this);} // tgen
+
+static void Test_ee46151()
+{
+ extern Class_Descriptor cd_ee46151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46151, buf);
+ ee46151 *dp, &lv = *(dp=new (buf) ee46151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee46151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(24,16), "ee46151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), 0, "ee46151");
+ check_base_class_offset(lv, (dd6151*), 0, "ee46151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46151.e");
+ test_class_info(&lv, &cd_ee46151);
+ dp->~ee46151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46151(Test_ee46151, "ee46151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46151C1Ev();
+extern void _ZN7ee46151D1Ev();
+Name_Map name_map_ee46151[] = {
+ NSPAIR(_ZN7ee46151C1Ev),
+ NSPAIR(_ZN7ee46151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee46151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46151[];
+extern void _ZN7ee461513barEv();
+extern void _ZN6dd61513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee461513barEv,_ZTv0_n16_N7ee461513barEv)();
+extern void ABISELECT(_ZThn24_N7ee461513barEv,_ZThn16_N7ee461513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46151[0]),
+ (VTBL_ENTRY)&_ZN7ee461513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461513barEv,_ZTv0_n16_N7ee461513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee46151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee46151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee46151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee46151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee46151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee46151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee46151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee46151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee46151[] = {
+ {&(_ZTV7ee46151[4]), 4,15},
+ {&(_tg__ZTV6dd6151__7ee46151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee46151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee46151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee46151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee46151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee46151[3]), 3,4},
+ {&(_ZTV7ee46151[10]), 10,15},
+ {&(_ZTV7ee46151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee46151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee46151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46151[];
+extern VTBL_ENTRY _ZTV7ee46151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46151[];
+static VTBL_ENTRY alt_thunk_names540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461513barEv,_ZTv0_n16_N7ee461513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461513barEv,_ZThn16_N7ee461513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46151 = { "ee46151", // class name
+ bases_ee46151, 4,
+ &(vtc_ee46151[0]), // expected_vtbl_contents
+ &(vtt_ee46151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names540,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56151 : virtual dd6151 {
+ int e;
+ virtual void bar(); // _ZN7ee561513barEv
+ ~ee56151(); // tgen
+ ee56151(); // tgen
+};
+//SIG(1 ee56151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56151 ::bar(){vfunc_called(this, "_ZN7ee561513barEv");}
+ee56151 ::~ee56151(){ note_dtor("ee56151", this);} // tgen
+ee56151 ::ee56151(){ note_ctor("ee56151", this);} // tgen
+
+static void Test_ee56151()
+{
+ extern Class_Descriptor cd_ee56151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56151, buf);
+ ee56151 *dp, &lv = *(dp=new (buf) ee56151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee56151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(32,20), "ee56151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), ABISELECT(16,8), "ee56151");
+ check_base_class_offset(lv, (dd6151*), ABISELECT(16,8), "ee56151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56151.e");
+ test_class_info(&lv, &cd_ee56151);
+ dp->~ee56151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56151(Test_ee56151, "ee56151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56151C1Ev();
+extern void _ZN7ee56151D1Ev();
+Name_Map name_map_ee56151[] = {
+ NSPAIR(_ZN7ee56151C1Ev),
+ NSPAIR(_ZN7ee56151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee56151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56151[];
+extern void _ZN7ee561513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee561513barEv,_ZTv0_n20_N7ee561513barEv)();
+extern void ABISELECT(_ZThn16_N7ee561513barEv,_ZThn8_N7ee561513barEv)() __attribute__((weak));
+extern void _ZN6dd61513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561513barEv,_ZTv0_n16_N7ee561513barEv)();
+extern void ABISELECT(_ZThn32_N7ee561513barEv,_ZThn20_N7ee561513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56151[0]),
+ (VTBL_ENTRY)&_ZN7ee561513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee561513barEv,_ZTv0_n20_N7ee561513barEv),
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561513barEv,_ZTv0_n16_N7ee561513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee56151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee56151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee56151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee56151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee56151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee56151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee56151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee56151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee56151[] = {
+ {&(_ZTV7ee56151[5]), 5,23},
+ {&(_ZTV7ee56151[12]), 12,23},
+ {&(_ZTV7ee56151[18]), 18,23},
+ {&(_ZTV7ee56151[22]), 22,23},
+ {&(_tg__ZTV6dd6151__7ee56151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee56151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee56151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee56151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee56151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee56151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee56151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee56151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56151[];
+extern VTBL_ENTRY _ZTV7ee56151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56151[];
+static VTBL_ENTRY alt_thunk_names541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561513barEv,_ZTv0_n16_N7ee561513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561513barEv,_ZThn20_N7ee561513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee561513barEv,_ZTv0_n20_N7ee561513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561513barEv,_ZThn8_N7ee561513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56151 = { "ee56151", // class name
+ bases_ee56151, 4,
+ &(vtc_ee56151[0]), // expected_vtbl_contents
+ &(vtt_ee56151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56151),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names541,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66151 : dd6151 {
+ int e;
+ virtual void foo(); // _ZN7ee661513fooEv
+ virtual void bar(); // _ZN7ee661513barEv
+ ~ee66151(); // tgen
+ ee66151(); // tgen
+};
+//SIG(1 ee66151) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66151 ::foo(){vfunc_called(this, "_ZN7ee661513fooEv");}
+void ee66151 ::bar(){vfunc_called(this, "_ZN7ee661513barEv");}
+ee66151 ::~ee66151(){ note_dtor("ee66151", this);} // tgen
+ee66151 ::ee66151(){ note_ctor("ee66151", this);} // tgen
+
+static void Test_ee66151()
+{
+ extern Class_Descriptor cd_ee66151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66151, buf);
+ ee66151 *dp, &lv = *(dp=new (buf) ee66151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee66151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(24,16), "ee66151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), 0, "ee66151");
+ check_base_class_offset(lv, (dd6151*), 0, "ee66151");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66151.e");
+ test_class_info(&lv, &cd_ee66151);
+ dp->~ee66151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66151(Test_ee66151, "ee66151", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66151C1Ev();
+extern void _ZN7ee66151D1Ev();
+Name_Map name_map_ee66151[] = {
+ NSPAIR(_ZN7ee66151C1Ev),
+ NSPAIR(_ZN7ee66151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee66151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66151[];
+extern void _ZN7ee661513barEv();
+extern void _ZN7ee661513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee661513barEv,_ZTv0_n16_N7ee661513barEv)();
+extern void ABISELECT(_ZThn24_N7ee661513barEv,_ZThn16_N7ee661513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee661513fooEv,_ZTv0_n12_N7ee661513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee661513fooEv,_ZThn24_N7ee661513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66151[0]),
+ (VTBL_ENTRY)&_ZN7ee661513barEv,
+ (VTBL_ENTRY)&_ZN7ee661513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661513barEv,_ZTv0_n16_N7ee661513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661513fooEv,_ZTv0_n12_N7ee661513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee66151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee66151[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee66151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee66151[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee66151[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee66151[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee66151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee66151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee66151[] = {
+ {&(_ZTV7ee66151[4]), 4,15},
+ {&(_tg__ZTV6dd6151__7ee66151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee66151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee66151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee66151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee66151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee66151[3]), 3,4},
+ {&(_ZTV7ee66151[10]), 10,15},
+ {&(_ZTV7ee66151[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee66151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee66151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66151[];
+extern VTBL_ENTRY _ZTV7ee66151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66151[];
+static VTBL_ENTRY alt_thunk_names542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61513fooEv,_ZThn24_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61513barEv,_ZThn16_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661513fooEv,_ZTv0_n12_N7ee661513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee661513fooEv,_ZThn24_N7ee661513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661513barEv,_ZTv0_n16_N7ee661513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661513barEv,_ZThn16_N7ee661513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66151 = { "ee66151", // class name
+ bases_ee66151, 4,
+ &(vtc_ee66151[0]), // expected_vtbl_contents
+ &(vtt_ee66151[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66151),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66151),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names542,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76151 : virtual dd6151 {
+ int e;
+ virtual void foo(); // _ZN7ee761513fooEv
+ virtual void bar(); // _ZN7ee761513barEv
+ ~ee76151(); // tgen
+ ee76151(); // tgen
+};
+//SIG(1 ee76151) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76151 ::foo(){vfunc_called(this, "_ZN7ee761513fooEv");}
+void ee76151 ::bar(){vfunc_called(this, "_ZN7ee761513barEv");}
+ee76151 ::~ee76151(){ note_dtor("ee76151", this);} // tgen
+ee76151 ::ee76151(){ note_ctor("ee76151", this);} // tgen
+
+static void Test_ee76151()
+{
+ extern Class_Descriptor cd_ee76151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76151, buf);
+ ee76151 *dp, &lv = *(dp=new (buf) ee76151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee76151");
+ check_base_class_offset(lv, (bb51*)(cc151*)(dd6151*), ABISELECT(32,20), "ee76151");
+ check_base_class_offset(lv, (cc151*)(dd6151*), ABISELECT(16,8), "ee76151");
+ check_base_class_offset(lv, (dd6151*), ABISELECT(16,8), "ee76151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76151.e");
+ test_class_info(&lv, &cd_ee76151);
+ dp->~ee76151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76151(Test_ee76151, "ee76151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76151C1Ev();
+extern void _ZN7ee76151D1Ev();
+Name_Map name_map_ee76151[] = {
+ NSPAIR(_ZN7ee76151C1Ev),
+ NSPAIR(_ZN7ee76151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd6151;
+extern VTBL_ENTRY _ZTI6dd6151[];
+extern VTBL_ENTRY _ZTV6dd6151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6151[];
+static Base_Class bases_ee76151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76151[];
+extern void _ZN7ee761513fooEv();
+extern void _ZN7ee761513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee761513barEv,_ZTv0_n20_N7ee761513barEv)();
+extern void ABISELECT(_ZThn16_N7ee761513barEv,_ZThn8_N7ee761513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee761513fooEv,_ZTv0_n24_N7ee761513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761513fooEv,_ZThn8_N7ee761513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761513barEv,_ZTv0_n16_N7ee761513barEv)();
+extern void ABISELECT(_ZThn32_N7ee761513barEv,_ZThn20_N7ee761513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761513fooEv,_ZTv0_n12_N7ee761513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee761513fooEv,_ZThn28_N7ee761513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76151[0]),
+ (VTBL_ENTRY)&_ZN7ee761513fooEv,
+ (VTBL_ENTRY)&_ZN7ee761513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761513barEv,_ZTv0_n20_N7ee761513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee761513fooEv,_ZTv0_n24_N7ee761513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761513barEv,_ZTv0_n16_N7ee761513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761513fooEv,_ZTv0_n12_N7ee761513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76151[];
+extern void _ZN6dd61513barEv();
+extern void _ZN6dd61513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6151__7ee76151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&_ZN6dd61513barEv,
+ (VTBL_ENTRY)&_ZN6dd61513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1516dd6151__7ee76151[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc1516dd6151__7ee76151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc1516dd6151__7ee76151[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv)();
+extern void ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6151__7ee76151[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6151__7ee76151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee76151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee76151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee76151[] = {
+ {&(_ZTV7ee76151[5]), 5,24},
+ {&(_ZTV7ee76151[13]), 13,24},
+ {&(_ZTV7ee76151[19]), 19,24},
+ {&(_ZTV7ee76151[23]), 23,24},
+ {&(_tg__ZTV6dd6151__7ee76151[4]), 4,6},
+ {&(_tg__ZTV5cc1516dd6151__7ee76151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc1516dd6151__7ee76151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc1516dd6151__7ee76151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6151__7ee76151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6151__7ee76151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee76151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee76151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76151[];
+extern VTBL_ENTRY _ZTV7ee76151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76151[];
+static VTBL_ENTRY alt_thunk_names543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61513fooEv,_ZTv0_n12_N6dd61513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61513fooEv,_ZThn20_N6dd61513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61513barEv,_ZTv0_n16_N6dd61513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61513barEv,_ZThn12_N6dd61513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761513fooEv,_ZTv0_n12_N7ee761513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee761513fooEv,_ZThn28_N7ee761513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761513barEv,_ZTv0_n16_N7ee761513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761513barEv,_ZThn20_N7ee761513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee761513fooEv,_ZTv0_n24_N7ee761513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761513fooEv,_ZThn8_N7ee761513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761513barEv,_ZTv0_n20_N7ee761513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761513barEv,_ZThn8_N7ee761513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76151 = { "ee76151", // class name
+ bases_ee76151, 4,
+ &(vtc_ee76151[0]), // expected_vtbl_contents
+ &(vtt_ee76151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76151),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76151),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names543,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7151 : virtual cc151 {
+ int d;
+ virtual void bar(); // _ZN6dd71513barEv
+ virtual void foo(); // _ZN6dd71513fooEv
+ ~dd7151(); // tgen
+ dd7151(); // tgen
+};
+//SIG(-1 dd7151) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7151 ::bar(){vfunc_called(this, "_ZN6dd71513barEv");}
+void dd7151 ::foo(){vfunc_called(this, "_ZN6dd71513fooEv");}
+dd7151 ::~dd7151(){ note_dtor("dd7151", this);} // tgen
+dd7151 ::dd7151(){ note_ctor("dd7151", this);} // tgen
+
+static void Test_dd7151()
+{
+ extern Class_Descriptor cd_dd7151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7151, buf);
+ dd7151 *dp, &lv = *(dp=new (buf) dd7151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd7151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,16), "dd7151");
+ check_base_class_offset(lv, (cc151*), ABISELECT(16,8), "dd7151");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7151.d");
+ test_class_info(&lv, &cd_dd7151);
+ dp->~dd7151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7151(Test_dd7151, "dd7151", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7151C1Ev();
+extern void _ZN6dd7151D1Ev();
+Name_Map name_map_dd7151[] = {
+ NSPAIR(_ZN6dd7151C1Ev),
+ NSPAIR(_ZN6dd7151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+static Base_Class bases_dd7151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7151[];
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__6dd7151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__6dd7151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd7151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7151[] = {
+ {&(_ZTV6dd7151[5]), 5,20},
+ {&(_ZTV6dd7151[11]), 11,20},
+ {&(_ZTV6dd7151[15]), 15,20},
+ {&(_ZTV6dd7151[19]), 19,20},
+ {&(_tg__ZTV5cc151__6dd7151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__6dd7151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__6dd7151[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd7151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd7151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static VTBL_ENTRY alt_thunk_names544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7151 = { "dd7151", // class name
+ bases_dd7151, 3,
+ &(vtc_dd7151[0]), // expected_vtbl_contents
+ &(vtt_dd7151[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7151),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names544,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07151 : dd7151 {
+ int e;
+ ~ee07151(); // tgen
+ ee07151(); // tgen
+};
+//SIG(1 ee07151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07151 ::~ee07151(){ note_dtor("ee07151", this);} // tgen
+ee07151 ::ee07151(){ note_ctor("ee07151", this);} // tgen
+
+static void Test_ee07151()
+{
+ extern Class_Descriptor cd_ee07151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07151, buf);
+ ee07151 *dp, &lv = *(dp=new (buf) ee07151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee07151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee07151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(16,12), "ee07151");
+ check_base_class_offset(lv, (dd7151*), 0, "ee07151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07151.e");
+ test_class_info(&lv, &cd_ee07151);
+ dp->~ee07151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07151(Test_ee07151, "ee07151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07151C1Ev();
+extern void _ZN7ee07151D1Ev();
+Name_Map name_map_ee07151[] = {
+ NSPAIR(_ZN7ee07151C1Ev),
+ NSPAIR(_ZN7ee07151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee07151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee07151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee07151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee07151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee07151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee07151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee07151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee07151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee07151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee07151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07151[] = {
+ {&(_ZTV7ee07151[5]), 5,20},
+ {&(_tg__ZTV6dd7151__7ee07151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee07151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee07151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee07151[3]), 3,4},
+ {&(_ZTV7ee07151[11]), 11,20},
+ {&(_ZTV7ee07151[15]), 15,20},
+ {&(_ZTV7ee07151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee07151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee07151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee07151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee07151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee07151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07151[];
+extern VTBL_ENTRY _ZTV7ee07151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07151[];
+static VTBL_ENTRY alt_thunk_names545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07151 = { "ee07151", // class name
+ bases_ee07151, 4,
+ &(vtc_ee07151[0]), // expected_vtbl_contents
+ &(vtt_ee07151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17151 : virtual dd7151 {
+ int e;
+ ~ee17151(); // tgen
+ ee17151(); // tgen
+};
+//SIG(1 ee17151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17151 ::~ee17151(){ note_dtor("ee17151", this);} // tgen
+ee17151 ::ee17151(){ note_ctor("ee17151", this);} // tgen
+
+static void Test_ee17151()
+{
+ extern Class_Descriptor cd_ee17151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17151, buf);
+ ee17151 *dp, &lv = *(dp=new (buf) ee17151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee17151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee17151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(32,16), "ee17151");
+ check_base_class_offset(lv, (dd7151*), ABISELECT(16,8), "ee17151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17151.e");
+ test_class_info(&lv, &cd_ee17151);
+ dp->~ee17151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17151(Test_ee17151, "ee17151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17151C1Ev();
+extern void _ZN7ee17151D1Ev();
+Name_Map name_map_ee17151[] = {
+ NSPAIR(_ZN7ee17151C1Ev),
+ NSPAIR(_ZN7ee17151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee17151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17151[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee17151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee17151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee17151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee17151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee17151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee17151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee17151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee17151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee17151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17151[] = {
+ {&(_ZTV7ee17151[6]), 6,28},
+ {&(_ZTV7ee17151[13]), 13,28},
+ {&(_ZTV7ee17151[19]), 19,28},
+ {&(_ZTV7ee17151[23]), 23,28},
+ {&(_ZTV7ee17151[27]), 27,28},
+ {&(_tg__ZTV6dd7151__7ee17151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee17151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee17151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee17151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee17151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee17151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee17151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee17151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee17151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17151[];
+extern VTBL_ENTRY _ZTV7ee17151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17151[];
+static VTBL_ENTRY alt_thunk_names546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17151 = { "ee17151", // class name
+ bases_ee17151, 4,
+ &(vtc_ee17151[0]), // expected_vtbl_contents
+ &(vtt_ee17151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17151),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names546,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27151 : dd7151 {
+ int e;
+ virtual void foo(); // _ZN7ee271513fooEv
+ ~ee27151(); // tgen
+ ee27151(); // tgen
+};
+//SIG(1 ee27151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27151 ::foo(){vfunc_called(this, "_ZN7ee271513fooEv");}
+ee27151 ::~ee27151(){ note_dtor("ee27151", this);} // tgen
+ee27151 ::ee27151(){ note_ctor("ee27151", this);} // tgen
+
+static void Test_ee27151()
+{
+ extern Class_Descriptor cd_ee27151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27151, buf);
+ ee27151 *dp, &lv = *(dp=new (buf) ee27151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee27151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee27151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(16,12), "ee27151");
+ check_base_class_offset(lv, (dd7151*), 0, "ee27151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27151.e");
+ test_class_info(&lv, &cd_ee27151);
+ dp->~ee27151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27151(Test_ee27151, "ee27151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27151C1Ev();
+extern void _ZN7ee27151D1Ev();
+Name_Map name_map_ee27151[] = {
+ NSPAIR(_ZN7ee27151C1Ev),
+ NSPAIR(_ZN7ee27151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee27151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN7ee271513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee271513fooEv,_ZTv0_n12_N7ee271513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee271513fooEv,_ZThn28_N7ee271513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN7ee271513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271513fooEv,_ZTv0_n12_N7ee271513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee27151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee27151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee27151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee27151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee27151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee27151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee27151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee27151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee27151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27151[] = {
+ {&(_ZTV7ee27151[5]), 5,20},
+ {&(_tg__ZTV6dd7151__7ee27151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee27151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee27151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee27151[3]), 3,4},
+ {&(_ZTV7ee27151[11]), 11,20},
+ {&(_ZTV7ee27151[15]), 15,20},
+ {&(_ZTV7ee27151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee27151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee27151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee27151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee27151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee27151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27151[];
+extern VTBL_ENTRY _ZTV7ee27151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27151[];
+static VTBL_ENTRY alt_thunk_names547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271513fooEv,_ZTv0_n12_N7ee271513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee271513fooEv,_ZThn28_N7ee271513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27151 = { "ee27151", // class name
+ bases_ee27151, 4,
+ &(vtc_ee27151[0]), // expected_vtbl_contents
+ &(vtt_ee27151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names547,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37151 : virtual dd7151 {
+ int e;
+ virtual void foo(); // _ZN7ee371513fooEv
+ ~ee37151(); // tgen
+ ee37151(); // tgen
+};
+//SIG(1 ee37151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37151 ::foo(){vfunc_called(this, "_ZN7ee371513fooEv");}
+ee37151 ::~ee37151(){ note_dtor("ee37151", this);} // tgen
+ee37151 ::ee37151(){ note_ctor("ee37151", this);} // tgen
+
+static void Test_ee37151()
+{
+ extern Class_Descriptor cd_ee37151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37151, buf);
+ ee37151 *dp, &lv = *(dp=new (buf) ee37151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee37151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee37151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(32,16), "ee37151");
+ check_base_class_offset(lv, (dd7151*), ABISELECT(16,8), "ee37151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37151.e");
+ test_class_info(&lv, &cd_ee37151);
+ dp->~ee37151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37151(Test_ee37151, "ee37151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37151C1Ev();
+extern void _ZN7ee37151D1Ev();
+Name_Map name_map_ee37151[] = {
+ NSPAIR(_ZN7ee37151C1Ev),
+ NSPAIR(_ZN7ee37151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee37151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37151[];
+extern void _ZN7ee371513fooEv();
+extern void _ZN6dd71513barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee371513fooEv,_ZTv0_n28_N7ee371513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371513fooEv,_ZThn8_N7ee371513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371513fooEv,_ZTv0_n12_N7ee371513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee371513fooEv,_ZThn32_N7ee371513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37151[0]),
+ (VTBL_ENTRY)&_ZN7ee371513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee371513fooEv,_ZTv0_n28_N7ee371513fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37151[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371513fooEv,_ZTv0_n12_N7ee371513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee37151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee37151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee37151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee37151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee37151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee37151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee37151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee37151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee37151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37151[] = {
+ {&(_ZTV7ee37151[6]), 6,29},
+ {&(_ZTV7ee37151[14]), 14,29},
+ {&(_ZTV7ee37151[20]), 20,29},
+ {&(_ZTV7ee37151[24]), 24,29},
+ {&(_ZTV7ee37151[28]), 28,29},
+ {&(_tg__ZTV6dd7151__7ee37151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee37151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee37151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee37151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee37151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee37151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee37151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee37151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee37151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37151[];
+extern VTBL_ENTRY _ZTV7ee37151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37151[];
+static VTBL_ENTRY alt_thunk_names548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371513fooEv,_ZTv0_n12_N7ee371513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee371513fooEv,_ZThn32_N7ee371513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee371513fooEv,_ZTv0_n28_N7ee371513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371513fooEv,_ZThn8_N7ee371513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37151 = { "ee37151", // class name
+ bases_ee37151, 4,
+ &(vtc_ee37151[0]), // expected_vtbl_contents
+ &(vtt_ee37151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37151),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names548,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47151 : dd7151 {
+ int e;
+ virtual void bar(); // _ZN7ee471513barEv
+ ~ee47151(); // tgen
+ ee47151(); // tgen
+};
+//SIG(1 ee47151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47151 ::bar(){vfunc_called(this, "_ZN7ee471513barEv");}
+ee47151 ::~ee47151(){ note_dtor("ee47151", this);} // tgen
+ee47151 ::ee47151(){ note_ctor("ee47151", this);} // tgen
+
+static void Test_ee47151()
+{
+ extern Class_Descriptor cd_ee47151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47151, buf);
+ ee47151 *dp, &lv = *(dp=new (buf) ee47151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee47151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee47151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(16,12), "ee47151");
+ check_base_class_offset(lv, (dd7151*), 0, "ee47151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47151.e");
+ test_class_info(&lv, &cd_ee47151);
+ dp->~ee47151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47151(Test_ee47151, "ee47151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47151C1Ev();
+extern void _ZN7ee47151D1Ev();
+Name_Map name_map_ee47151[] = {
+ NSPAIR(_ZN7ee47151C1Ev),
+ NSPAIR(_ZN7ee47151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee47151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47151[];
+extern void _ZN7ee471513barEv();
+extern void _ZN6dd71513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee471513barEv,_ZTv0_n16_N7ee471513barEv)();
+extern void ABISELECT(_ZThn32_N7ee471513barEv,_ZThn20_N7ee471513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47151[0]),
+ (VTBL_ENTRY)&_ZN7ee471513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471513barEv,_ZTv0_n16_N7ee471513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee47151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee47151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee47151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee47151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee47151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee47151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee47151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee47151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee47151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47151[] = {
+ {&(_ZTV7ee47151[5]), 5,20},
+ {&(_tg__ZTV6dd7151__7ee47151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee47151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee47151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee47151[3]), 3,4},
+ {&(_ZTV7ee47151[11]), 11,20},
+ {&(_ZTV7ee47151[15]), 15,20},
+ {&(_ZTV7ee47151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee47151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee47151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee47151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee47151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee47151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47151[];
+extern VTBL_ENTRY _ZTV7ee47151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47151[];
+static VTBL_ENTRY alt_thunk_names549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471513barEv,_ZTv0_n16_N7ee471513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471513barEv,_ZThn20_N7ee471513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47151 = { "ee47151", // class name
+ bases_ee47151, 4,
+ &(vtc_ee47151[0]), // expected_vtbl_contents
+ &(vtt_ee47151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names549,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57151 : virtual dd7151 {
+ int e;
+ virtual void bar(); // _ZN7ee571513barEv
+ ~ee57151(); // tgen
+ ee57151(); // tgen
+};
+//SIG(1 ee57151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57151 ::bar(){vfunc_called(this, "_ZN7ee571513barEv");}
+ee57151 ::~ee57151(){ note_dtor("ee57151", this);} // tgen
+ee57151 ::ee57151(){ note_ctor("ee57151", this);} // tgen
+
+static void Test_ee57151()
+{
+ extern Class_Descriptor cd_ee57151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57151, buf);
+ ee57151 *dp, &lv = *(dp=new (buf) ee57151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee57151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee57151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(32,16), "ee57151");
+ check_base_class_offset(lv, (dd7151*), ABISELECT(16,8), "ee57151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57151.e");
+ test_class_info(&lv, &cd_ee57151);
+ dp->~ee57151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57151(Test_ee57151, "ee57151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57151C1Ev();
+extern void _ZN7ee57151D1Ev();
+Name_Map name_map_ee57151[] = {
+ NSPAIR(_ZN7ee57151C1Ev),
+ NSPAIR(_ZN7ee57151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee57151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57151[];
+extern void _ZN7ee571513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee571513barEv,_ZTv0_n24_N7ee571513barEv)();
+extern void ABISELECT(_ZThn16_N7ee571513barEv,_ZThn8_N7ee571513barEv)() __attribute__((weak));
+extern void _ZN6dd71513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee571513barEv,_ZTv0_n16_N7ee571513barEv)();
+extern void ABISELECT(_ZThn48_N7ee571513barEv,_ZThn24_N7ee571513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57151[0]),
+ (VTBL_ENTRY)&_ZN7ee571513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee571513barEv,_ZTv0_n24_N7ee571513barEv),
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571513barEv,_ZTv0_n16_N7ee571513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee57151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee57151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee57151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee57151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee57151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee57151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee57151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee57151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee57151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57151[] = {
+ {&(_ZTV7ee57151[6]), 6,29},
+ {&(_ZTV7ee57151[14]), 14,29},
+ {&(_ZTV7ee57151[20]), 20,29},
+ {&(_ZTV7ee57151[24]), 24,29},
+ {&(_ZTV7ee57151[28]), 28,29},
+ {&(_tg__ZTV6dd7151__7ee57151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee57151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee57151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee57151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee57151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee57151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee57151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee57151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee57151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57151[];
+extern VTBL_ENTRY _ZTV7ee57151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57151[];
+static VTBL_ENTRY alt_thunk_names550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571513barEv,_ZTv0_n16_N7ee571513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571513barEv,_ZThn24_N7ee571513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee571513barEv,_ZTv0_n24_N7ee571513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571513barEv,_ZThn8_N7ee571513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57151 = { "ee57151", // class name
+ bases_ee57151, 4,
+ &(vtc_ee57151[0]), // expected_vtbl_contents
+ &(vtt_ee57151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57151),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names550,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67151 : dd7151 {
+ int e;
+ virtual void foo(); // _ZN7ee671513fooEv
+ virtual void bar(); // _ZN7ee671513barEv
+ ~ee67151(); // tgen
+ ee67151(); // tgen
+};
+//SIG(1 ee67151) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67151 ::foo(){vfunc_called(this, "_ZN7ee671513fooEv");}
+void ee67151 ::bar(){vfunc_called(this, "_ZN7ee671513barEv");}
+ee67151 ::~ee67151(){ note_dtor("ee67151", this);} // tgen
+ee67151 ::ee67151(){ note_ctor("ee67151", this);} // tgen
+
+static void Test_ee67151()
+{
+ extern Class_Descriptor cd_ee67151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67151, buf);
+ ee67151 *dp, &lv = *(dp=new (buf) ee67151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee67151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(32,20), "ee67151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(16,12), "ee67151");
+ check_base_class_offset(lv, (dd7151*), 0, "ee67151");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67151.e");
+ test_class_info(&lv, &cd_ee67151);
+ dp->~ee67151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67151(Test_ee67151, "ee67151", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67151C1Ev();
+extern void _ZN7ee67151D1Ev();
+Name_Map name_map_ee67151[] = {
+ NSPAIR(_ZN7ee67151C1Ev),
+ NSPAIR(_ZN7ee67151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee67151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67151[];
+extern void _ZN7ee671513barEv();
+extern void _ZN7ee671513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee671513barEv,_ZTv0_n16_N7ee671513barEv)();
+extern void ABISELECT(_ZThn32_N7ee671513barEv,_ZThn20_N7ee671513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee671513fooEv,_ZTv0_n12_N7ee671513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee671513fooEv,_ZThn28_N7ee671513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67151[0]),
+ (VTBL_ENTRY)&_ZN7ee671513barEv,
+ (VTBL_ENTRY)&_ZN7ee671513fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67151[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671513barEv,_ZTv0_n16_N7ee671513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671513fooEv,_ZTv0_n12_N7ee671513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee67151[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee67151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee67151[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee67151[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee67151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee67151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee67151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee67151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee67151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67151[] = {
+ {&(_ZTV7ee67151[5]), 5,20},
+ {&(_tg__ZTV6dd7151__7ee67151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee67151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee67151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee67151[3]), 3,4},
+ {&(_ZTV7ee67151[11]), 11,20},
+ {&(_ZTV7ee67151[15]), 15,20},
+ {&(_ZTV7ee67151[19]), 19,20},
+ {&(_tg__ZTV5cc151__7ee67151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee67151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee67151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee67151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee67151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67151[];
+extern VTBL_ENTRY _ZTV7ee67151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67151[];
+static VTBL_ENTRY alt_thunk_names551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn28_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn20_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671513fooEv,_ZTv0_n12_N7ee671513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee671513fooEv,_ZThn28_N7ee671513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671513barEv,_ZTv0_n16_N7ee671513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671513barEv,_ZThn20_N7ee671513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67151 = { "ee67151", // class name
+ bases_ee67151, 4,
+ &(vtc_ee67151[0]), // expected_vtbl_contents
+ &(vtt_ee67151[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67151),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67151),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67151),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names551,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77151 : virtual dd7151 {
+ int e;
+ virtual void foo(); // _ZN7ee771513fooEv
+ virtual void bar(); // _ZN7ee771513barEv
+ ~ee77151(); // tgen
+ ee77151(); // tgen
+};
+//SIG(1 ee77151) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77151 ::foo(){vfunc_called(this, "_ZN7ee771513fooEv");}
+void ee77151 ::bar(){vfunc_called(this, "_ZN7ee771513barEv");}
+ee77151 ::~ee77151(){ note_dtor("ee77151", this);} // tgen
+ee77151 ::ee77151(){ note_ctor("ee77151", this);} // tgen
+
+static void Test_ee77151()
+{
+ extern Class_Descriptor cd_ee77151;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77151, buf);
+ ee77151 *dp, &lv = *(dp=new (buf) ee77151());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77151)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77151)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee77151");
+ check_base_class_offset(lv, (bb51*)(cc151*), ABISELECT(48,24), "ee77151");
+ check_base_class_offset(lv, (cc151*)(dd7151*), ABISELECT(32,16), "ee77151");
+ check_base_class_offset(lv, (dd7151*), ABISELECT(16,8), "ee77151");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77151.e");
+ test_class_info(&lv, &cd_ee77151);
+ dp->~ee77151();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77151(Test_ee77151, "ee77151", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77151C1Ev();
+extern void _ZN7ee77151D1Ev();
+Name_Map name_map_ee77151[] = {
+ NSPAIR(_ZN7ee77151C1Ev),
+ NSPAIR(_ZN7ee77151D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc151;
+extern VTBL_ENTRY _ZTI5cc151[];
+extern VTBL_ENTRY _ZTV5cc151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc151[];
+extern Class_Descriptor cd_dd7151;
+extern VTBL_ENTRY _ZTI6dd7151[];
+extern VTBL_ENTRY _ZTV6dd7151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7151[];
+static Base_Class bases_ee77151[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc151, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7151, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77151[];
+extern void _ZN7ee771513fooEv();
+extern void _ZN7ee771513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee771513barEv,_ZTv0_n24_N7ee771513barEv)();
+extern void ABISELECT(_ZThn16_N7ee771513barEv,_ZThn8_N7ee771513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee771513fooEv,_ZTv0_n28_N7ee771513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771513fooEv,_ZThn8_N7ee771513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771513barEv,_ZTv0_n16_N7ee771513barEv)();
+extern void ABISELECT(_ZThn48_N7ee771513barEv,_ZThn24_N7ee771513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771513fooEv,_ZTv0_n12_N7ee771513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee771513fooEv,_ZThn32_N7ee771513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77151[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77151[0]),
+ (VTBL_ENTRY)&_ZN7ee771513fooEv,
+ (VTBL_ENTRY)&_ZN7ee771513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771513barEv,_ZTv0_n24_N7ee771513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee771513fooEv,_ZTv0_n28_N7ee771513fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77151[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771513barEv,_ZTv0_n16_N7ee771513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771513fooEv,_ZTv0_n12_N7ee771513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77151[];
+extern void _ZN6dd71513barEv();
+extern void _ZN6dd71513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7151__7ee77151[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&_ZN6dd71513barEv,
+ (VTBL_ENTRY)&_ZN6dd71513fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc151__6dd7151__7ee77151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv)();
+extern void ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7151__7ee77151[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7151__7ee77151[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7151[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc151__7ee77151[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc151__7ee77151[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc151__7ee77151[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc151[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee77151[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee77151[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77151[] = {
+ {&(_ZTV7ee77151[6]), 6,30},
+ {&(_ZTV7ee77151[15]), 15,30},
+ {&(_ZTV7ee77151[21]), 21,30},
+ {&(_ZTV7ee77151[25]), 25,30},
+ {&(_ZTV7ee77151[29]), 29,30},
+ {&(_tg__ZTV6dd7151__7ee77151[5]), 5,7},
+ {&(_tg__ZTV5cc151__6dd7151__7ee77151[4]), 4,4},
+ {&(_tg__ZTV4bb51__6dd7151__7ee77151[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7151__7ee77151[3]), 3,4},
+ {&(_tg__ZTV5cc151__7ee77151[4]), 4,4},
+ {&(_tg__ZTV4bb51__5cc151__7ee77151[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc151__7ee77151[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee77151[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee77151[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77151[];
+extern VTBL_ENTRY _ZTV7ee77151[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77151[];
+static VTBL_ENTRY alt_thunk_names552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71513fooEv,_ZTv0_n12_N6dd71513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71513fooEv,_ZThn24_N6dd71513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71513barEv,_ZTv0_n16_N6dd71513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71513barEv,_ZThn16_N6dd71513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771513fooEv,_ZTv0_n12_N7ee771513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee771513fooEv,_ZThn32_N7ee771513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771513barEv,_ZTv0_n16_N7ee771513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771513barEv,_ZThn24_N7ee771513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee771513fooEv,_ZTv0_n28_N7ee771513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771513fooEv,_ZThn8_N7ee771513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771513barEv,_ZTv0_n24_N7ee771513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771513barEv,_ZThn8_N7ee771513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77151 = { "ee77151", // class name
+ bases_ee77151, 4,
+ &(vtc_ee77151[0]), // expected_vtbl_contents
+ &(vtt_ee77151[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77151),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77151),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77151),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names552,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc251 : bb51 {
+ int c;
+ virtual void foo(); // _ZN5cc2513fooEv
+ ~cc251(); // tgen
+ cc251(); // tgen
+};
+//SIG(-1 cc251) C1{ BC2{ VBC3{ v1 Fi} v2 Fi} v1 Fi}
+
+
+void cc251 ::foo(){vfunc_called(this, "_ZN5cc2513fooEv");}
+cc251 ::~cc251(){ note_dtor("cc251", this);} // tgen
+cc251 ::cc251(){ note_ctor("cc251", this);} // tgen
+
+static void Test_cc251()
+{
+ extern Class_Descriptor cd_cc251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc251, buf);
+ cc251 *dp, &lv = *(dp=new (buf) cc251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc251)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(16,12), "cc251");
+ check_base_class_offset(lv, (bb51*), 0, "cc251");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc251.c");
+ test_class_info(&lv, &cd_cc251);
+ dp->~cc251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc251(Test_cc251, "cc251", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc251C1Ev();
+extern void _ZN5cc251D1Ev();
+Name_Map name_map_cc251[] = {
+ NSPAIR(_ZN5cc251C1Ev),
+ NSPAIR(_ZN5cc251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc251[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc251[] = {
+ {&(_ZTV5cc251[3]), 3,9},
+ {&(_tg__ZTV4bb51__5cc251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc251[3]), 3,4},
+ {&(_ZTV5cc251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static VTBL_ENTRY alt_thunk_names553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc251 = { "cc251", // class name
+ bases_cc251, 2,
+ &(vtc_cc251[0]), // expected_vtbl_contents
+ &(vtt_cc251[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc251),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names553,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0251 : cc251 {
+ int d;
+ ~dd0251(); // tgen
+ dd0251(); // tgen
+};
+//SIG(-1 dd0251) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0251 ::~dd0251(){ note_dtor("dd0251", this);} // tgen
+dd0251 ::dd0251(){ note_ctor("dd0251", this);} // tgen
+
+static void Test_dd0251()
+{
+ extern Class_Descriptor cd_dd0251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0251, buf);
+ dd0251 *dp, &lv = *(dp=new (buf) dd0251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(24,16), "dd0251");
+ check_base_class_offset(lv, (bb51*)(cc251*), 0, "dd0251");
+ check_base_class_offset(lv, (cc251*), 0, "dd0251");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0251.d");
+ test_class_info(&lv, &cd_dd0251);
+ dp->~dd0251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0251(Test_dd0251, "dd0251", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0251C1Ev();
+extern void _ZN6dd0251D1Ev();
+Name_Map name_map_dd0251[] = {
+ NSPAIR(_ZN6dd0251C1Ev),
+ NSPAIR(_ZN6dd0251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd0251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd0251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd0251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd0251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd0251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd0251[] = {
+ {&(_ZTV6dd0251[3]), 3,9},
+ {&(_tg__ZTV5cc251__6dd0251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd0251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd0251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd0251[3]), 3,4},
+ {&(_ZTV6dd0251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static VTBL_ENTRY alt_thunk_names554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0251 = { "dd0251", // class name
+ bases_dd0251, 3,
+ &(vtc_dd0251[0]), // expected_vtbl_contents
+ &(vtt_dd0251[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0251),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00251 : dd0251 {
+ int e;
+ ~ee00251(); // tgen
+ ee00251(); // tgen
+};
+//SIG(1 ee00251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00251 ::~ee00251(){ note_dtor("ee00251", this);} // tgen
+ee00251 ::ee00251(){ note_ctor("ee00251", this);} // tgen
+
+static void Test_ee00251()
+{
+ extern Class_Descriptor cd_ee00251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00251, buf);
+ ee00251 *dp, &lv = *(dp=new (buf) ee00251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(24,20), "ee00251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), 0, "ee00251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), 0, "ee00251");
+ check_base_class_offset(lv, (dd0251*), 0, "ee00251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00251.e");
+ test_class_info(&lv, &cd_ee00251);
+ dp->~ee00251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00251(Test_ee00251, "ee00251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00251C1Ev();
+extern void _ZN7ee00251D1Ev();
+Name_Map name_map_ee00251[] = {
+ NSPAIR(_ZN7ee00251C1Ev),
+ NSPAIR(_ZN7ee00251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee00251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee00251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee00251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee00251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee00251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee00251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee00251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee00251[] = {
+ {&(_ZTV7ee00251[3]), 3,9},
+ {&(_tg__ZTV6dd0251__7ee00251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee00251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee00251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee00251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee00251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee00251[3]), 3,4},
+ {&(_ZTV7ee00251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee00251[];
+extern VTBL_ENTRY _ZTV7ee00251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00251[];
+static VTBL_ENTRY alt_thunk_names555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00251 = { "ee00251", // class name
+ bases_ee00251, 4,
+ &(vtc_ee00251[0]), // expected_vtbl_contents
+ &(vtt_ee00251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10251 : virtual dd0251 {
+ int e;
+ ~ee10251(); // tgen
+ ee10251(); // tgen
+};
+//SIG(1 ee10251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10251 ::~ee10251(){ note_dtor("ee10251", this);} // tgen
+ee10251 ::ee10251(){ note_ctor("ee10251", this);} // tgen
+
+static void Test_ee10251()
+{
+ extern Class_Descriptor cd_ee10251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10251, buf);
+ ee10251 *dp, &lv = *(dp=new (buf) ee10251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(40,24), "ee10251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), ABISELECT(16,8), "ee10251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), ABISELECT(16,8), "ee10251");
+ check_base_class_offset(lv, (dd0251*), ABISELECT(16,8), "ee10251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10251.e");
+ test_class_info(&lv, &cd_ee10251);
+ dp->~ee10251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10251(Test_ee10251, "ee10251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10251C1Ev();
+extern void _ZN7ee10251D1Ev();
+Name_Map name_map_ee10251[] = {
+ NSPAIR(_ZN7ee10251C1Ev),
+ NSPAIR(_ZN7ee10251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee10251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10251[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee10251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee10251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee10251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee10251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee10251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee10251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee10251[] = {
+ {&(_ZTV7ee10251[4]), 4,15},
+ {&(_ZTV7ee10251[9]), 9,15},
+ {&(_ZTV7ee10251[14]), 14,15},
+ {&(_tg__ZTV6dd0251__7ee10251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee10251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee10251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee10251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee10251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee10251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10251[];
+extern VTBL_ENTRY _ZTV7ee10251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10251[];
+static VTBL_ENTRY alt_thunk_names556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10251 = { "ee10251", // class name
+ bases_ee10251, 4,
+ &(vtc_ee10251[0]), // expected_vtbl_contents
+ &(vtt_ee10251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20251 : dd0251 {
+ int e;
+ virtual void foo(); // _ZN7ee202513fooEv
+ ~ee20251(); // tgen
+ ee20251(); // tgen
+};
+//SIG(1 ee20251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20251 ::foo(){vfunc_called(this, "_ZN7ee202513fooEv");}
+ee20251 ::~ee20251(){ note_dtor("ee20251", this);} // tgen
+ee20251 ::ee20251(){ note_ctor("ee20251", this);} // tgen
+
+static void Test_ee20251()
+{
+ extern Class_Descriptor cd_ee20251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20251, buf);
+ ee20251 *dp, &lv = *(dp=new (buf) ee20251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(24,20), "ee20251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), 0, "ee20251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), 0, "ee20251");
+ check_base_class_offset(lv, (dd0251*), 0, "ee20251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20251.e");
+ test_class_info(&lv, &cd_ee20251);
+ dp->~ee20251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20251(Test_ee20251, "ee20251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20251C1Ev();
+extern void _ZN7ee20251D1Ev();
+Name_Map name_map_ee20251[] = {
+ NSPAIR(_ZN7ee20251C1Ev),
+ NSPAIR(_ZN7ee20251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee20251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20251[];
+extern void _ZN4bb513barEv();
+extern void _ZN7ee202513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee202513fooEv,_ZTv0_n12_N7ee202513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee202513fooEv,_ZThn20_N7ee202513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN7ee202513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee202513fooEv,_ZTv0_n12_N7ee202513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee20251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee20251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee20251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee20251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee20251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee20251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee20251[] = {
+ {&(_ZTV7ee20251[3]), 3,9},
+ {&(_tg__ZTV6dd0251__7ee20251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee20251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee20251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee20251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee20251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee20251[3]), 3,4},
+ {&(_ZTV7ee20251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20251[];
+extern VTBL_ENTRY _ZTV7ee20251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20251[];
+static VTBL_ENTRY alt_thunk_names557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee202513fooEv,_ZTv0_n12_N7ee202513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee202513fooEv,_ZThn20_N7ee202513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20251 = { "ee20251", // class name
+ bases_ee20251, 4,
+ &(vtc_ee20251[0]), // expected_vtbl_contents
+ &(vtt_ee20251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names557,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30251 : virtual dd0251 {
+ int e;
+ virtual void foo(); // _ZN7ee302513fooEv
+ ~ee30251(); // tgen
+ ee30251(); // tgen
+};
+//SIG(1 ee30251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30251 ::foo(){vfunc_called(this, "_ZN7ee302513fooEv");}
+ee30251 ::~ee30251(){ note_dtor("ee30251", this);} // tgen
+ee30251 ::ee30251(){ note_ctor("ee30251", this);} // tgen
+
+static void Test_ee30251()
+{
+ extern Class_Descriptor cd_ee30251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30251, buf);
+ ee30251 *dp, &lv = *(dp=new (buf) ee30251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(40,24), "ee30251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), ABISELECT(16,8), "ee30251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), ABISELECT(16,8), "ee30251");
+ check_base_class_offset(lv, (dd0251*), ABISELECT(16,8), "ee30251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30251.e");
+ test_class_info(&lv, &cd_ee30251);
+ dp->~ee30251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30251(Test_ee30251, "ee30251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30251C1Ev();
+extern void _ZN7ee30251D1Ev();
+Name_Map name_map_ee30251[] = {
+ NSPAIR(_ZN7ee30251C1Ev),
+ NSPAIR(_ZN7ee30251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee30251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30251[];
+extern void _ZN7ee302513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee302513fooEv,_ZTv0_n20_N7ee302513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302513fooEv,_ZThn8_N7ee302513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee302513fooEv,_ZTv0_n12_N7ee302513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee302513fooEv,_ZThn24_N7ee302513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30251[0]),
+ (VTBL_ENTRY)&_ZN7ee302513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee302513fooEv,_ZTv0_n20_N7ee302513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302513fooEv,_ZTv0_n12_N7ee302513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee30251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee30251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee30251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee30251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee30251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee30251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee30251[] = {
+ {&(_ZTV7ee30251[4]), 4,16},
+ {&(_ZTV7ee30251[10]), 10,16},
+ {&(_ZTV7ee30251[15]), 15,16},
+ {&(_tg__ZTV6dd0251__7ee30251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee30251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee30251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee30251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee30251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee30251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30251[];
+extern VTBL_ENTRY _ZTV7ee30251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30251[];
+static VTBL_ENTRY alt_thunk_names558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302513fooEv,_ZTv0_n12_N7ee302513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee302513fooEv,_ZThn24_N7ee302513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee302513fooEv,_ZTv0_n20_N7ee302513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302513fooEv,_ZThn8_N7ee302513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30251 = { "ee30251", // class name
+ bases_ee30251, 4,
+ &(vtc_ee30251[0]), // expected_vtbl_contents
+ &(vtt_ee30251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names558,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40251 : dd0251 {
+ int e;
+ virtual void bar(); // _ZN7ee402513barEv
+ ~ee40251(); // tgen
+ ee40251(); // tgen
+};
+//SIG(1 ee40251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40251 ::bar(){vfunc_called(this, "_ZN7ee402513barEv");}
+ee40251 ::~ee40251(){ note_dtor("ee40251", this);} // tgen
+ee40251 ::ee40251(){ note_ctor("ee40251", this);} // tgen
+
+static void Test_ee40251()
+{
+ extern Class_Descriptor cd_ee40251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40251, buf);
+ ee40251 *dp, &lv = *(dp=new (buf) ee40251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(24,20), "ee40251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), 0, "ee40251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), 0, "ee40251");
+ check_base_class_offset(lv, (dd0251*), 0, "ee40251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40251.e");
+ test_class_info(&lv, &cd_ee40251);
+ dp->~ee40251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40251(Test_ee40251, "ee40251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40251C1Ev();
+extern void _ZN7ee40251D1Ev();
+Name_Map name_map_ee40251[] = {
+ NSPAIR(_ZN7ee40251C1Ev),
+ NSPAIR(_ZN7ee40251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee40251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40251[];
+extern void _ZN7ee402513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40251[0]),
+ (VTBL_ENTRY)&_ZN7ee402513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee40251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee40251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee40251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee40251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee40251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee40251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee40251[] = {
+ {&(_ZTV7ee40251[3]), 3,9},
+ {&(_tg__ZTV6dd0251__7ee40251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee40251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee40251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee40251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee40251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee40251[3]), 3,4},
+ {&(_ZTV7ee40251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40251[];
+extern VTBL_ENTRY _ZTV7ee40251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40251[];
+static VTBL_ENTRY alt_thunk_names559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40251 = { "ee40251", // class name
+ bases_ee40251, 4,
+ &(vtc_ee40251[0]), // expected_vtbl_contents
+ &(vtt_ee40251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names559,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50251 : virtual dd0251 {
+ int e;
+ virtual void bar(); // _ZN7ee502513barEv
+ ~ee50251(); // tgen
+ ee50251(); // tgen
+};
+//SIG(1 ee50251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50251 ::bar(){vfunc_called(this, "_ZN7ee502513barEv");}
+ee50251 ::~ee50251(){ note_dtor("ee50251", this);} // tgen
+ee50251 ::ee50251(){ note_ctor("ee50251", this);} // tgen
+
+static void Test_ee50251()
+{
+ extern Class_Descriptor cd_ee50251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50251, buf);
+ ee50251 *dp, &lv = *(dp=new (buf) ee50251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(40,24), "ee50251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), ABISELECT(16,8), "ee50251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), ABISELECT(16,8), "ee50251");
+ check_base_class_offset(lv, (dd0251*), ABISELECT(16,8), "ee50251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50251.e");
+ test_class_info(&lv, &cd_ee50251);
+ dp->~ee50251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50251(Test_ee50251, "ee50251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50251C1Ev();
+extern void _ZN7ee50251D1Ev();
+Name_Map name_map_ee50251[] = {
+ NSPAIR(_ZN7ee50251C1Ev),
+ NSPAIR(_ZN7ee50251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee50251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50251[];
+extern void _ZN7ee502513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502513barEv,_ZTv0_n16_N7ee502513barEv)();
+extern void ABISELECT(_ZThn16_N7ee502513barEv,_ZThn8_N7ee502513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50251[0]),
+ (VTBL_ENTRY)&_ZN7ee502513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502513barEv,_ZTv0_n16_N7ee502513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee50251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee50251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee50251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee50251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee50251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee50251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee50251[] = {
+ {&(_ZTV7ee50251[4]), 4,16},
+ {&(_ZTV7ee50251[10]), 10,16},
+ {&(_ZTV7ee50251[15]), 15,16},
+ {&(_tg__ZTV6dd0251__7ee50251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee50251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee50251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee50251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee50251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee50251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50251[];
+extern VTBL_ENTRY _ZTV7ee50251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50251[];
+static VTBL_ENTRY alt_thunk_names560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502513barEv,_ZTv0_n16_N7ee502513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502513barEv,_ZThn8_N7ee502513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50251 = { "ee50251", // class name
+ bases_ee50251, 4,
+ &(vtc_ee50251[0]), // expected_vtbl_contents
+ &(vtt_ee50251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names560,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60251 : dd0251 {
+ int e;
+ virtual void foo(); // _ZN7ee602513fooEv
+ virtual void bar(); // _ZN7ee602513barEv
+ ~ee60251(); // tgen
+ ee60251(); // tgen
+};
+//SIG(1 ee60251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60251 ::foo(){vfunc_called(this, "_ZN7ee602513fooEv");}
+void ee60251 ::bar(){vfunc_called(this, "_ZN7ee602513barEv");}
+ee60251 ::~ee60251(){ note_dtor("ee60251", this);} // tgen
+ee60251 ::ee60251(){ note_ctor("ee60251", this);} // tgen
+
+static void Test_ee60251()
+{
+ extern Class_Descriptor cd_ee60251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60251, buf);
+ ee60251 *dp, &lv = *(dp=new (buf) ee60251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(24,20), "ee60251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), 0, "ee60251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), 0, "ee60251");
+ check_base_class_offset(lv, (dd0251*), 0, "ee60251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60251.e");
+ test_class_info(&lv, &cd_ee60251);
+ dp->~ee60251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60251(Test_ee60251, "ee60251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60251C1Ev();
+extern void _ZN7ee60251D1Ev();
+Name_Map name_map_ee60251[] = {
+ NSPAIR(_ZN7ee60251C1Ev),
+ NSPAIR(_ZN7ee60251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee60251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60251[];
+extern void _ZN7ee602513barEv();
+extern void _ZN7ee602513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee602513fooEv,_ZTv0_n12_N7ee602513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee602513fooEv,_ZThn20_N7ee602513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60251[0]),
+ (VTBL_ENTRY)&_ZN7ee602513barEv,
+ (VTBL_ENTRY)&_ZN7ee602513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee602513fooEv,_ZTv0_n12_N7ee602513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee60251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee60251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee60251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee60251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee60251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee60251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee60251[] = {
+ {&(_ZTV7ee60251[3]), 3,9},
+ {&(_tg__ZTV6dd0251__7ee60251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee60251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee60251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee60251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee60251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee60251[3]), 3,4},
+ {&(_ZTV7ee60251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60251[];
+extern VTBL_ENTRY _ZTV7ee60251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60251[];
+static VTBL_ENTRY alt_thunk_names561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee602513fooEv,_ZTv0_n12_N7ee602513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee602513fooEv,_ZThn20_N7ee602513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60251 = { "ee60251", // class name
+ bases_ee60251, 4,
+ &(vtc_ee60251[0]), // expected_vtbl_contents
+ &(vtt_ee60251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names561,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70251 : virtual dd0251 {
+ int e;
+ virtual void foo(); // _ZN7ee702513fooEv
+ virtual void bar(); // _ZN7ee702513barEv
+ ~ee70251(); // tgen
+ ee70251(); // tgen
+};
+//SIG(1 ee70251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70251 ::foo(){vfunc_called(this, "_ZN7ee702513fooEv");}
+void ee70251 ::bar(){vfunc_called(this, "_ZN7ee702513barEv");}
+ee70251 ::~ee70251(){ note_dtor("ee70251", this);} // tgen
+ee70251 ::ee70251(){ note_ctor("ee70251", this);} // tgen
+
+static void Test_ee70251()
+{
+ extern Class_Descriptor cd_ee70251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70251, buf);
+ ee70251 *dp, &lv = *(dp=new (buf) ee70251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd0251*), ABISELECT(40,24), "ee70251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd0251*), ABISELECT(16,8), "ee70251");
+ check_base_class_offset(lv, (cc251*)(dd0251*), ABISELECT(16,8), "ee70251");
+ check_base_class_offset(lv, (dd0251*), ABISELECT(16,8), "ee70251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70251.e");
+ test_class_info(&lv, &cd_ee70251);
+ dp->~ee70251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70251(Test_ee70251, "ee70251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70251C1Ev();
+extern void _ZN7ee70251D1Ev();
+Name_Map name_map_ee70251[] = {
+ NSPAIR(_ZN7ee70251C1Ev),
+ NSPAIR(_ZN7ee70251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd0251;
+extern VTBL_ENTRY _ZTI6dd0251[];
+extern VTBL_ENTRY _ZTV6dd0251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0251[];
+static Base_Class bases_ee70251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70251[];
+extern void _ZN7ee702513fooEv();
+extern void _ZN7ee702513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee702513barEv,_ZTv0_n16_N7ee702513barEv)();
+extern void ABISELECT(_ZThn16_N7ee702513barEv,_ZThn8_N7ee702513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee702513fooEv,_ZTv0_n20_N7ee702513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702513fooEv,_ZThn8_N7ee702513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee702513fooEv,_ZTv0_n12_N7ee702513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee702513fooEv,_ZThn24_N7ee702513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70251[0]),
+ (VTBL_ENTRY)&_ZN7ee702513fooEv,
+ (VTBL_ENTRY)&_ZN7ee702513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702513barEv,_ZTv0_n16_N7ee702513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee702513fooEv,_ZTv0_n20_N7ee702513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702513fooEv,_ZTv0_n12_N7ee702513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0251__7ee70251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd0251__7ee70251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd0251__7ee70251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd0251__7ee70251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd0251__7ee70251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0251__7ee70251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee70251[] = {
+ {&(_ZTV7ee70251[4]), 4,17},
+ {&(_ZTV7ee70251[11]), 11,17},
+ {&(_ZTV7ee70251[16]), 16,17},
+ {&(_tg__ZTV6dd0251__7ee70251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd0251__7ee70251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd0251__7ee70251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd0251__7ee70251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd0251__7ee70251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0251__7ee70251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70251[];
+extern VTBL_ENTRY _ZTV7ee70251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70251[];
+static VTBL_ENTRY alt_thunk_names562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702513fooEv,_ZTv0_n12_N7ee702513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee702513fooEv,_ZThn24_N7ee702513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee702513fooEv,_ZTv0_n20_N7ee702513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702513fooEv,_ZThn8_N7ee702513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702513barEv,_ZTv0_n16_N7ee702513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702513barEv,_ZThn8_N7ee702513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70251 = { "ee70251", // class name
+ bases_ee70251, 4,
+ &(vtc_ee70251[0]), // expected_vtbl_contents
+ &(vtt_ee70251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names562,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1251 : virtual cc251 {
+ int d;
+ ~dd1251(); // tgen
+ dd1251(); // tgen
+};
+//SIG(-1 dd1251) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1251 ::~dd1251(){ note_dtor("dd1251", this);} // tgen
+dd1251 ::dd1251(){ note_ctor("dd1251", this);} // tgen
+
+static void Test_dd1251()
+{
+ extern Class_Descriptor cd_dd1251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1251, buf);
+ dd1251 *dp, &lv = *(dp=new (buf) dd1251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,20), "dd1251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,8), "dd1251");
+ check_base_class_offset(lv, (cc251*), ABISELECT(16,8), "dd1251");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1251.d");
+ test_class_info(&lv, &cd_dd1251);
+ dp->~dd1251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1251(Test_dd1251, "dd1251", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1251C1Ev();
+extern void _ZN6dd1251D1Ev();
+Name_Map name_map_dd1251[] = {
+ NSPAIR(_ZN6dd1251C1Ev),
+ NSPAIR(_ZN6dd1251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd1251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd1251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd1251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd1251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd1251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd1251[] = {
+ {&(_ZTV6dd1251[4]), 4,15},
+ {&(_ZTV6dd1251[9]), 9,15},
+ {&(_ZTV6dd1251[14]), 14,15},
+ {&(_tg__ZTV5cc251__6dd1251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd1251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd1251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd1251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static VTBL_ENTRY alt_thunk_names563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1251 = { "dd1251", // class name
+ bases_dd1251, 3,
+ &(vtc_dd1251[0]), // expected_vtbl_contents
+ &(vtt_dd1251[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1251),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names563,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01251 : dd1251 {
+ int e;
+ ~ee01251(); // tgen
+ ee01251(); // tgen
+};
+//SIG(1 ee01251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01251 ::~ee01251(){ note_dtor("ee01251", this);} // tgen
+ee01251 ::ee01251(){ note_ctor("ee01251", this);} // tgen
+
+static void Test_ee01251()
+{
+ extern Class_Descriptor cd_ee01251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01251, buf);
+ ee01251 *dp, &lv = *(dp=new (buf) ee01251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee01251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee01251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(16,12), "ee01251");
+ check_base_class_offset(lv, (dd1251*), 0, "ee01251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01251.e");
+ test_class_info(&lv, &cd_ee01251);
+ dp->~ee01251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01251(Test_ee01251, "ee01251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01251C1Ev();
+extern void _ZN7ee01251D1Ev();
+Name_Map name_map_ee01251[] = {
+ NSPAIR(_ZN7ee01251C1Ev),
+ NSPAIR(_ZN7ee01251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee01251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01251[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee01251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee01251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee01251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee01251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee01251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee01251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee01251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee01251[] = {
+ {&(_ZTV7ee01251[4]), 4,15},
+ {&(_tg__ZTV6dd1251__7ee01251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee01251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee01251[3]), 3,4},
+ {&(_ZTV7ee01251[9]), 9,15},
+ {&(_ZTV7ee01251[14]), 14,15},
+ {&(_tg__ZTV5cc251__7ee01251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee01251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee01251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee01251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01251[];
+extern VTBL_ENTRY _ZTV7ee01251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01251[];
+static VTBL_ENTRY alt_thunk_names564[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01251 = { "ee01251", // class name
+ bases_ee01251, 4,
+ &(vtc_ee01251[0]), // expected_vtbl_contents
+ &(vtt_ee01251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names564,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11251 : virtual dd1251 {
+ int e;
+ ~ee11251(); // tgen
+ ee11251(); // tgen
+};
+//SIG(1 ee11251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11251 ::~ee11251(){ note_dtor("ee11251", this);} // tgen
+ee11251 ::ee11251(){ note_ctor("ee11251", this);} // tgen
+
+static void Test_ee11251()
+{
+ extern Class_Descriptor cd_ee11251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11251, buf);
+ ee11251 *dp, &lv = *(dp=new (buf) ee11251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee11251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee11251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(32,16), "ee11251");
+ check_base_class_offset(lv, (dd1251*), ABISELECT(16,8), "ee11251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11251.e");
+ test_class_info(&lv, &cd_ee11251);
+ dp->~ee11251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11251(Test_ee11251, "ee11251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11251C1Ev();
+extern void _ZN7ee11251D1Ev();
+Name_Map name_map_ee11251[] = {
+ NSPAIR(_ZN7ee11251C1Ev),
+ NSPAIR(_ZN7ee11251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee11251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11251[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11251[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee11251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee11251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee11251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee11251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee11251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee11251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee11251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee11251[] = {
+ {&(_ZTV7ee11251[5]), 5,20},
+ {&(_ZTV7ee11251[9]), 9,20},
+ {&(_ZTV7ee11251[14]), 14,20},
+ {&(_ZTV7ee11251[19]), 19,20},
+ {&(_tg__ZTV6dd1251__7ee11251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee11251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee11251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee11251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee11251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee11251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee11251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11251[];
+extern VTBL_ENTRY _ZTV7ee11251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11251[];
+static VTBL_ENTRY alt_thunk_names565[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11251 = { "ee11251", // class name
+ bases_ee11251, 4,
+ &(vtc_ee11251[0]), // expected_vtbl_contents
+ &(vtt_ee11251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11251),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names565,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21251 : dd1251 {
+ int e;
+ virtual void foo(); // _ZN7ee212513fooEv
+ ~ee21251(); // tgen
+ ee21251(); // tgen
+};
+//SIG(1 ee21251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21251 ::foo(){vfunc_called(this, "_ZN7ee212513fooEv");}
+ee21251 ::~ee21251(){ note_dtor("ee21251", this);} // tgen
+ee21251 ::ee21251(){ note_ctor("ee21251", this);} // tgen
+
+static void Test_ee21251()
+{
+ extern Class_Descriptor cd_ee21251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21251, buf);
+ ee21251 *dp, &lv = *(dp=new (buf) ee21251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee21251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee21251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(16,12), "ee21251");
+ check_base_class_offset(lv, (dd1251*), 0, "ee21251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21251.e");
+ test_class_info(&lv, &cd_ee21251);
+ dp->~ee21251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21251(Test_ee21251, "ee21251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21251C1Ev();
+extern void _ZN7ee21251D1Ev();
+Name_Map name_map_ee21251[] = {
+ NSPAIR(_ZN7ee21251C1Ev),
+ NSPAIR(_ZN7ee21251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee21251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21251[];
+extern void _ZN7ee212513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee212513fooEv,_ZTv0_n20_N7ee212513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212513fooEv,_ZThn12_N7ee212513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee212513fooEv,_ZTv0_n12_N7ee212513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee212513fooEv,_ZThn24_N7ee212513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21251[0]),
+ (VTBL_ENTRY)&_ZN7ee212513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee212513fooEv,_ZTv0_n20_N7ee212513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212513fooEv,_ZTv0_n12_N7ee212513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee21251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee21251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee21251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee21251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee21251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee21251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee21251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee21251[] = {
+ {&(_ZTV7ee21251[4]), 4,16},
+ {&(_tg__ZTV6dd1251__7ee21251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee21251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee21251[3]), 3,4},
+ {&(_ZTV7ee21251[10]), 10,16},
+ {&(_ZTV7ee21251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee21251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee21251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee21251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee21251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21251[];
+extern VTBL_ENTRY _ZTV7ee21251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21251[];
+static VTBL_ENTRY alt_thunk_names566[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212513fooEv,_ZTv0_n12_N7ee212513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee212513fooEv,_ZThn24_N7ee212513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee212513fooEv,_ZTv0_n20_N7ee212513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212513fooEv,_ZThn12_N7ee212513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21251 = { "ee21251", // class name
+ bases_ee21251, 4,
+ &(vtc_ee21251[0]), // expected_vtbl_contents
+ &(vtt_ee21251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names566,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31251 : virtual dd1251 {
+ int e;
+ virtual void foo(); // _ZN7ee312513fooEv
+ ~ee31251(); // tgen
+ ee31251(); // tgen
+};
+//SIG(1 ee31251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31251 ::foo(){vfunc_called(this, "_ZN7ee312513fooEv");}
+ee31251 ::~ee31251(){ note_dtor("ee31251", this);} // tgen
+ee31251 ::ee31251(){ note_ctor("ee31251", this);} // tgen
+
+static void Test_ee31251()
+{
+ extern Class_Descriptor cd_ee31251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31251, buf);
+ ee31251 *dp, &lv = *(dp=new (buf) ee31251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee31251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee31251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(32,16), "ee31251");
+ check_base_class_offset(lv, (dd1251*), ABISELECT(16,8), "ee31251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31251.e");
+ test_class_info(&lv, &cd_ee31251);
+ dp->~ee31251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31251(Test_ee31251, "ee31251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31251C1Ev();
+extern void _ZN7ee31251D1Ev();
+Name_Map name_map_ee31251[] = {
+ NSPAIR(_ZN7ee31251C1Ev),
+ NSPAIR(_ZN7ee31251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee31251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31251[];
+extern void _ZN7ee312513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee312513fooEv,_ZTv0_n20_N7ee312513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312513fooEv,_ZThn16_N7ee312513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee312513fooEv,_ZTv0_n12_N7ee312513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee312513fooEv,_ZThn28_N7ee312513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31251[0]),
+ (VTBL_ENTRY)&_ZN7ee312513fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31251[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee312513fooEv,_ZTv0_n20_N7ee312513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312513fooEv,_ZTv0_n12_N7ee312513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee31251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee31251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee31251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee31251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee31251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee31251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee31251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee31251[] = {
+ {&(_ZTV7ee31251[5]), 5,21},
+ {&(_ZTV7ee31251[10]), 10,21},
+ {&(_ZTV7ee31251[15]), 15,21},
+ {&(_ZTV7ee31251[20]), 20,21},
+ {&(_tg__ZTV6dd1251__7ee31251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee31251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee31251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee31251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee31251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee31251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee31251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31251[];
+extern VTBL_ENTRY _ZTV7ee31251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31251[];
+static VTBL_ENTRY alt_thunk_names567[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312513fooEv,_ZTv0_n12_N7ee312513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee312513fooEv,_ZThn28_N7ee312513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee312513fooEv,_ZTv0_n20_N7ee312513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312513fooEv,_ZThn16_N7ee312513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31251 = { "ee31251", // class name
+ bases_ee31251, 4,
+ &(vtc_ee31251[0]), // expected_vtbl_contents
+ &(vtt_ee31251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31251),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names567,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41251 : dd1251 {
+ int e;
+ virtual void bar(); // _ZN7ee412513barEv
+ ~ee41251(); // tgen
+ ee41251(); // tgen
+};
+//SIG(1 ee41251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41251 ::bar(){vfunc_called(this, "_ZN7ee412513barEv");}
+ee41251 ::~ee41251(){ note_dtor("ee41251", this);} // tgen
+ee41251 ::ee41251(){ note_ctor("ee41251", this);} // tgen
+
+static void Test_ee41251()
+{
+ extern Class_Descriptor cd_ee41251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41251, buf);
+ ee41251 *dp, &lv = *(dp=new (buf) ee41251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee41251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee41251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(16,12), "ee41251");
+ check_base_class_offset(lv, (dd1251*), 0, "ee41251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41251.e");
+ test_class_info(&lv, &cd_ee41251);
+ dp->~ee41251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41251(Test_ee41251, "ee41251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41251C1Ev();
+extern void _ZN7ee41251D1Ev();
+Name_Map name_map_ee41251[] = {
+ NSPAIR(_ZN7ee41251C1Ev),
+ NSPAIR(_ZN7ee41251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee41251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41251[];
+extern void _ZN7ee412513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412513barEv,_ZTv0_n16_N7ee412513barEv)();
+extern void ABISELECT(_ZThn16_N7ee412513barEv,_ZThn12_N7ee412513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41251[0]),
+ (VTBL_ENTRY)&_ZN7ee412513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412513barEv,_ZTv0_n16_N7ee412513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee41251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee41251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee41251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee41251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee41251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee41251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee41251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee41251[] = {
+ {&(_ZTV7ee41251[4]), 4,16},
+ {&(_tg__ZTV6dd1251__7ee41251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee41251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee41251[3]), 3,4},
+ {&(_ZTV7ee41251[10]), 10,16},
+ {&(_ZTV7ee41251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee41251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee41251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee41251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee41251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41251[];
+extern VTBL_ENTRY _ZTV7ee41251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41251[];
+static VTBL_ENTRY alt_thunk_names568[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412513barEv,_ZTv0_n16_N7ee412513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412513barEv,_ZThn12_N7ee412513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41251 = { "ee41251", // class name
+ bases_ee41251, 4,
+ &(vtc_ee41251[0]), // expected_vtbl_contents
+ &(vtt_ee41251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names568,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51251 : virtual dd1251 {
+ int e;
+ virtual void bar(); // _ZN7ee512513barEv
+ ~ee51251(); // tgen
+ ee51251(); // tgen
+};
+//SIG(1 ee51251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51251 ::bar(){vfunc_called(this, "_ZN7ee512513barEv");}
+ee51251 ::~ee51251(){ note_dtor("ee51251", this);} // tgen
+ee51251 ::ee51251(){ note_ctor("ee51251", this);} // tgen
+
+static void Test_ee51251()
+{
+ extern Class_Descriptor cd_ee51251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51251, buf);
+ ee51251 *dp, &lv = *(dp=new (buf) ee51251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee51251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee51251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(32,16), "ee51251");
+ check_base_class_offset(lv, (dd1251*), ABISELECT(16,8), "ee51251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51251.e");
+ test_class_info(&lv, &cd_ee51251);
+ dp->~ee51251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51251(Test_ee51251, "ee51251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51251C1Ev();
+extern void _ZN7ee51251D1Ev();
+Name_Map name_map_ee51251[] = {
+ NSPAIR(_ZN7ee51251C1Ev),
+ NSPAIR(_ZN7ee51251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee51251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51251[];
+extern void _ZN7ee512513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512513barEv,_ZTv0_n16_N7ee512513barEv)();
+extern void ABISELECT(_ZThn32_N7ee512513barEv,_ZThn16_N7ee512513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51251[0]),
+ (VTBL_ENTRY)&_ZN7ee512513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51251[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512513barEv,_ZTv0_n16_N7ee512513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee51251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee51251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee51251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee51251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee51251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee51251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee51251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee51251[] = {
+ {&(_ZTV7ee51251[5]), 5,21},
+ {&(_ZTV7ee51251[10]), 10,21},
+ {&(_ZTV7ee51251[15]), 15,21},
+ {&(_ZTV7ee51251[20]), 20,21},
+ {&(_tg__ZTV6dd1251__7ee51251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee51251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee51251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee51251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee51251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee51251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee51251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51251[];
+extern VTBL_ENTRY _ZTV7ee51251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51251[];
+static VTBL_ENTRY alt_thunk_names569[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512513barEv,_ZTv0_n16_N7ee512513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512513barEv,_ZThn16_N7ee512513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51251 = { "ee51251", // class name
+ bases_ee51251, 4,
+ &(vtc_ee51251[0]), // expected_vtbl_contents
+ &(vtt_ee51251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51251),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names569,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61251 : dd1251 {
+ int e;
+ virtual void foo(); // _ZN7ee612513fooEv
+ virtual void bar(); // _ZN7ee612513barEv
+ ~ee61251(); // tgen
+ ee61251(); // tgen
+};
+//SIG(1 ee61251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61251 ::foo(){vfunc_called(this, "_ZN7ee612513fooEv");}
+void ee61251 ::bar(){vfunc_called(this, "_ZN7ee612513barEv");}
+ee61251 ::~ee61251(){ note_dtor("ee61251", this);} // tgen
+ee61251 ::ee61251(){ note_ctor("ee61251", this);} // tgen
+
+static void Test_ee61251()
+{
+ extern Class_Descriptor cd_ee61251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61251, buf);
+ ee61251 *dp, &lv = *(dp=new (buf) ee61251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee61251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee61251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(16,12), "ee61251");
+ check_base_class_offset(lv, (dd1251*), 0, "ee61251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61251.e");
+ test_class_info(&lv, &cd_ee61251);
+ dp->~ee61251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61251(Test_ee61251, "ee61251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61251C1Ev();
+extern void _ZN7ee61251D1Ev();
+Name_Map name_map_ee61251[] = {
+ NSPAIR(_ZN7ee61251C1Ev),
+ NSPAIR(_ZN7ee61251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee61251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61251[];
+extern void _ZN7ee612513fooEv();
+extern void _ZN7ee612513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee612513barEv,_ZTv0_n16_N7ee612513barEv)();
+extern void ABISELECT(_ZThn16_N7ee612513barEv,_ZThn12_N7ee612513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee612513fooEv,_ZTv0_n20_N7ee612513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612513fooEv,_ZThn12_N7ee612513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee612513fooEv,_ZTv0_n12_N7ee612513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee612513fooEv,_ZThn24_N7ee612513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61251[0]),
+ (VTBL_ENTRY)&_ZN7ee612513fooEv,
+ (VTBL_ENTRY)&_ZN7ee612513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612513barEv,_ZTv0_n16_N7ee612513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee612513fooEv,_ZTv0_n20_N7ee612513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612513fooEv,_ZTv0_n12_N7ee612513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee61251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee61251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee61251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee61251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee61251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee61251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee61251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee61251[] = {
+ {&(_ZTV7ee61251[4]), 4,17},
+ {&(_tg__ZTV6dd1251__7ee61251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee61251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee61251[3]), 3,4},
+ {&(_ZTV7ee61251[11]), 11,17},
+ {&(_ZTV7ee61251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee61251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee61251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee61251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee61251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61251[];
+extern VTBL_ENTRY _ZTV7ee61251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61251[];
+static VTBL_ENTRY alt_thunk_names570[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612513fooEv,_ZTv0_n12_N7ee612513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee612513fooEv,_ZThn24_N7ee612513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee612513fooEv,_ZTv0_n20_N7ee612513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612513fooEv,_ZThn12_N7ee612513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612513barEv,_ZTv0_n16_N7ee612513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612513barEv,_ZThn12_N7ee612513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61251 = { "ee61251", // class name
+ bases_ee61251, 4,
+ &(vtc_ee61251[0]), // expected_vtbl_contents
+ &(vtt_ee61251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names570,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71251 : virtual dd1251 {
+ int e;
+ virtual void foo(); // _ZN7ee712513fooEv
+ virtual void bar(); // _ZN7ee712513barEv
+ ~ee71251(); // tgen
+ ee71251(); // tgen
+};
+//SIG(1 ee71251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71251 ::foo(){vfunc_called(this, "_ZN7ee712513fooEv");}
+void ee71251 ::bar(){vfunc_called(this, "_ZN7ee712513barEv");}
+ee71251 ::~ee71251(){ note_dtor("ee71251", this);} // tgen
+ee71251 ::ee71251(){ note_ctor("ee71251", this);} // tgen
+
+static void Test_ee71251()
+{
+ extern Class_Descriptor cd_ee71251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71251, buf);
+ ee71251 *dp, &lv = *(dp=new (buf) ee71251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee71251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee71251");
+ check_base_class_offset(lv, (cc251*)(dd1251*), ABISELECT(32,16), "ee71251");
+ check_base_class_offset(lv, (dd1251*), ABISELECT(16,8), "ee71251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71251.e");
+ test_class_info(&lv, &cd_ee71251);
+ dp->~ee71251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71251(Test_ee71251, "ee71251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71251C1Ev();
+extern void _ZN7ee71251D1Ev();
+Name_Map name_map_ee71251[] = {
+ NSPAIR(_ZN7ee71251C1Ev),
+ NSPAIR(_ZN7ee71251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd1251;
+extern VTBL_ENTRY _ZTI6dd1251[];
+extern VTBL_ENTRY _ZTV6dd1251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1251[];
+static Base_Class bases_ee71251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1251, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71251[];
+extern void _ZN7ee712513fooEv();
+extern void _ZN7ee712513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee712513barEv,_ZTv0_n16_N7ee712513barEv)();
+extern void ABISELECT(_ZThn32_N7ee712513barEv,_ZThn16_N7ee712513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee712513fooEv,_ZTv0_n20_N7ee712513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712513fooEv,_ZThn16_N7ee712513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee712513fooEv,_ZTv0_n12_N7ee712513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee712513fooEv,_ZThn28_N7ee712513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71251[0]),
+ (VTBL_ENTRY)&_ZN7ee712513fooEv,
+ (VTBL_ENTRY)&_ZN7ee712513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71251[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712513barEv,_ZTv0_n16_N7ee712513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee712513fooEv,_ZTv0_n20_N7ee712513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712513fooEv,_ZTv0_n12_N7ee712513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71251[];
+static VTBL_ENTRY _tg__ZTV6dd1251__7ee71251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd1251__7ee71251[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1251__7ee71251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee71251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee71251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee71251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee71251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee71251[] = {
+ {&(_ZTV7ee71251[5]), 5,22},
+ {&(_ZTV7ee71251[11]), 11,22},
+ {&(_ZTV7ee71251[16]), 16,22},
+ {&(_ZTV7ee71251[21]), 21,22},
+ {&(_tg__ZTV6dd1251__7ee71251[4]), 4,4},
+ {&(_tg__ZTV5cc251__6dd1251__7ee71251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1251__7ee71251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee71251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee71251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee71251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee71251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71251[];
+extern VTBL_ENTRY _ZTV7ee71251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71251[];
+static VTBL_ENTRY alt_thunk_names571[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712513fooEv,_ZTv0_n12_N7ee712513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee712513fooEv,_ZThn28_N7ee712513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee712513fooEv,_ZTv0_n20_N7ee712513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712513fooEv,_ZThn16_N7ee712513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712513barEv,_ZTv0_n16_N7ee712513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712513barEv,_ZThn16_N7ee712513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71251 = { "ee71251", // class name
+ bases_ee71251, 4,
+ &(vtc_ee71251[0]), // expected_vtbl_contents
+ &(vtt_ee71251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71251),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names571,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2251 : cc251 {
+ int d;
+ virtual void foo(); // _ZN6dd22513fooEv
+ ~dd2251(); // tgen
+ dd2251(); // tgen
+};
+//SIG(-1 dd2251) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2251 ::foo(){vfunc_called(this, "_ZN6dd22513fooEv");}
+dd2251 ::~dd2251(){ note_dtor("dd2251", this);} // tgen
+dd2251 ::dd2251(){ note_ctor("dd2251", this);} // tgen
+
+static void Test_dd2251()
+{
+ extern Class_Descriptor cd_dd2251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2251, buf);
+ dd2251 *dp, &lv = *(dp=new (buf) dd2251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(24,16), "dd2251");
+ check_base_class_offset(lv, (bb51*)(cc251*), 0, "dd2251");
+ check_base_class_offset(lv, (cc251*), 0, "dd2251");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2251.d");
+ test_class_info(&lv, &cd_dd2251);
+ dp->~dd2251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2251(Test_dd2251, "dd2251", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2251C1Ev();
+extern void _ZN6dd2251D1Ev();
+Name_Map name_map_dd2251[] = {
+ NSPAIR(_ZN6dd2251C1Ev),
+ NSPAIR(_ZN6dd2251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd2251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd2251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd2251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd2251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd2251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd2251[] = {
+ {&(_ZTV6dd2251[3]), 3,9},
+ {&(_tg__ZTV5cc251__6dd2251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd2251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd2251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd2251[3]), 3,4},
+ {&(_ZTV6dd2251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static VTBL_ENTRY alt_thunk_names572[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2251 = { "dd2251", // class name
+ bases_dd2251, 3,
+ &(vtc_dd2251[0]), // expected_vtbl_contents
+ &(vtt_dd2251[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2251),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names572,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02251 : dd2251 {
+ int e;
+ ~ee02251(); // tgen
+ ee02251(); // tgen
+};
+//SIG(1 ee02251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02251 ::~ee02251(){ note_dtor("ee02251", this);} // tgen
+ee02251 ::ee02251(){ note_ctor("ee02251", this);} // tgen
+
+static void Test_ee02251()
+{
+ extern Class_Descriptor cd_ee02251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02251, buf);
+ ee02251 *dp, &lv = *(dp=new (buf) ee02251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(24,20), "ee02251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), 0, "ee02251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), 0, "ee02251");
+ check_base_class_offset(lv, (dd2251*), 0, "ee02251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02251.e");
+ test_class_info(&lv, &cd_ee02251);
+ dp->~ee02251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02251(Test_ee02251, "ee02251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02251C1Ev();
+extern void _ZN7ee02251D1Ev();
+Name_Map name_map_ee02251[] = {
+ NSPAIR(_ZN7ee02251C1Ev),
+ NSPAIR(_ZN7ee02251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee02251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee02251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee02251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee02251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee02251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee02251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee02251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee02251[] = {
+ {&(_ZTV7ee02251[3]), 3,9},
+ {&(_tg__ZTV6dd2251__7ee02251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee02251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee02251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee02251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee02251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee02251[3]), 3,4},
+ {&(_ZTV7ee02251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02251[];
+extern VTBL_ENTRY _ZTV7ee02251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02251[];
+static VTBL_ENTRY alt_thunk_names573[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02251 = { "ee02251", // class name
+ bases_ee02251, 4,
+ &(vtc_ee02251[0]), // expected_vtbl_contents
+ &(vtt_ee02251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names573,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12251 : virtual dd2251 {
+ int e;
+ ~ee12251(); // tgen
+ ee12251(); // tgen
+};
+//SIG(1 ee12251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12251 ::~ee12251(){ note_dtor("ee12251", this);} // tgen
+ee12251 ::ee12251(){ note_ctor("ee12251", this);} // tgen
+
+static void Test_ee12251()
+{
+ extern Class_Descriptor cd_ee12251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12251, buf);
+ ee12251 *dp, &lv = *(dp=new (buf) ee12251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(40,24), "ee12251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), ABISELECT(16,8), "ee12251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), ABISELECT(16,8), "ee12251");
+ check_base_class_offset(lv, (dd2251*), ABISELECT(16,8), "ee12251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12251.e");
+ test_class_info(&lv, &cd_ee12251);
+ dp->~ee12251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12251(Test_ee12251, "ee12251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12251C1Ev();
+extern void _ZN7ee12251D1Ev();
+Name_Map name_map_ee12251[] = {
+ NSPAIR(_ZN7ee12251C1Ev),
+ NSPAIR(_ZN7ee12251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee12251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12251[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee12251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee12251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee12251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee12251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee12251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee12251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee12251[] = {
+ {&(_ZTV7ee12251[4]), 4,15},
+ {&(_ZTV7ee12251[9]), 9,15},
+ {&(_ZTV7ee12251[14]), 14,15},
+ {&(_tg__ZTV6dd2251__7ee12251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee12251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee12251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee12251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee12251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee12251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12251[];
+extern VTBL_ENTRY _ZTV7ee12251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12251[];
+static VTBL_ENTRY alt_thunk_names574[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12251 = { "ee12251", // class name
+ bases_ee12251, 4,
+ &(vtc_ee12251[0]), // expected_vtbl_contents
+ &(vtt_ee12251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names574,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22251 : dd2251 {
+ int e;
+ virtual void foo(); // _ZN7ee222513fooEv
+ ~ee22251(); // tgen
+ ee22251(); // tgen
+};
+//SIG(1 ee22251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22251 ::foo(){vfunc_called(this, "_ZN7ee222513fooEv");}
+ee22251 ::~ee22251(){ note_dtor("ee22251", this);} // tgen
+ee22251 ::ee22251(){ note_ctor("ee22251", this);} // tgen
+
+static void Test_ee22251()
+{
+ extern Class_Descriptor cd_ee22251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22251, buf);
+ ee22251 *dp, &lv = *(dp=new (buf) ee22251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(24,20), "ee22251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), 0, "ee22251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), 0, "ee22251");
+ check_base_class_offset(lv, (dd2251*), 0, "ee22251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22251.e");
+ test_class_info(&lv, &cd_ee22251);
+ dp->~ee22251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22251(Test_ee22251, "ee22251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22251C1Ev();
+extern void _ZN7ee22251D1Ev();
+Name_Map name_map_ee22251[] = {
+ NSPAIR(_ZN7ee22251C1Ev),
+ NSPAIR(_ZN7ee22251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee22251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22251[];
+extern void _ZN4bb513barEv();
+extern void _ZN7ee222513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee222513fooEv,_ZTv0_n12_N7ee222513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee222513fooEv,_ZThn20_N7ee222513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN7ee222513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee222513fooEv,_ZTv0_n12_N7ee222513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee22251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee22251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee22251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee22251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee22251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee22251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee22251[] = {
+ {&(_ZTV7ee22251[3]), 3,9},
+ {&(_tg__ZTV6dd2251__7ee22251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee22251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee22251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee22251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee22251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee22251[3]), 3,4},
+ {&(_ZTV7ee22251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22251[];
+extern VTBL_ENTRY _ZTV7ee22251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22251[];
+static VTBL_ENTRY alt_thunk_names575[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee222513fooEv,_ZTv0_n12_N7ee222513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee222513fooEv,_ZThn20_N7ee222513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22251 = { "ee22251", // class name
+ bases_ee22251, 4,
+ &(vtc_ee22251[0]), // expected_vtbl_contents
+ &(vtt_ee22251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names575,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32251 : virtual dd2251 {
+ int e;
+ virtual void foo(); // _ZN7ee322513fooEv
+ ~ee32251(); // tgen
+ ee32251(); // tgen
+};
+//SIG(1 ee32251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32251 ::foo(){vfunc_called(this, "_ZN7ee322513fooEv");}
+ee32251 ::~ee32251(){ note_dtor("ee32251", this);} // tgen
+ee32251 ::ee32251(){ note_ctor("ee32251", this);} // tgen
+
+static void Test_ee32251()
+{
+ extern Class_Descriptor cd_ee32251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32251, buf);
+ ee32251 *dp, &lv = *(dp=new (buf) ee32251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(40,24), "ee32251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), ABISELECT(16,8), "ee32251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), ABISELECT(16,8), "ee32251");
+ check_base_class_offset(lv, (dd2251*), ABISELECT(16,8), "ee32251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32251.e");
+ test_class_info(&lv, &cd_ee32251);
+ dp->~ee32251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32251(Test_ee32251, "ee32251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32251C1Ev();
+extern void _ZN7ee32251D1Ev();
+Name_Map name_map_ee32251[] = {
+ NSPAIR(_ZN7ee32251C1Ev),
+ NSPAIR(_ZN7ee32251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee32251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32251[];
+extern void _ZN7ee322513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee322513fooEv,_ZTv0_n20_N7ee322513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322513fooEv,_ZThn8_N7ee322513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee322513fooEv,_ZTv0_n12_N7ee322513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee322513fooEv,_ZThn24_N7ee322513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32251[0]),
+ (VTBL_ENTRY)&_ZN7ee322513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee322513fooEv,_ZTv0_n20_N7ee322513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322513fooEv,_ZTv0_n12_N7ee322513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee32251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee32251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee32251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee32251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee32251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee32251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee32251[] = {
+ {&(_ZTV7ee32251[4]), 4,16},
+ {&(_ZTV7ee32251[10]), 10,16},
+ {&(_ZTV7ee32251[15]), 15,16},
+ {&(_tg__ZTV6dd2251__7ee32251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee32251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee32251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee32251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee32251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee32251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32251[];
+extern VTBL_ENTRY _ZTV7ee32251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32251[];
+static VTBL_ENTRY alt_thunk_names576[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322513fooEv,_ZTv0_n12_N7ee322513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee322513fooEv,_ZThn24_N7ee322513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee322513fooEv,_ZTv0_n20_N7ee322513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322513fooEv,_ZThn8_N7ee322513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32251 = { "ee32251", // class name
+ bases_ee32251, 4,
+ &(vtc_ee32251[0]), // expected_vtbl_contents
+ &(vtt_ee32251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names576,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42251 : dd2251 {
+ int e;
+ virtual void bar(); // _ZN7ee422513barEv
+ ~ee42251(); // tgen
+ ee42251(); // tgen
+};
+//SIG(1 ee42251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42251 ::bar(){vfunc_called(this, "_ZN7ee422513barEv");}
+ee42251 ::~ee42251(){ note_dtor("ee42251", this);} // tgen
+ee42251 ::ee42251(){ note_ctor("ee42251", this);} // tgen
+
+static void Test_ee42251()
+{
+ extern Class_Descriptor cd_ee42251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42251, buf);
+ ee42251 *dp, &lv = *(dp=new (buf) ee42251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(24,20), "ee42251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), 0, "ee42251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), 0, "ee42251");
+ check_base_class_offset(lv, (dd2251*), 0, "ee42251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42251.e");
+ test_class_info(&lv, &cd_ee42251);
+ dp->~ee42251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42251(Test_ee42251, "ee42251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42251C1Ev();
+extern void _ZN7ee42251D1Ev();
+Name_Map name_map_ee42251[] = {
+ NSPAIR(_ZN7ee42251C1Ev),
+ NSPAIR(_ZN7ee42251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee42251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42251[];
+extern void _ZN7ee422513barEv();
+extern void _ZN6dd22513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42251[0]),
+ (VTBL_ENTRY)&_ZN7ee422513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee42251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee42251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee42251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee42251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee42251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee42251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee42251[] = {
+ {&(_ZTV7ee42251[3]), 3,9},
+ {&(_tg__ZTV6dd2251__7ee42251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee42251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee42251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee42251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee42251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee42251[3]), 3,4},
+ {&(_ZTV7ee42251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42251[];
+extern VTBL_ENTRY _ZTV7ee42251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42251[];
+static VTBL_ENTRY alt_thunk_names577[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42251 = { "ee42251", // class name
+ bases_ee42251, 4,
+ &(vtc_ee42251[0]), // expected_vtbl_contents
+ &(vtt_ee42251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names577,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52251 : virtual dd2251 {
+ int e;
+ virtual void bar(); // _ZN7ee522513barEv
+ ~ee52251(); // tgen
+ ee52251(); // tgen
+};
+//SIG(1 ee52251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52251 ::bar(){vfunc_called(this, "_ZN7ee522513barEv");}
+ee52251 ::~ee52251(){ note_dtor("ee52251", this);} // tgen
+ee52251 ::ee52251(){ note_ctor("ee52251", this);} // tgen
+
+static void Test_ee52251()
+{
+ extern Class_Descriptor cd_ee52251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52251, buf);
+ ee52251 *dp, &lv = *(dp=new (buf) ee52251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(40,24), "ee52251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), ABISELECT(16,8), "ee52251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), ABISELECT(16,8), "ee52251");
+ check_base_class_offset(lv, (dd2251*), ABISELECT(16,8), "ee52251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52251.e");
+ test_class_info(&lv, &cd_ee52251);
+ dp->~ee52251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52251(Test_ee52251, "ee52251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52251C1Ev();
+extern void _ZN7ee52251D1Ev();
+Name_Map name_map_ee52251[] = {
+ NSPAIR(_ZN7ee52251C1Ev),
+ NSPAIR(_ZN7ee52251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee52251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52251[];
+extern void _ZN7ee522513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522513barEv,_ZTv0_n16_N7ee522513barEv)();
+extern void ABISELECT(_ZThn16_N7ee522513barEv,_ZThn8_N7ee522513barEv)() __attribute__((weak));
+extern void _ZN6dd22513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52251[0]),
+ (VTBL_ENTRY)&_ZN7ee522513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522513barEv,_ZTv0_n16_N7ee522513barEv),
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee52251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee52251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee52251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee52251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee52251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee52251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee52251[] = {
+ {&(_ZTV7ee52251[4]), 4,16},
+ {&(_ZTV7ee52251[10]), 10,16},
+ {&(_ZTV7ee52251[15]), 15,16},
+ {&(_tg__ZTV6dd2251__7ee52251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee52251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee52251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee52251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee52251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee52251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52251[];
+extern VTBL_ENTRY _ZTV7ee52251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52251[];
+static VTBL_ENTRY alt_thunk_names578[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522513barEv,_ZTv0_n16_N7ee522513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522513barEv,_ZThn8_N7ee522513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52251 = { "ee52251", // class name
+ bases_ee52251, 4,
+ &(vtc_ee52251[0]), // expected_vtbl_contents
+ &(vtt_ee52251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names578,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62251 : dd2251 {
+ int e;
+ virtual void foo(); // _ZN7ee622513fooEv
+ virtual void bar(); // _ZN7ee622513barEv
+ ~ee62251(); // tgen
+ ee62251(); // tgen
+};
+//SIG(1 ee62251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62251 ::foo(){vfunc_called(this, "_ZN7ee622513fooEv");}
+void ee62251 ::bar(){vfunc_called(this, "_ZN7ee622513barEv");}
+ee62251 ::~ee62251(){ note_dtor("ee62251", this);} // tgen
+ee62251 ::ee62251(){ note_ctor("ee62251", this);} // tgen
+
+static void Test_ee62251()
+{
+ extern Class_Descriptor cd_ee62251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62251, buf);
+ ee62251 *dp, &lv = *(dp=new (buf) ee62251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(24,20), "ee62251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), 0, "ee62251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), 0, "ee62251");
+ check_base_class_offset(lv, (dd2251*), 0, "ee62251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62251.e");
+ test_class_info(&lv, &cd_ee62251);
+ dp->~ee62251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62251(Test_ee62251, "ee62251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62251C1Ev();
+extern void _ZN7ee62251D1Ev();
+Name_Map name_map_ee62251[] = {
+ NSPAIR(_ZN7ee62251C1Ev),
+ NSPAIR(_ZN7ee62251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee62251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62251[];
+extern void _ZN7ee622513barEv();
+extern void _ZN7ee622513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee622513fooEv,_ZTv0_n12_N7ee622513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee622513fooEv,_ZThn20_N7ee622513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62251[0]),
+ (VTBL_ENTRY)&_ZN7ee622513barEv,
+ (VTBL_ENTRY)&_ZN7ee622513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee622513fooEv,_ZTv0_n12_N7ee622513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee62251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee62251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee62251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee62251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee62251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee62251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee62251[] = {
+ {&(_ZTV7ee62251[3]), 3,9},
+ {&(_tg__ZTV6dd2251__7ee62251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee62251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee62251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee62251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee62251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee62251[3]), 3,4},
+ {&(_ZTV7ee62251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62251[];
+extern VTBL_ENTRY _ZTV7ee62251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62251[];
+static VTBL_ENTRY alt_thunk_names579[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn20_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee622513fooEv,_ZTv0_n12_N7ee622513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee622513fooEv,_ZThn20_N7ee622513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62251 = { "ee62251", // class name
+ bases_ee62251, 4,
+ &(vtc_ee62251[0]), // expected_vtbl_contents
+ &(vtt_ee62251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names579,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72251 : virtual dd2251 {
+ int e;
+ virtual void foo(); // _ZN7ee722513fooEv
+ virtual void bar(); // _ZN7ee722513barEv
+ ~ee72251(); // tgen
+ ee72251(); // tgen
+};
+//SIG(1 ee72251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72251 ::foo(){vfunc_called(this, "_ZN7ee722513fooEv");}
+void ee72251 ::bar(){vfunc_called(this, "_ZN7ee722513barEv");}
+ee72251 ::~ee72251(){ note_dtor("ee72251", this);} // tgen
+ee72251 ::ee72251(){ note_ctor("ee72251", this);} // tgen
+
+static void Test_ee72251()
+{
+ extern Class_Descriptor cd_ee72251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72251, buf);
+ ee72251 *dp, &lv = *(dp=new (buf) ee72251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd2251*), ABISELECT(40,24), "ee72251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd2251*), ABISELECT(16,8), "ee72251");
+ check_base_class_offset(lv, (cc251*)(dd2251*), ABISELECT(16,8), "ee72251");
+ check_base_class_offset(lv, (dd2251*), ABISELECT(16,8), "ee72251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72251.e");
+ test_class_info(&lv, &cd_ee72251);
+ dp->~ee72251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72251(Test_ee72251, "ee72251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72251C1Ev();
+extern void _ZN7ee72251D1Ev();
+Name_Map name_map_ee72251[] = {
+ NSPAIR(_ZN7ee72251C1Ev),
+ NSPAIR(_ZN7ee72251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd2251;
+extern VTBL_ENTRY _ZTI6dd2251[];
+extern VTBL_ENTRY _ZTV6dd2251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2251[];
+static Base_Class bases_ee72251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72251[];
+extern void _ZN7ee722513fooEv();
+extern void _ZN7ee722513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee722513barEv,_ZTv0_n16_N7ee722513barEv)();
+extern void ABISELECT(_ZThn16_N7ee722513barEv,_ZThn8_N7ee722513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee722513fooEv,_ZTv0_n20_N7ee722513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722513fooEv,_ZThn8_N7ee722513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee722513fooEv,_ZTv0_n12_N7ee722513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee722513fooEv,_ZThn24_N7ee722513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72251[0]),
+ (VTBL_ENTRY)&_ZN7ee722513fooEv,
+ (VTBL_ENTRY)&_ZN7ee722513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722513barEv,_ZTv0_n16_N7ee722513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee722513fooEv,_ZTv0_n20_N7ee722513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722513fooEv,_ZTv0_n12_N7ee722513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72251[];
+extern void _ZN4bb513barEv();
+extern void _ZN6dd22513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2251__7ee72251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN6dd22513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd2251__7ee72251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd2251__7ee72251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd2251__7ee72251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd2251__7ee72251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2251__7ee72251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv),
+};
+static VTT_ENTRY vtt_ee72251[] = {
+ {&(_ZTV7ee72251[4]), 4,17},
+ {&(_ZTV7ee72251[11]), 11,17},
+ {&(_ZTV7ee72251[16]), 16,17},
+ {&(_tg__ZTV6dd2251__7ee72251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd2251__7ee72251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd2251__7ee72251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd2251__7ee72251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd2251__7ee72251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2251__7ee72251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72251[];
+extern VTBL_ENTRY _ZTV7ee72251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72251[];
+static VTBL_ENTRY alt_thunk_names580[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22513fooEv,_ZTv0_n12_N6dd22513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22513fooEv,_ZThn16_N6dd22513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722513fooEv,_ZTv0_n12_N7ee722513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee722513fooEv,_ZThn24_N7ee722513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee722513fooEv,_ZTv0_n20_N7ee722513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722513fooEv,_ZThn8_N7ee722513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722513barEv,_ZTv0_n16_N7ee722513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722513barEv,_ZThn8_N7ee722513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72251 = { "ee72251", // class name
+ bases_ee72251, 4,
+ &(vtc_ee72251[0]), // expected_vtbl_contents
+ &(vtt_ee72251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names580,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3251 : virtual cc251 {
+ int d;
+ virtual void foo(); // _ZN6dd32513fooEv
+ ~dd3251(); // tgen
+ dd3251(); // tgen
+};
+//SIG(-1 dd3251) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3251 ::foo(){vfunc_called(this, "_ZN6dd32513fooEv");}
+dd3251 ::~dd3251(){ note_dtor("dd3251", this);} // tgen
+dd3251 ::dd3251(){ note_ctor("dd3251", this);} // tgen
+
+static void Test_dd3251()
+{
+ extern Class_Descriptor cd_dd3251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3251, buf);
+ dd3251 *dp, &lv = *(dp=new (buf) dd3251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,20), "dd3251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,8), "dd3251");
+ check_base_class_offset(lv, (cc251*), ABISELECT(16,8), "dd3251");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3251.d");
+ test_class_info(&lv, &cd_dd3251);
+ dp->~dd3251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3251(Test_dd3251, "dd3251", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3251C1Ev();
+extern void _ZN6dd3251D1Ev();
+Name_Map name_map_dd3251[] = {
+ NSPAIR(_ZN6dd3251C1Ev),
+ NSPAIR(_ZN6dd3251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd3251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd3251[];
+extern void _ZN6dd32513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd3251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd3251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd3251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd3251[] = {
+ {&(_ZTV6dd3251[4]), 4,16},
+ {&(_ZTV6dd3251[10]), 10,16},
+ {&(_ZTV6dd3251[15]), 15,16},
+ {&(_tg__ZTV5cc251__6dd3251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd3251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd3251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd3251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static VTBL_ENTRY alt_thunk_names581[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3251 = { "dd3251", // class name
+ bases_dd3251, 3,
+ &(vtc_dd3251[0]), // expected_vtbl_contents
+ &(vtt_dd3251[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3251),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names581,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03251 : dd3251 {
+ int e;
+ ~ee03251(); // tgen
+ ee03251(); // tgen
+};
+//SIG(1 ee03251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03251 ::~ee03251(){ note_dtor("ee03251", this);} // tgen
+ee03251 ::ee03251(){ note_ctor("ee03251", this);} // tgen
+
+static void Test_ee03251()
+{
+ extern Class_Descriptor cd_ee03251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03251, buf);
+ ee03251 *dp, &lv = *(dp=new (buf) ee03251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee03251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee03251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(16,12), "ee03251");
+ check_base_class_offset(lv, (dd3251*), 0, "ee03251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03251.e");
+ test_class_info(&lv, &cd_ee03251);
+ dp->~ee03251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03251(Test_ee03251, "ee03251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03251C1Ev();
+extern void _ZN7ee03251D1Ev();
+Name_Map name_map_ee03251[] = {
+ NSPAIR(_ZN7ee03251C1Ev),
+ NSPAIR(_ZN7ee03251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee03251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03251[];
+extern void _ZN6dd32513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee03251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee03251[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee03251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee03251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee03251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee03251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee03251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee03251[] = {
+ {&(_ZTV7ee03251[4]), 4,16},
+ {&(_tg__ZTV6dd3251__7ee03251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee03251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee03251[3]), 3,4},
+ {&(_ZTV7ee03251[10]), 10,16},
+ {&(_ZTV7ee03251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee03251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee03251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee03251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee03251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03251[];
+extern VTBL_ENTRY _ZTV7ee03251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03251[];
+static VTBL_ENTRY alt_thunk_names582[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03251 = { "ee03251", // class name
+ bases_ee03251, 4,
+ &(vtc_ee03251[0]), // expected_vtbl_contents
+ &(vtt_ee03251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names582,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13251 : virtual dd3251 {
+ int e;
+ ~ee13251(); // tgen
+ ee13251(); // tgen
+};
+//SIG(1 ee13251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13251 ::~ee13251(){ note_dtor("ee13251", this);} // tgen
+ee13251 ::ee13251(){ note_ctor("ee13251", this);} // tgen
+
+static void Test_ee13251()
+{
+ extern Class_Descriptor cd_ee13251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13251, buf);
+ ee13251 *dp, &lv = *(dp=new (buf) ee13251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee13251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee13251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(32,16), "ee13251");
+ check_base_class_offset(lv, (dd3251*), ABISELECT(16,8), "ee13251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13251.e");
+ test_class_info(&lv, &cd_ee13251);
+ dp->~ee13251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13251(Test_ee13251, "ee13251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13251C1Ev();
+extern void _ZN7ee13251D1Ev();
+Name_Map name_map_ee13251[] = {
+ NSPAIR(_ZN7ee13251C1Ev),
+ NSPAIR(_ZN7ee13251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee13251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13251[];
+extern void _ZN6dd32513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13251[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee13251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee13251[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee13251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee13251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee13251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee13251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee13251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee13251[] = {
+ {&(_ZTV7ee13251[5]), 5,22},
+ {&(_ZTV7ee13251[10]), 10,22},
+ {&(_ZTV7ee13251[16]), 16,22},
+ {&(_ZTV7ee13251[21]), 21,22},
+ {&(_tg__ZTV6dd3251__7ee13251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee13251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee13251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee13251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee13251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee13251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee13251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13251[];
+extern VTBL_ENTRY _ZTV7ee13251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13251[];
+static VTBL_ENTRY alt_thunk_names583[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13251 = { "ee13251", // class name
+ bases_ee13251, 4,
+ &(vtc_ee13251[0]), // expected_vtbl_contents
+ &(vtt_ee13251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13251),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names583,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23251 : dd3251 {
+ int e;
+ virtual void foo(); // _ZN7ee232513fooEv
+ ~ee23251(); // tgen
+ ee23251(); // tgen
+};
+//SIG(1 ee23251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23251 ::foo(){vfunc_called(this, "_ZN7ee232513fooEv");}
+ee23251 ::~ee23251(){ note_dtor("ee23251", this);} // tgen
+ee23251 ::ee23251(){ note_ctor("ee23251", this);} // tgen
+
+static void Test_ee23251()
+{
+ extern Class_Descriptor cd_ee23251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23251, buf);
+ ee23251 *dp, &lv = *(dp=new (buf) ee23251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee23251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee23251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(16,12), "ee23251");
+ check_base_class_offset(lv, (dd3251*), 0, "ee23251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23251.e");
+ test_class_info(&lv, &cd_ee23251);
+ dp->~ee23251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23251(Test_ee23251, "ee23251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23251C1Ev();
+extern void _ZN7ee23251D1Ev();
+Name_Map name_map_ee23251[] = {
+ NSPAIR(_ZN7ee23251C1Ev),
+ NSPAIR(_ZN7ee23251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee23251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23251[];
+extern void _ZN7ee232513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee232513fooEv,_ZTv0_n20_N7ee232513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232513fooEv,_ZThn12_N7ee232513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee232513fooEv,_ZTv0_n12_N7ee232513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee232513fooEv,_ZThn24_N7ee232513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23251[0]),
+ (VTBL_ENTRY)&_ZN7ee232513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee232513fooEv,_ZTv0_n20_N7ee232513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232513fooEv,_ZTv0_n12_N7ee232513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee23251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee23251[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee23251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee23251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee23251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee23251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee23251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee23251[] = {
+ {&(_ZTV7ee23251[4]), 4,16},
+ {&(_tg__ZTV6dd3251__7ee23251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee23251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee23251[3]), 3,4},
+ {&(_ZTV7ee23251[10]), 10,16},
+ {&(_ZTV7ee23251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee23251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee23251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee23251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee23251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23251[];
+extern VTBL_ENTRY _ZTV7ee23251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23251[];
+static VTBL_ENTRY alt_thunk_names584[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232513fooEv,_ZTv0_n12_N7ee232513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee232513fooEv,_ZThn24_N7ee232513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee232513fooEv,_ZTv0_n20_N7ee232513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232513fooEv,_ZThn12_N7ee232513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23251 = { "ee23251", // class name
+ bases_ee23251, 4,
+ &(vtc_ee23251[0]), // expected_vtbl_contents
+ &(vtt_ee23251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names584,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33251 : virtual dd3251 {
+ int e;
+ virtual void foo(); // _ZN7ee332513fooEv
+ ~ee33251(); // tgen
+ ee33251(); // tgen
+};
+//SIG(1 ee33251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33251 ::foo(){vfunc_called(this, "_ZN7ee332513fooEv");}
+ee33251 ::~ee33251(){ note_dtor("ee33251", this);} // tgen
+ee33251 ::ee33251(){ note_ctor("ee33251", this);} // tgen
+
+static void Test_ee33251()
+{
+ extern Class_Descriptor cd_ee33251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33251, buf);
+ ee33251 *dp, &lv = *(dp=new (buf) ee33251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee33251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee33251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(32,16), "ee33251");
+ check_base_class_offset(lv, (dd3251*), ABISELECT(16,8), "ee33251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33251.e");
+ test_class_info(&lv, &cd_ee33251);
+ dp->~ee33251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33251(Test_ee33251, "ee33251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33251C1Ev();
+extern void _ZN7ee33251D1Ev();
+Name_Map name_map_ee33251[] = {
+ NSPAIR(_ZN7ee33251C1Ev),
+ NSPAIR(_ZN7ee33251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee33251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33251[];
+extern void _ZN7ee332513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332513fooEv,_ZTv0_n20_N7ee332513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332513fooEv,_ZThn8_N7ee332513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332513fooEv,_ZTv0_n20_N7ee332513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332513fooEv,_ZThn16_N7ee332513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332513fooEv,_ZTv0_n12_N7ee332513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee332513fooEv,_ZThn28_N7ee332513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33251[0]),
+ (VTBL_ENTRY)&_ZN7ee332513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332513fooEv,_ZTv0_n20_N7ee332513fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332513fooEv,_ZTv0_n20_N7ee332513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332513fooEv,_ZTv0_n12_N7ee332513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee33251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee33251[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee33251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee33251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee33251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee33251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee33251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee33251[] = {
+ {&(_ZTV7ee33251[5]), 5,23},
+ {&(_ZTV7ee33251[11]), 11,23},
+ {&(_ZTV7ee33251[17]), 17,23},
+ {&(_ZTV7ee33251[22]), 22,23},
+ {&(_tg__ZTV6dd3251__7ee33251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee33251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee33251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee33251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee33251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee33251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee33251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33251[];
+extern VTBL_ENTRY _ZTV7ee33251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33251[];
+static VTBL_ENTRY alt_thunk_names585[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332513fooEv,_ZTv0_n12_N7ee332513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee332513fooEv,_ZThn28_N7ee332513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee332513fooEv,_ZTv0_n20_N7ee332513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332513fooEv,_ZThn16_N7ee332513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332513fooEv,_ZThn8_N7ee332513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33251 = { "ee33251", // class name
+ bases_ee33251, 4,
+ &(vtc_ee33251[0]), // expected_vtbl_contents
+ &(vtt_ee33251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33251),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names585,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43251 : dd3251 {
+ int e;
+ virtual void bar(); // _ZN7ee432513barEv
+ ~ee43251(); // tgen
+ ee43251(); // tgen
+};
+//SIG(1 ee43251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43251 ::bar(){vfunc_called(this, "_ZN7ee432513barEv");}
+ee43251 ::~ee43251(){ note_dtor("ee43251", this);} // tgen
+ee43251 ::ee43251(){ note_ctor("ee43251", this);} // tgen
+
+static void Test_ee43251()
+{
+ extern Class_Descriptor cd_ee43251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43251, buf);
+ ee43251 *dp, &lv = *(dp=new (buf) ee43251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee43251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee43251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(16,12), "ee43251");
+ check_base_class_offset(lv, (dd3251*), 0, "ee43251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43251.e");
+ test_class_info(&lv, &cd_ee43251);
+ dp->~ee43251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43251(Test_ee43251, "ee43251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43251C1Ev();
+extern void _ZN7ee43251D1Ev();
+Name_Map name_map_ee43251[] = {
+ NSPAIR(_ZN7ee43251C1Ev),
+ NSPAIR(_ZN7ee43251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee43251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43251[];
+extern void _ZN6dd32513fooEv();
+extern void _ZN7ee432513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee432513barEv,_ZTv0_n16_N7ee432513barEv)();
+extern void ABISELECT(_ZThn16_N7ee432513barEv,_ZThn12_N7ee432513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+ (VTBL_ENTRY)&_ZN7ee432513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432513barEv,_ZTv0_n16_N7ee432513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee43251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee43251[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee43251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee43251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee43251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee43251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee43251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee43251[] = {
+ {&(_ZTV7ee43251[4]), 4,17},
+ {&(_tg__ZTV6dd3251__7ee43251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee43251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee43251[3]), 3,4},
+ {&(_ZTV7ee43251[11]), 11,17},
+ {&(_ZTV7ee43251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee43251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee43251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee43251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee43251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43251[];
+extern VTBL_ENTRY _ZTV7ee43251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43251[];
+static VTBL_ENTRY alt_thunk_names586[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432513barEv,_ZTv0_n16_N7ee432513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432513barEv,_ZThn12_N7ee432513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43251 = { "ee43251", // class name
+ bases_ee43251, 4,
+ &(vtc_ee43251[0]), // expected_vtbl_contents
+ &(vtt_ee43251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names586,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53251 : virtual dd3251 {
+ int e;
+ virtual void bar(); // _ZN7ee532513barEv
+ ~ee53251(); // tgen
+ ee53251(); // tgen
+};
+//SIG(1 ee53251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53251 ::bar(){vfunc_called(this, "_ZN7ee532513barEv");}
+ee53251 ::~ee53251(){ note_dtor("ee53251", this);} // tgen
+ee53251 ::ee53251(){ note_ctor("ee53251", this);} // tgen
+
+static void Test_ee53251()
+{
+ extern Class_Descriptor cd_ee53251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53251, buf);
+ ee53251 *dp, &lv = *(dp=new (buf) ee53251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee53251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee53251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(32,16), "ee53251");
+ check_base_class_offset(lv, (dd3251*), ABISELECT(16,8), "ee53251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53251.e");
+ test_class_info(&lv, &cd_ee53251);
+ dp->~ee53251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53251(Test_ee53251, "ee53251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53251C1Ev();
+extern void _ZN7ee53251D1Ev();
+Name_Map name_map_ee53251[] = {
+ NSPAIR(_ZN7ee53251C1Ev),
+ NSPAIR(_ZN7ee53251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee53251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53251[];
+extern void _ZN7ee532513barEv();
+extern void _ZN6dd32513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee532513barEv,_ZTv0_n16_N7ee532513barEv)();
+extern void ABISELECT(_ZThn32_N7ee532513barEv,_ZThn16_N7ee532513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53251[0]),
+ (VTBL_ENTRY)&_ZN7ee532513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532513barEv,_ZTv0_n16_N7ee532513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee53251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee53251[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee53251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee53251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee53251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee53251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee53251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee53251[] = {
+ {&(_ZTV7ee53251[5]), 5,23},
+ {&(_ZTV7ee53251[11]), 11,23},
+ {&(_ZTV7ee53251[17]), 17,23},
+ {&(_ZTV7ee53251[22]), 22,23},
+ {&(_tg__ZTV6dd3251__7ee53251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee53251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee53251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee53251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee53251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee53251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee53251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53251[];
+extern VTBL_ENTRY _ZTV7ee53251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53251[];
+static VTBL_ENTRY alt_thunk_names587[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532513barEv,_ZTv0_n16_N7ee532513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532513barEv,_ZThn16_N7ee532513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53251 = { "ee53251", // class name
+ bases_ee53251, 4,
+ &(vtc_ee53251[0]), // expected_vtbl_contents
+ &(vtt_ee53251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53251),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names587,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63251 : dd3251 {
+ int e;
+ virtual void foo(); // _ZN7ee632513fooEv
+ virtual void bar(); // _ZN7ee632513barEv
+ ~ee63251(); // tgen
+ ee63251(); // tgen
+};
+//SIG(1 ee63251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63251 ::foo(){vfunc_called(this, "_ZN7ee632513fooEv");}
+void ee63251 ::bar(){vfunc_called(this, "_ZN7ee632513barEv");}
+ee63251 ::~ee63251(){ note_dtor("ee63251", this);} // tgen
+ee63251 ::ee63251(){ note_ctor("ee63251", this);} // tgen
+
+static void Test_ee63251()
+{
+ extern Class_Descriptor cd_ee63251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63251, buf);
+ ee63251 *dp, &lv = *(dp=new (buf) ee63251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee63251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee63251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(16,12), "ee63251");
+ check_base_class_offset(lv, (dd3251*), 0, "ee63251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63251.e");
+ test_class_info(&lv, &cd_ee63251);
+ dp->~ee63251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63251(Test_ee63251, "ee63251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63251C1Ev();
+extern void _ZN7ee63251D1Ev();
+Name_Map name_map_ee63251[] = {
+ NSPAIR(_ZN7ee63251C1Ev),
+ NSPAIR(_ZN7ee63251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee63251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63251[];
+extern void _ZN7ee632513fooEv();
+extern void _ZN7ee632513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee632513barEv,_ZTv0_n16_N7ee632513barEv)();
+extern void ABISELECT(_ZThn16_N7ee632513barEv,_ZThn12_N7ee632513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee632513fooEv,_ZTv0_n20_N7ee632513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632513fooEv,_ZThn12_N7ee632513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee632513fooEv,_ZTv0_n12_N7ee632513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee632513fooEv,_ZThn24_N7ee632513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63251[0]),
+ (VTBL_ENTRY)&_ZN7ee632513fooEv,
+ (VTBL_ENTRY)&_ZN7ee632513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632513barEv,_ZTv0_n16_N7ee632513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee632513fooEv,_ZTv0_n20_N7ee632513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632513fooEv,_ZTv0_n12_N7ee632513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee63251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee63251[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee63251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee63251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee63251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee63251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee63251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee63251[] = {
+ {&(_ZTV7ee63251[4]), 4,17},
+ {&(_tg__ZTV6dd3251__7ee63251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee63251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee63251[3]), 3,4},
+ {&(_ZTV7ee63251[11]), 11,17},
+ {&(_ZTV7ee63251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee63251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee63251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee63251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee63251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63251[];
+extern VTBL_ENTRY _ZTV7ee63251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63251[];
+static VTBL_ENTRY alt_thunk_names588[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn24_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn12_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632513fooEv,_ZTv0_n12_N7ee632513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee632513fooEv,_ZThn24_N7ee632513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee632513fooEv,_ZTv0_n20_N7ee632513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632513fooEv,_ZThn12_N7ee632513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632513barEv,_ZTv0_n16_N7ee632513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632513barEv,_ZThn12_N7ee632513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63251 = { "ee63251", // class name
+ bases_ee63251, 4,
+ &(vtc_ee63251[0]), // expected_vtbl_contents
+ &(vtt_ee63251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names588,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73251 : virtual dd3251 {
+ int e;
+ virtual void foo(); // _ZN7ee732513fooEv
+ virtual void bar(); // _ZN7ee732513barEv
+ ~ee73251(); // tgen
+ ee73251(); // tgen
+};
+//SIG(1 ee73251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73251 ::foo(){vfunc_called(this, "_ZN7ee732513fooEv");}
+void ee73251 ::bar(){vfunc_called(this, "_ZN7ee732513barEv");}
+ee73251 ::~ee73251(){ note_dtor("ee73251", this);} // tgen
+ee73251 ::ee73251(){ note_ctor("ee73251", this);} // tgen
+
+static void Test_ee73251()
+{
+ extern Class_Descriptor cd_ee73251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73251, buf);
+ ee73251 *dp, &lv = *(dp=new (buf) ee73251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee73251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee73251");
+ check_base_class_offset(lv, (cc251*)(dd3251*), ABISELECT(32,16), "ee73251");
+ check_base_class_offset(lv, (dd3251*), ABISELECT(16,8), "ee73251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73251.e");
+ test_class_info(&lv, &cd_ee73251);
+ dp->~ee73251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73251(Test_ee73251, "ee73251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73251C1Ev();
+extern void _ZN7ee73251D1Ev();
+Name_Map name_map_ee73251[] = {
+ NSPAIR(_ZN7ee73251C1Ev),
+ NSPAIR(_ZN7ee73251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd3251;
+extern VTBL_ENTRY _ZTI6dd3251[];
+extern VTBL_ENTRY _ZTV6dd3251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3251[];
+static Base_Class bases_ee73251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3251, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73251[];
+extern void _ZN7ee732513fooEv();
+extern void _ZN7ee732513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee732513fooEv,_ZTv0_n20_N7ee732513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732513fooEv,_ZThn8_N7ee732513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732513barEv,_ZTv0_n16_N7ee732513barEv)();
+extern void ABISELECT(_ZThn32_N7ee732513barEv,_ZThn16_N7ee732513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee732513fooEv,_ZTv0_n20_N7ee732513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732513fooEv,_ZThn16_N7ee732513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732513fooEv,_ZTv0_n12_N7ee732513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee732513fooEv,_ZThn28_N7ee732513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73251[0]),
+ (VTBL_ENTRY)&_ZN7ee732513fooEv,
+ (VTBL_ENTRY)&_ZN7ee732513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732513fooEv,_ZTv0_n20_N7ee732513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732513barEv,_ZTv0_n16_N7ee732513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732513fooEv,_ZTv0_n20_N7ee732513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732513fooEv,_ZTv0_n12_N7ee732513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73251[];
+extern void _ZN6dd32513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3251__7ee73251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN6dd32513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd3251__7ee73251[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3251__7ee73251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee73251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee73251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee73251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee73251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee73251[] = {
+ {&(_ZTV7ee73251[5]), 5,24},
+ {&(_ZTV7ee73251[12]), 12,24},
+ {&(_ZTV7ee73251[18]), 18,24},
+ {&(_ZTV7ee73251[23]), 23,24},
+ {&(_tg__ZTV6dd3251__7ee73251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd3251__7ee73251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3251__7ee73251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee73251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee73251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee73251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee73251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73251[];
+extern VTBL_ENTRY _ZTV7ee73251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73251[];
+static VTBL_ENTRY alt_thunk_names589[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32513fooEv,_ZTv0_n12_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32513fooEv,_ZThn20_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32513fooEv,_ZTv0_n20_N6dd32513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32513fooEv,_ZThn8_N6dd32513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732513fooEv,_ZTv0_n12_N7ee732513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee732513fooEv,_ZThn28_N7ee732513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732513barEv,_ZTv0_n16_N7ee732513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732513barEv,_ZThn16_N7ee732513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee732513fooEv,_ZTv0_n20_N7ee732513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732513fooEv,_ZThn16_N7ee732513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732513fooEv,_ZThn8_N7ee732513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73251 = { "ee73251", // class name
+ bases_ee73251, 4,
+ &(vtc_ee73251[0]), // expected_vtbl_contents
+ &(vtt_ee73251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73251),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names589,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4251 : cc251 {
+ int d;
+ virtual void bar(); // _ZN6dd42513barEv
+ ~dd4251(); // tgen
+ dd4251(); // tgen
+};
+//SIG(-1 dd4251) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4251 ::bar(){vfunc_called(this, "_ZN6dd42513barEv");}
+dd4251 ::~dd4251(){ note_dtor("dd4251", this);} // tgen
+dd4251 ::dd4251(){ note_ctor("dd4251", this);} // tgen
+
+static void Test_dd4251()
+{
+ extern Class_Descriptor cd_dd4251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4251, buf);
+ dd4251 *dp, &lv = *(dp=new (buf) dd4251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(24,16), "dd4251");
+ check_base_class_offset(lv, (bb51*)(cc251*), 0, "dd4251");
+ check_base_class_offset(lv, (cc251*), 0, "dd4251");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4251.d");
+ test_class_info(&lv, &cd_dd4251);
+ dp->~dd4251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4251(Test_dd4251, "dd4251", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4251C1Ev();
+extern void _ZN6dd4251D1Ev();
+Name_Map name_map_dd4251[] = {
+ NSPAIR(_ZN6dd4251C1Ev),
+ NSPAIR(_ZN6dd4251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd4251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd4251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd4251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd4251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd4251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd4251[] = {
+ {&(_ZTV6dd4251[3]), 3,9},
+ {&(_tg__ZTV5cc251__6dd4251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd4251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd4251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd4251[3]), 3,4},
+ {&(_ZTV6dd4251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static VTBL_ENTRY alt_thunk_names590[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4251 = { "dd4251", // class name
+ bases_dd4251, 3,
+ &(vtc_dd4251[0]), // expected_vtbl_contents
+ &(vtt_dd4251[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4251),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names590,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04251 : dd4251 {
+ int e;
+ ~ee04251(); // tgen
+ ee04251(); // tgen
+};
+//SIG(1 ee04251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04251 ::~ee04251(){ note_dtor("ee04251", this);} // tgen
+ee04251 ::ee04251(){ note_ctor("ee04251", this);} // tgen
+
+static void Test_ee04251()
+{
+ extern Class_Descriptor cd_ee04251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04251, buf);
+ ee04251 *dp, &lv = *(dp=new (buf) ee04251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(24,20), "ee04251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), 0, "ee04251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), 0, "ee04251");
+ check_base_class_offset(lv, (dd4251*), 0, "ee04251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04251.e");
+ test_class_info(&lv, &cd_ee04251);
+ dp->~ee04251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04251(Test_ee04251, "ee04251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04251C1Ev();
+extern void _ZN7ee04251D1Ev();
+Name_Map name_map_ee04251[] = {
+ NSPAIR(_ZN7ee04251C1Ev),
+ NSPAIR(_ZN7ee04251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee04251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee04251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee04251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee04251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee04251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee04251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee04251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee04251[] = {
+ {&(_ZTV7ee04251[3]), 3,9},
+ {&(_tg__ZTV6dd4251__7ee04251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee04251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee04251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee04251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee04251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee04251[3]), 3,4},
+ {&(_ZTV7ee04251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04251[];
+extern VTBL_ENTRY _ZTV7ee04251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04251[];
+static VTBL_ENTRY alt_thunk_names591[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04251 = { "ee04251", // class name
+ bases_ee04251, 4,
+ &(vtc_ee04251[0]), // expected_vtbl_contents
+ &(vtt_ee04251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names591,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14251 : virtual dd4251 {
+ int e;
+ ~ee14251(); // tgen
+ ee14251(); // tgen
+};
+//SIG(1 ee14251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14251 ::~ee14251(){ note_dtor("ee14251", this);} // tgen
+ee14251 ::ee14251(){ note_ctor("ee14251", this);} // tgen
+
+static void Test_ee14251()
+{
+ extern Class_Descriptor cd_ee14251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14251, buf);
+ ee14251 *dp, &lv = *(dp=new (buf) ee14251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(40,24), "ee14251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), ABISELECT(16,8), "ee14251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), ABISELECT(16,8), "ee14251");
+ check_base_class_offset(lv, (dd4251*), ABISELECT(16,8), "ee14251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14251.e");
+ test_class_info(&lv, &cd_ee14251);
+ dp->~ee14251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14251(Test_ee14251, "ee14251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14251C1Ev();
+extern void _ZN7ee14251D1Ev();
+Name_Map name_map_ee14251[] = {
+ NSPAIR(_ZN7ee14251C1Ev),
+ NSPAIR(_ZN7ee14251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee14251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14251[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee14251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee14251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee14251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee14251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee14251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee14251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee14251[] = {
+ {&(_ZTV7ee14251[4]), 4,15},
+ {&(_ZTV7ee14251[9]), 9,15},
+ {&(_ZTV7ee14251[14]), 14,15},
+ {&(_tg__ZTV6dd4251__7ee14251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee14251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee14251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee14251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee14251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee14251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14251[];
+extern VTBL_ENTRY _ZTV7ee14251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14251[];
+static VTBL_ENTRY alt_thunk_names592[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14251 = { "ee14251", // class name
+ bases_ee14251, 4,
+ &(vtc_ee14251[0]), // expected_vtbl_contents
+ &(vtt_ee14251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names592,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24251 : dd4251 {
+ int e;
+ virtual void foo(); // _ZN7ee242513fooEv
+ ~ee24251(); // tgen
+ ee24251(); // tgen
+};
+//SIG(1 ee24251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24251 ::foo(){vfunc_called(this, "_ZN7ee242513fooEv");}
+ee24251 ::~ee24251(){ note_dtor("ee24251", this);} // tgen
+ee24251 ::ee24251(){ note_ctor("ee24251", this);} // tgen
+
+static void Test_ee24251()
+{
+ extern Class_Descriptor cd_ee24251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24251, buf);
+ ee24251 *dp, &lv = *(dp=new (buf) ee24251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(24,20), "ee24251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), 0, "ee24251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), 0, "ee24251");
+ check_base_class_offset(lv, (dd4251*), 0, "ee24251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24251.e");
+ test_class_info(&lv, &cd_ee24251);
+ dp->~ee24251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24251(Test_ee24251, "ee24251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24251C1Ev();
+extern void _ZN7ee24251D1Ev();
+Name_Map name_map_ee24251[] = {
+ NSPAIR(_ZN7ee24251C1Ev),
+ NSPAIR(_ZN7ee24251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee24251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN7ee242513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee242513fooEv,_ZTv0_n12_N7ee242513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee242513fooEv,_ZThn20_N7ee242513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN7ee242513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee242513fooEv,_ZTv0_n12_N7ee242513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee24251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee24251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee24251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee24251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee24251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee24251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee24251[] = {
+ {&(_ZTV7ee24251[3]), 3,9},
+ {&(_tg__ZTV6dd4251__7ee24251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee24251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee24251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee24251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee24251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee24251[3]), 3,4},
+ {&(_ZTV7ee24251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24251[];
+extern VTBL_ENTRY _ZTV7ee24251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24251[];
+static VTBL_ENTRY alt_thunk_names593[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee242513fooEv,_ZTv0_n12_N7ee242513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee242513fooEv,_ZThn20_N7ee242513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24251 = { "ee24251", // class name
+ bases_ee24251, 4,
+ &(vtc_ee24251[0]), // expected_vtbl_contents
+ &(vtt_ee24251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names593,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34251 : virtual dd4251 {
+ int e;
+ virtual void foo(); // _ZN7ee342513fooEv
+ ~ee34251(); // tgen
+ ee34251(); // tgen
+};
+//SIG(1 ee34251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34251 ::foo(){vfunc_called(this, "_ZN7ee342513fooEv");}
+ee34251 ::~ee34251(){ note_dtor("ee34251", this);} // tgen
+ee34251 ::ee34251(){ note_ctor("ee34251", this);} // tgen
+
+static void Test_ee34251()
+{
+ extern Class_Descriptor cd_ee34251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34251, buf);
+ ee34251 *dp, &lv = *(dp=new (buf) ee34251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(40,24), "ee34251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), ABISELECT(16,8), "ee34251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), ABISELECT(16,8), "ee34251");
+ check_base_class_offset(lv, (dd4251*), ABISELECT(16,8), "ee34251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34251.e");
+ test_class_info(&lv, &cd_ee34251);
+ dp->~ee34251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34251(Test_ee34251, "ee34251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34251C1Ev();
+extern void _ZN7ee34251D1Ev();
+Name_Map name_map_ee34251[] = {
+ NSPAIR(_ZN7ee34251C1Ev),
+ NSPAIR(_ZN7ee34251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee34251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34251[];
+extern void _ZN7ee342513fooEv();
+extern void _ZN6dd42513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee342513fooEv,_ZTv0_n20_N7ee342513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342513fooEv,_ZThn8_N7ee342513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee342513fooEv,_ZTv0_n12_N7ee342513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee342513fooEv,_ZThn24_N7ee342513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34251[0]),
+ (VTBL_ENTRY)&_ZN7ee342513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee342513fooEv,_ZTv0_n20_N7ee342513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342513fooEv,_ZTv0_n12_N7ee342513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee34251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee34251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee34251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee34251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee34251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee34251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee34251[] = {
+ {&(_ZTV7ee34251[4]), 4,16},
+ {&(_ZTV7ee34251[10]), 10,16},
+ {&(_ZTV7ee34251[15]), 15,16},
+ {&(_tg__ZTV6dd4251__7ee34251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee34251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee34251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee34251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee34251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee34251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34251[];
+extern VTBL_ENTRY _ZTV7ee34251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34251[];
+static VTBL_ENTRY alt_thunk_names594[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342513fooEv,_ZTv0_n12_N7ee342513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee342513fooEv,_ZThn24_N7ee342513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee342513fooEv,_ZTv0_n20_N7ee342513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342513fooEv,_ZThn8_N7ee342513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34251 = { "ee34251", // class name
+ bases_ee34251, 4,
+ &(vtc_ee34251[0]), // expected_vtbl_contents
+ &(vtt_ee34251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names594,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44251 : dd4251 {
+ int e;
+ virtual void bar(); // _ZN7ee442513barEv
+ ~ee44251(); // tgen
+ ee44251(); // tgen
+};
+//SIG(1 ee44251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44251 ::bar(){vfunc_called(this, "_ZN7ee442513barEv");}
+ee44251 ::~ee44251(){ note_dtor("ee44251", this);} // tgen
+ee44251 ::ee44251(){ note_ctor("ee44251", this);} // tgen
+
+static void Test_ee44251()
+{
+ extern Class_Descriptor cd_ee44251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44251, buf);
+ ee44251 *dp, &lv = *(dp=new (buf) ee44251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(24,20), "ee44251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), 0, "ee44251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), 0, "ee44251");
+ check_base_class_offset(lv, (dd4251*), 0, "ee44251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44251.e");
+ test_class_info(&lv, &cd_ee44251);
+ dp->~ee44251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44251(Test_ee44251, "ee44251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44251C1Ev();
+extern void _ZN7ee44251D1Ev();
+Name_Map name_map_ee44251[] = {
+ NSPAIR(_ZN7ee44251C1Ev),
+ NSPAIR(_ZN7ee44251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee44251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44251[];
+extern void _ZN7ee442513barEv();
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44251[0]),
+ (VTBL_ENTRY)&_ZN7ee442513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee44251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee44251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee44251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee44251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee44251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee44251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee44251[] = {
+ {&(_ZTV7ee44251[3]), 3,9},
+ {&(_tg__ZTV6dd4251__7ee44251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee44251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee44251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee44251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee44251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee44251[3]), 3,4},
+ {&(_ZTV7ee44251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44251[];
+extern VTBL_ENTRY _ZTV7ee44251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44251[];
+static VTBL_ENTRY alt_thunk_names595[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44251 = { "ee44251", // class name
+ bases_ee44251, 4,
+ &(vtc_ee44251[0]), // expected_vtbl_contents
+ &(vtt_ee44251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names595,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54251 : virtual dd4251 {
+ int e;
+ virtual void bar(); // _ZN7ee542513barEv
+ ~ee54251(); // tgen
+ ee54251(); // tgen
+};
+//SIG(1 ee54251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54251 ::bar(){vfunc_called(this, "_ZN7ee542513barEv");}
+ee54251 ::~ee54251(){ note_dtor("ee54251", this);} // tgen
+ee54251 ::ee54251(){ note_ctor("ee54251", this);} // tgen
+
+static void Test_ee54251()
+{
+ extern Class_Descriptor cd_ee54251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54251, buf);
+ ee54251 *dp, &lv = *(dp=new (buf) ee54251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(40,24), "ee54251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), ABISELECT(16,8), "ee54251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), ABISELECT(16,8), "ee54251");
+ check_base_class_offset(lv, (dd4251*), ABISELECT(16,8), "ee54251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54251.e");
+ test_class_info(&lv, &cd_ee54251);
+ dp->~ee54251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54251(Test_ee54251, "ee54251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54251C1Ev();
+extern void _ZN7ee54251D1Ev();
+Name_Map name_map_ee54251[] = {
+ NSPAIR(_ZN7ee54251C1Ev),
+ NSPAIR(_ZN7ee54251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee54251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54251[];
+extern void _ZN7ee542513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542513barEv,_ZTv0_n16_N7ee542513barEv)();
+extern void ABISELECT(_ZThn16_N7ee542513barEv,_ZThn8_N7ee542513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54251[0]),
+ (VTBL_ENTRY)&_ZN7ee542513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542513barEv,_ZTv0_n16_N7ee542513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee54251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee54251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee54251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee54251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee54251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee54251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee54251[] = {
+ {&(_ZTV7ee54251[4]), 4,16},
+ {&(_ZTV7ee54251[10]), 10,16},
+ {&(_ZTV7ee54251[15]), 15,16},
+ {&(_tg__ZTV6dd4251__7ee54251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee54251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee54251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee54251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee54251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee54251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54251[];
+extern VTBL_ENTRY _ZTV7ee54251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54251[];
+static VTBL_ENTRY alt_thunk_names596[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542513barEv,_ZTv0_n16_N7ee542513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542513barEv,_ZThn8_N7ee542513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54251 = { "ee54251", // class name
+ bases_ee54251, 4,
+ &(vtc_ee54251[0]), // expected_vtbl_contents
+ &(vtt_ee54251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names596,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64251 : dd4251 {
+ int e;
+ virtual void foo(); // _ZN7ee642513fooEv
+ virtual void bar(); // _ZN7ee642513barEv
+ ~ee64251(); // tgen
+ ee64251(); // tgen
+};
+//SIG(1 ee64251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64251 ::foo(){vfunc_called(this, "_ZN7ee642513fooEv");}
+void ee64251 ::bar(){vfunc_called(this, "_ZN7ee642513barEv");}
+ee64251 ::~ee64251(){ note_dtor("ee64251", this);} // tgen
+ee64251 ::ee64251(){ note_ctor("ee64251", this);} // tgen
+
+static void Test_ee64251()
+{
+ extern Class_Descriptor cd_ee64251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64251, buf);
+ ee64251 *dp, &lv = *(dp=new (buf) ee64251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(24,20), "ee64251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), 0, "ee64251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), 0, "ee64251");
+ check_base_class_offset(lv, (dd4251*), 0, "ee64251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64251.e");
+ test_class_info(&lv, &cd_ee64251);
+ dp->~ee64251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64251(Test_ee64251, "ee64251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64251C1Ev();
+extern void _ZN7ee64251D1Ev();
+Name_Map name_map_ee64251[] = {
+ NSPAIR(_ZN7ee64251C1Ev),
+ NSPAIR(_ZN7ee64251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee64251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64251[];
+extern void _ZN7ee642513barEv();
+extern void _ZN7ee642513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee642513fooEv,_ZTv0_n12_N7ee642513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee642513fooEv,_ZThn20_N7ee642513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64251[0]),
+ (VTBL_ENTRY)&_ZN7ee642513barEv,
+ (VTBL_ENTRY)&_ZN7ee642513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee642513fooEv,_ZTv0_n12_N7ee642513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee64251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee64251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee64251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee64251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee64251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee64251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee64251[] = {
+ {&(_ZTV7ee64251[3]), 3,9},
+ {&(_tg__ZTV6dd4251__7ee64251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee64251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee64251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee64251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee64251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee64251[3]), 3,4},
+ {&(_ZTV7ee64251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64251[];
+extern VTBL_ENTRY _ZTV7ee64251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64251[];
+static VTBL_ENTRY alt_thunk_names597[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee642513fooEv,_ZTv0_n12_N7ee642513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee642513fooEv,_ZThn20_N7ee642513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64251 = { "ee64251", // class name
+ bases_ee64251, 4,
+ &(vtc_ee64251[0]), // expected_vtbl_contents
+ &(vtt_ee64251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names597,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74251 : virtual dd4251 {
+ int e;
+ virtual void foo(); // _ZN7ee742513fooEv
+ virtual void bar(); // _ZN7ee742513barEv
+ ~ee74251(); // tgen
+ ee74251(); // tgen
+};
+//SIG(1 ee74251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74251 ::foo(){vfunc_called(this, "_ZN7ee742513fooEv");}
+void ee74251 ::bar(){vfunc_called(this, "_ZN7ee742513barEv");}
+ee74251 ::~ee74251(){ note_dtor("ee74251", this);} // tgen
+ee74251 ::ee74251(){ note_ctor("ee74251", this);} // tgen
+
+static void Test_ee74251()
+{
+ extern Class_Descriptor cd_ee74251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74251, buf);
+ ee74251 *dp, &lv = *(dp=new (buf) ee74251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd4251*), ABISELECT(40,24), "ee74251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd4251*), ABISELECT(16,8), "ee74251");
+ check_base_class_offset(lv, (cc251*)(dd4251*), ABISELECT(16,8), "ee74251");
+ check_base_class_offset(lv, (dd4251*), ABISELECT(16,8), "ee74251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74251.e");
+ test_class_info(&lv, &cd_ee74251);
+ dp->~ee74251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74251(Test_ee74251, "ee74251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74251C1Ev();
+extern void _ZN7ee74251D1Ev();
+Name_Map name_map_ee74251[] = {
+ NSPAIR(_ZN7ee74251C1Ev),
+ NSPAIR(_ZN7ee74251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd4251;
+extern VTBL_ENTRY _ZTI6dd4251[];
+extern VTBL_ENTRY _ZTV6dd4251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4251[];
+static Base_Class bases_ee74251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74251[];
+extern void _ZN7ee742513fooEv();
+extern void _ZN7ee742513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee742513barEv,_ZTv0_n16_N7ee742513barEv)();
+extern void ABISELECT(_ZThn16_N7ee742513barEv,_ZThn8_N7ee742513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee742513fooEv,_ZTv0_n20_N7ee742513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742513fooEv,_ZThn8_N7ee742513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee742513fooEv,_ZTv0_n12_N7ee742513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee742513fooEv,_ZThn24_N7ee742513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74251[0]),
+ (VTBL_ENTRY)&_ZN7ee742513fooEv,
+ (VTBL_ENTRY)&_ZN7ee742513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742513barEv,_ZTv0_n16_N7ee742513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee742513fooEv,_ZTv0_n20_N7ee742513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742513fooEv,_ZTv0_n12_N7ee742513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74251[];
+extern void _ZN6dd42513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4251__7ee74251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&_ZN6dd42513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd4251__7ee74251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd4251__7ee74251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd4251__7ee74251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd4251__7ee74251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4251__7ee74251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee74251[] = {
+ {&(_ZTV7ee74251[4]), 4,17},
+ {&(_ZTV7ee74251[11]), 11,17},
+ {&(_ZTV7ee74251[16]), 16,17},
+ {&(_tg__ZTV6dd4251__7ee74251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd4251__7ee74251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd4251__7ee74251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd4251__7ee74251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd4251__7ee74251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4251__7ee74251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74251[];
+extern VTBL_ENTRY _ZTV7ee74251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74251[];
+static VTBL_ENTRY alt_thunk_names598[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742513fooEv,_ZTv0_n12_N7ee742513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee742513fooEv,_ZThn24_N7ee742513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee742513fooEv,_ZTv0_n20_N7ee742513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742513fooEv,_ZThn8_N7ee742513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742513barEv,_ZTv0_n16_N7ee742513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742513barEv,_ZThn8_N7ee742513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74251 = { "ee74251", // class name
+ bases_ee74251, 4,
+ &(vtc_ee74251[0]), // expected_vtbl_contents
+ &(vtt_ee74251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names598,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5251 : virtual cc251 {
+ int d;
+ virtual void bar(); // _ZN6dd52513barEv
+ ~dd5251(); // tgen
+ dd5251(); // tgen
+};
+//SIG(-1 dd5251) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5251 ::bar(){vfunc_called(this, "_ZN6dd52513barEv");}
+dd5251 ::~dd5251(){ note_dtor("dd5251", this);} // tgen
+dd5251 ::dd5251(){ note_ctor("dd5251", this);} // tgen
+
+static void Test_dd5251()
+{
+ extern Class_Descriptor cd_dd5251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5251, buf);
+ dd5251 *dp, &lv = *(dp=new (buf) dd5251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,20), "dd5251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,8), "dd5251");
+ check_base_class_offset(lv, (cc251*), ABISELECT(16,8), "dd5251");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5251.d");
+ test_class_info(&lv, &cd_dd5251);
+ dp->~dd5251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5251(Test_dd5251, "dd5251", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5251C1Ev();
+extern void _ZN6dd5251D1Ev();
+Name_Map name_map_dd5251[] = {
+ NSPAIR(_ZN6dd5251C1Ev),
+ NSPAIR(_ZN6dd5251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd5251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd5251[];
+extern void _ZN6dd52513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd5251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd5251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd5251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd5251[] = {
+ {&(_ZTV6dd5251[4]), 4,16},
+ {&(_ZTV6dd5251[10]), 10,16},
+ {&(_ZTV6dd5251[15]), 15,16},
+ {&(_tg__ZTV5cc251__6dd5251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd5251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd5251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd5251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static VTBL_ENTRY alt_thunk_names599[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5251 = { "dd5251", // class name
+ bases_dd5251, 3,
+ &(vtc_dd5251[0]), // expected_vtbl_contents
+ &(vtt_dd5251[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5251),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names599,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05251 : dd5251 {
+ int e;
+ ~ee05251(); // tgen
+ ee05251(); // tgen
+};
+//SIG(1 ee05251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05251 ::~ee05251(){ note_dtor("ee05251", this);} // tgen
+ee05251 ::ee05251(){ note_ctor("ee05251", this);} // tgen
+
+static void Test_ee05251()
+{
+ extern Class_Descriptor cd_ee05251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05251, buf);
+ ee05251 *dp, &lv = *(dp=new (buf) ee05251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee05251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee05251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(16,12), "ee05251");
+ check_base_class_offset(lv, (dd5251*), 0, "ee05251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05251.e");
+ test_class_info(&lv, &cd_ee05251);
+ dp->~ee05251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05251(Test_ee05251, "ee05251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05251C1Ev();
+extern void _ZN7ee05251D1Ev();
+Name_Map name_map_ee05251[] = {
+ NSPAIR(_ZN7ee05251C1Ev),
+ NSPAIR(_ZN7ee05251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee05251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05251[];
+extern void _ZN6dd52513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee05251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee05251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee05251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee05251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee05251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee05251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee05251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee05251[] = {
+ {&(_ZTV7ee05251[4]), 4,16},
+ {&(_tg__ZTV6dd5251__7ee05251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee05251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee05251[3]), 3,4},
+ {&(_ZTV7ee05251[10]), 10,16},
+ {&(_ZTV7ee05251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee05251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee05251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee05251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee05251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05251[];
+extern VTBL_ENTRY _ZTV7ee05251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05251[];
+static VTBL_ENTRY alt_thunk_names600[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05251 = { "ee05251", // class name
+ bases_ee05251, 4,
+ &(vtc_ee05251[0]), // expected_vtbl_contents
+ &(vtt_ee05251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names600,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15251 : virtual dd5251 {
+ int e;
+ ~ee15251(); // tgen
+ ee15251(); // tgen
+};
+//SIG(1 ee15251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15251 ::~ee15251(){ note_dtor("ee15251", this);} // tgen
+ee15251 ::ee15251(){ note_ctor("ee15251", this);} // tgen
+
+static void Test_ee15251()
+{
+ extern Class_Descriptor cd_ee15251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15251, buf);
+ ee15251 *dp, &lv = *(dp=new (buf) ee15251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee15251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee15251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(32,16), "ee15251");
+ check_base_class_offset(lv, (dd5251*), ABISELECT(16,8), "ee15251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15251.e");
+ test_class_info(&lv, &cd_ee15251);
+ dp->~ee15251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15251(Test_ee15251, "ee15251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15251C1Ev();
+extern void _ZN7ee15251D1Ev();
+Name_Map name_map_ee15251[] = {
+ NSPAIR(_ZN7ee15251C1Ev),
+ NSPAIR(_ZN7ee15251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee15251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15251[];
+extern void _ZN6dd52513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15251[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee15251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee15251[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee15251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee15251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee15251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee15251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee15251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee15251[] = {
+ {&(_ZTV7ee15251[5]), 5,22},
+ {&(_ZTV7ee15251[10]), 10,22},
+ {&(_ZTV7ee15251[16]), 16,22},
+ {&(_ZTV7ee15251[21]), 21,22},
+ {&(_tg__ZTV6dd5251__7ee15251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee15251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee15251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee15251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee15251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee15251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee15251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15251[];
+extern VTBL_ENTRY _ZTV7ee15251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15251[];
+static VTBL_ENTRY alt_thunk_names601[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15251 = { "ee15251", // class name
+ bases_ee15251, 4,
+ &(vtc_ee15251[0]), // expected_vtbl_contents
+ &(vtt_ee15251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15251),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names601,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25251 : dd5251 {
+ int e;
+ virtual void foo(); // _ZN7ee252513fooEv
+ ~ee25251(); // tgen
+ ee25251(); // tgen
+};
+//SIG(1 ee25251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25251 ::foo(){vfunc_called(this, "_ZN7ee252513fooEv");}
+ee25251 ::~ee25251(){ note_dtor("ee25251", this);} // tgen
+ee25251 ::ee25251(){ note_ctor("ee25251", this);} // tgen
+
+static void Test_ee25251()
+{
+ extern Class_Descriptor cd_ee25251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25251, buf);
+ ee25251 *dp, &lv = *(dp=new (buf) ee25251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee25251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee25251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(16,12), "ee25251");
+ check_base_class_offset(lv, (dd5251*), 0, "ee25251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25251.e");
+ test_class_info(&lv, &cd_ee25251);
+ dp->~ee25251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25251(Test_ee25251, "ee25251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25251C1Ev();
+extern void _ZN7ee25251D1Ev();
+Name_Map name_map_ee25251[] = {
+ NSPAIR(_ZN7ee25251C1Ev),
+ NSPAIR(_ZN7ee25251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee25251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25251[];
+extern void _ZN6dd52513barEv();
+extern void _ZN7ee252513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee252513fooEv,_ZTv0_n20_N7ee252513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252513fooEv,_ZThn12_N7ee252513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee252513fooEv,_ZTv0_n12_N7ee252513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee252513fooEv,_ZThn24_N7ee252513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+ (VTBL_ENTRY)&_ZN7ee252513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee252513fooEv,_ZTv0_n20_N7ee252513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252513fooEv,_ZTv0_n12_N7ee252513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee25251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee25251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee25251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee25251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee25251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee25251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee25251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee25251[] = {
+ {&(_ZTV7ee25251[4]), 4,17},
+ {&(_tg__ZTV6dd5251__7ee25251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee25251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee25251[3]), 3,4},
+ {&(_ZTV7ee25251[11]), 11,17},
+ {&(_ZTV7ee25251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee25251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee25251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee25251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee25251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25251[];
+extern VTBL_ENTRY _ZTV7ee25251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25251[];
+static VTBL_ENTRY alt_thunk_names602[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252513fooEv,_ZTv0_n12_N7ee252513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee252513fooEv,_ZThn24_N7ee252513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee252513fooEv,_ZTv0_n20_N7ee252513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252513fooEv,_ZThn12_N7ee252513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25251 = { "ee25251", // class name
+ bases_ee25251, 4,
+ &(vtc_ee25251[0]), // expected_vtbl_contents
+ &(vtt_ee25251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names602,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35251 : virtual dd5251 {
+ int e;
+ virtual void foo(); // _ZN7ee352513fooEv
+ ~ee35251(); // tgen
+ ee35251(); // tgen
+};
+//SIG(1 ee35251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35251 ::foo(){vfunc_called(this, "_ZN7ee352513fooEv");}
+ee35251 ::~ee35251(){ note_dtor("ee35251", this);} // tgen
+ee35251 ::ee35251(){ note_ctor("ee35251", this);} // tgen
+
+static void Test_ee35251()
+{
+ extern Class_Descriptor cd_ee35251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35251, buf);
+ ee35251 *dp, &lv = *(dp=new (buf) ee35251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee35251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee35251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(32,16), "ee35251");
+ check_base_class_offset(lv, (dd5251*), ABISELECT(16,8), "ee35251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35251.e");
+ test_class_info(&lv, &cd_ee35251);
+ dp->~ee35251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35251(Test_ee35251, "ee35251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35251C1Ev();
+extern void _ZN7ee35251D1Ev();
+Name_Map name_map_ee35251[] = {
+ NSPAIR(_ZN7ee35251C1Ev),
+ NSPAIR(_ZN7ee35251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee35251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35251[];
+extern void _ZN7ee352513fooEv();
+extern void _ZN6dd52513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee352513fooEv,_ZTv0_n20_N7ee352513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352513fooEv,_ZThn16_N7ee352513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee352513fooEv,_ZTv0_n12_N7ee352513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee352513fooEv,_ZThn28_N7ee352513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35251[0]),
+ (VTBL_ENTRY)&_ZN7ee352513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee352513fooEv,_ZTv0_n20_N7ee352513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352513fooEv,_ZTv0_n12_N7ee352513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee35251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee35251[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee35251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee35251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee35251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee35251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee35251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee35251[] = {
+ {&(_ZTV7ee35251[5]), 5,23},
+ {&(_ZTV7ee35251[11]), 11,23},
+ {&(_ZTV7ee35251[17]), 17,23},
+ {&(_ZTV7ee35251[22]), 22,23},
+ {&(_tg__ZTV6dd5251__7ee35251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee35251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee35251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee35251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee35251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee35251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee35251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35251[];
+extern VTBL_ENTRY _ZTV7ee35251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35251[];
+static VTBL_ENTRY alt_thunk_names603[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352513fooEv,_ZTv0_n12_N7ee352513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee352513fooEv,_ZThn28_N7ee352513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee352513fooEv,_ZTv0_n20_N7ee352513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352513fooEv,_ZThn16_N7ee352513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35251 = { "ee35251", // class name
+ bases_ee35251, 4,
+ &(vtc_ee35251[0]), // expected_vtbl_contents
+ &(vtt_ee35251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35251),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names603,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45251 : dd5251 {
+ int e;
+ virtual void bar(); // _ZN7ee452513barEv
+ ~ee45251(); // tgen
+ ee45251(); // tgen
+};
+//SIG(1 ee45251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45251 ::bar(){vfunc_called(this, "_ZN7ee452513barEv");}
+ee45251 ::~ee45251(){ note_dtor("ee45251", this);} // tgen
+ee45251 ::ee45251(){ note_ctor("ee45251", this);} // tgen
+
+static void Test_ee45251()
+{
+ extern Class_Descriptor cd_ee45251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45251, buf);
+ ee45251 *dp, &lv = *(dp=new (buf) ee45251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee45251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee45251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(16,12), "ee45251");
+ check_base_class_offset(lv, (dd5251*), 0, "ee45251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45251.e");
+ test_class_info(&lv, &cd_ee45251);
+ dp->~ee45251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45251(Test_ee45251, "ee45251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45251C1Ev();
+extern void _ZN7ee45251D1Ev();
+Name_Map name_map_ee45251[] = {
+ NSPAIR(_ZN7ee45251C1Ev),
+ NSPAIR(_ZN7ee45251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee45251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45251[];
+extern void _ZN7ee452513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452513barEv,_ZTv0_n16_N7ee452513barEv)();
+extern void ABISELECT(_ZThn16_N7ee452513barEv,_ZThn12_N7ee452513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45251[0]),
+ (VTBL_ENTRY)&_ZN7ee452513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452513barEv,_ZTv0_n16_N7ee452513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee45251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee45251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee45251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee45251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee45251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee45251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee45251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee45251[] = {
+ {&(_ZTV7ee45251[4]), 4,16},
+ {&(_tg__ZTV6dd5251__7ee45251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee45251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee45251[3]), 3,4},
+ {&(_ZTV7ee45251[10]), 10,16},
+ {&(_ZTV7ee45251[15]), 15,16},
+ {&(_tg__ZTV5cc251__7ee45251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee45251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee45251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee45251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45251[];
+extern VTBL_ENTRY _ZTV7ee45251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45251[];
+static VTBL_ENTRY alt_thunk_names604[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452513barEv,_ZTv0_n16_N7ee452513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452513barEv,_ZThn12_N7ee452513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45251 = { "ee45251", // class name
+ bases_ee45251, 4,
+ &(vtc_ee45251[0]), // expected_vtbl_contents
+ &(vtt_ee45251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names604,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55251 : virtual dd5251 {
+ int e;
+ virtual void bar(); // _ZN7ee552513barEv
+ ~ee55251(); // tgen
+ ee55251(); // tgen
+};
+//SIG(1 ee55251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55251 ::bar(){vfunc_called(this, "_ZN7ee552513barEv");}
+ee55251 ::~ee55251(){ note_dtor("ee55251", this);} // tgen
+ee55251 ::ee55251(){ note_ctor("ee55251", this);} // tgen
+
+static void Test_ee55251()
+{
+ extern Class_Descriptor cd_ee55251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55251, buf);
+ ee55251 *dp, &lv = *(dp=new (buf) ee55251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee55251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee55251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(32,16), "ee55251");
+ check_base_class_offset(lv, (dd5251*), ABISELECT(16,8), "ee55251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55251.e");
+ test_class_info(&lv, &cd_ee55251);
+ dp->~ee55251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55251(Test_ee55251, "ee55251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55251C1Ev();
+extern void _ZN7ee55251D1Ev();
+Name_Map name_map_ee55251[] = {
+ NSPAIR(_ZN7ee55251C1Ev),
+ NSPAIR(_ZN7ee55251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee55251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55251[];
+extern void _ZN7ee552513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee552513barEv,_ZTv0_n20_N7ee552513barEv)();
+extern void ABISELECT(_ZThn16_N7ee552513barEv,_ZThn8_N7ee552513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee552513barEv,_ZTv0_n16_N7ee552513barEv)();
+extern void ABISELECT(_ZThn32_N7ee552513barEv,_ZThn16_N7ee552513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55251[0]),
+ (VTBL_ENTRY)&_ZN7ee552513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee552513barEv,_ZTv0_n20_N7ee552513barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552513barEv,_ZTv0_n16_N7ee552513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee55251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee55251[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee55251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee55251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee55251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee55251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee55251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee55251[] = {
+ {&(_ZTV7ee55251[5]), 5,23},
+ {&(_ZTV7ee55251[11]), 11,23},
+ {&(_ZTV7ee55251[17]), 17,23},
+ {&(_ZTV7ee55251[22]), 22,23},
+ {&(_tg__ZTV6dd5251__7ee55251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee55251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee55251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee55251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee55251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee55251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee55251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55251[];
+extern VTBL_ENTRY _ZTV7ee55251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55251[];
+static VTBL_ENTRY alt_thunk_names605[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552513barEv,_ZTv0_n16_N7ee552513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552513barEv,_ZThn16_N7ee552513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee552513barEv,_ZTv0_n20_N7ee552513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552513barEv,_ZThn8_N7ee552513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55251 = { "ee55251", // class name
+ bases_ee55251, 4,
+ &(vtc_ee55251[0]), // expected_vtbl_contents
+ &(vtt_ee55251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55251),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names605,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65251 : dd5251 {
+ int e;
+ virtual void foo(); // _ZN7ee652513fooEv
+ virtual void bar(); // _ZN7ee652513barEv
+ ~ee65251(); // tgen
+ ee65251(); // tgen
+};
+//SIG(1 ee65251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65251 ::foo(){vfunc_called(this, "_ZN7ee652513fooEv");}
+void ee65251 ::bar(){vfunc_called(this, "_ZN7ee652513barEv");}
+ee65251 ::~ee65251(){ note_dtor("ee65251", this);} // tgen
+ee65251 ::ee65251(){ note_ctor("ee65251", this);} // tgen
+
+static void Test_ee65251()
+{
+ extern Class_Descriptor cd_ee65251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65251, buf);
+ ee65251 *dp, &lv = *(dp=new (buf) ee65251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee65251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee65251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(16,12), "ee65251");
+ check_base_class_offset(lv, (dd5251*), 0, "ee65251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65251.e");
+ test_class_info(&lv, &cd_ee65251);
+ dp->~ee65251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65251(Test_ee65251, "ee65251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65251C1Ev();
+extern void _ZN7ee65251D1Ev();
+Name_Map name_map_ee65251[] = {
+ NSPAIR(_ZN7ee65251C1Ev),
+ NSPAIR(_ZN7ee65251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee65251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65251[];
+extern void _ZN7ee652513barEv();
+extern void _ZN7ee652513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee652513barEv,_ZTv0_n16_N7ee652513barEv)();
+extern void ABISELECT(_ZThn16_N7ee652513barEv,_ZThn12_N7ee652513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee652513fooEv,_ZTv0_n20_N7ee652513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652513fooEv,_ZThn12_N7ee652513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee652513fooEv,_ZTv0_n12_N7ee652513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee652513fooEv,_ZThn24_N7ee652513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65251[0]),
+ (VTBL_ENTRY)&_ZN7ee652513barEv,
+ (VTBL_ENTRY)&_ZN7ee652513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652513barEv,_ZTv0_n16_N7ee652513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee652513fooEv,_ZTv0_n20_N7ee652513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652513fooEv,_ZTv0_n12_N7ee652513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee65251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee65251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee65251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee65251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee65251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee65251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee65251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee65251[] = {
+ {&(_ZTV7ee65251[4]), 4,17},
+ {&(_tg__ZTV6dd5251__7ee65251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee65251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee65251[3]), 3,4},
+ {&(_ZTV7ee65251[11]), 11,17},
+ {&(_ZTV7ee65251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee65251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee65251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee65251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee65251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65251[];
+extern VTBL_ENTRY _ZTV7ee65251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65251[];
+static VTBL_ENTRY alt_thunk_names606[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn12_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652513fooEv,_ZTv0_n12_N7ee652513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee652513fooEv,_ZThn24_N7ee652513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee652513fooEv,_ZTv0_n20_N7ee652513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652513fooEv,_ZThn12_N7ee652513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652513barEv,_ZTv0_n16_N7ee652513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652513barEv,_ZThn12_N7ee652513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65251 = { "ee65251", // class name
+ bases_ee65251, 4,
+ &(vtc_ee65251[0]), // expected_vtbl_contents
+ &(vtt_ee65251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names606,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75251 : virtual dd5251 {
+ int e;
+ virtual void foo(); // _ZN7ee752513fooEv
+ virtual void bar(); // _ZN7ee752513barEv
+ ~ee75251(); // tgen
+ ee75251(); // tgen
+};
+//SIG(1 ee75251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75251 ::foo(){vfunc_called(this, "_ZN7ee752513fooEv");}
+void ee75251 ::bar(){vfunc_called(this, "_ZN7ee752513barEv");}
+ee75251 ::~ee75251(){ note_dtor("ee75251", this);} // tgen
+ee75251 ::ee75251(){ note_ctor("ee75251", this);} // tgen
+
+static void Test_ee75251()
+{
+ extern Class_Descriptor cd_ee75251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75251, buf);
+ ee75251 *dp, &lv = *(dp=new (buf) ee75251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee75251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee75251");
+ check_base_class_offset(lv, (cc251*)(dd5251*), ABISELECT(32,16), "ee75251");
+ check_base_class_offset(lv, (dd5251*), ABISELECT(16,8), "ee75251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75251.e");
+ test_class_info(&lv, &cd_ee75251);
+ dp->~ee75251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75251(Test_ee75251, "ee75251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75251C1Ev();
+extern void _ZN7ee75251D1Ev();
+Name_Map name_map_ee75251[] = {
+ NSPAIR(_ZN7ee75251C1Ev),
+ NSPAIR(_ZN7ee75251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd5251;
+extern VTBL_ENTRY _ZTI6dd5251[];
+extern VTBL_ENTRY _ZTV6dd5251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5251[];
+static Base_Class bases_ee75251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5251, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75251[];
+extern void _ZN7ee752513fooEv();
+extern void _ZN7ee752513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee752513barEv,_ZTv0_n20_N7ee752513barEv)();
+extern void ABISELECT(_ZThn16_N7ee752513barEv,_ZThn8_N7ee752513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752513barEv,_ZTv0_n16_N7ee752513barEv)();
+extern void ABISELECT(_ZThn32_N7ee752513barEv,_ZThn16_N7ee752513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee752513fooEv,_ZTv0_n20_N7ee752513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752513fooEv,_ZThn16_N7ee752513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752513fooEv,_ZTv0_n12_N7ee752513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee752513fooEv,_ZThn28_N7ee752513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75251[0]),
+ (VTBL_ENTRY)&_ZN7ee752513fooEv,
+ (VTBL_ENTRY)&_ZN7ee752513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752513barEv,_ZTv0_n20_N7ee752513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752513barEv,_ZTv0_n16_N7ee752513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752513fooEv,_ZTv0_n20_N7ee752513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752513fooEv,_ZTv0_n12_N7ee752513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75251[];
+extern void _ZN6dd52513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5251__7ee75251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&_ZN6dd52513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv)();
+extern void ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv)() __attribute__((weak));
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd5251__7ee75251[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv),
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5251__7ee75251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee75251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee75251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee75251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee75251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee75251[] = {
+ {&(_ZTV7ee75251[5]), 5,24},
+ {&(_ZTV7ee75251[12]), 12,24},
+ {&(_ZTV7ee75251[18]), 18,24},
+ {&(_ZTV7ee75251[23]), 23,24},
+ {&(_tg__ZTV6dd5251__7ee75251[4]), 4,5},
+ {&(_tg__ZTV5cc251__6dd5251__7ee75251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5251__7ee75251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee75251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee75251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee75251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee75251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75251[];
+extern VTBL_ENTRY _ZTV7ee75251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75251[];
+static VTBL_ENTRY alt_thunk_names607[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52513barEv,_ZTv0_n16_N6dd52513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52513barEv,_ZThn8_N6dd52513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752513fooEv,_ZTv0_n12_N7ee752513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee752513fooEv,_ZThn28_N7ee752513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752513fooEv,_ZTv0_n20_N7ee752513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752513fooEv,_ZThn16_N7ee752513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752513barEv,_ZTv0_n16_N7ee752513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752513barEv,_ZThn16_N7ee752513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752513barEv,_ZTv0_n20_N7ee752513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752513barEv,_ZThn8_N7ee752513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75251 = { "ee75251", // class name
+ bases_ee75251, 4,
+ &(vtc_ee75251[0]), // expected_vtbl_contents
+ &(vtt_ee75251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75251),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names607,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6251 : cc251 {
+ int d;
+ virtual void bar(); // _ZN6dd62513barEv
+ virtual void foo(); // _ZN6dd62513fooEv
+ ~dd6251(); // tgen
+ dd6251(); // tgen
+};
+//SIG(-1 dd6251) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6251 ::bar(){vfunc_called(this, "_ZN6dd62513barEv");}
+void dd6251 ::foo(){vfunc_called(this, "_ZN6dd62513fooEv");}
+dd6251 ::~dd6251(){ note_dtor("dd6251", this);} // tgen
+dd6251 ::dd6251(){ note_ctor("dd6251", this);} // tgen
+
+static void Test_dd6251()
+{
+ extern Class_Descriptor cd_dd6251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6251, buf);
+ dd6251 *dp, &lv = *(dp=new (buf) dd6251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(24,16), "dd6251");
+ check_base_class_offset(lv, (bb51*)(cc251*), 0, "dd6251");
+ check_base_class_offset(lv, (cc251*), 0, "dd6251");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6251.d");
+ test_class_info(&lv, &cd_dd6251);
+ dp->~dd6251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6251(Test_dd6251, "dd6251", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6251C1Ev();
+extern void _ZN6dd6251D1Ev();
+Name_Map name_map_dd6251[] = {
+ NSPAIR(_ZN6dd6251C1Ev),
+ NSPAIR(_ZN6dd6251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd6251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd6251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd6251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd6251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd6251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd6251[] = {
+ {&(_ZTV6dd6251[3]), 3,9},
+ {&(_tg__ZTV5cc251__6dd6251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd6251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd6251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd6251[3]), 3,4},
+ {&(_ZTV6dd6251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static VTBL_ENTRY alt_thunk_names608[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6251 = { "dd6251", // class name
+ bases_dd6251, 3,
+ &(vtc_dd6251[0]), // expected_vtbl_contents
+ &(vtt_dd6251[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6251),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names608,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06251 : dd6251 {
+ int e;
+ ~ee06251(); // tgen
+ ee06251(); // tgen
+};
+//SIG(1 ee06251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06251 ::~ee06251(){ note_dtor("ee06251", this);} // tgen
+ee06251 ::ee06251(){ note_ctor("ee06251", this);} // tgen
+
+static void Test_ee06251()
+{
+ extern Class_Descriptor cd_ee06251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06251, buf);
+ ee06251 *dp, &lv = *(dp=new (buf) ee06251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(24,20), "ee06251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), 0, "ee06251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), 0, "ee06251");
+ check_base_class_offset(lv, (dd6251*), 0, "ee06251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06251.e");
+ test_class_info(&lv, &cd_ee06251);
+ dp->~ee06251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06251(Test_ee06251, "ee06251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06251C1Ev();
+extern void _ZN7ee06251D1Ev();
+Name_Map name_map_ee06251[] = {
+ NSPAIR(_ZN7ee06251C1Ev),
+ NSPAIR(_ZN7ee06251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee06251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee06251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee06251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee06251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee06251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee06251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee06251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee06251[] = {
+ {&(_ZTV7ee06251[3]), 3,9},
+ {&(_tg__ZTV6dd6251__7ee06251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee06251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee06251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee06251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee06251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee06251[3]), 3,4},
+ {&(_ZTV7ee06251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06251[];
+extern VTBL_ENTRY _ZTV7ee06251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06251[];
+static VTBL_ENTRY alt_thunk_names609[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06251 = { "ee06251", // class name
+ bases_ee06251, 4,
+ &(vtc_ee06251[0]), // expected_vtbl_contents
+ &(vtt_ee06251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names609,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16251 : virtual dd6251 {
+ int e;
+ ~ee16251(); // tgen
+ ee16251(); // tgen
+};
+//SIG(1 ee16251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16251 ::~ee16251(){ note_dtor("ee16251", this);} // tgen
+ee16251 ::ee16251(){ note_ctor("ee16251", this);} // tgen
+
+static void Test_ee16251()
+{
+ extern Class_Descriptor cd_ee16251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16251, buf);
+ ee16251 *dp, &lv = *(dp=new (buf) ee16251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(40,24), "ee16251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), ABISELECT(16,8), "ee16251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), ABISELECT(16,8), "ee16251");
+ check_base_class_offset(lv, (dd6251*), ABISELECT(16,8), "ee16251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16251.e");
+ test_class_info(&lv, &cd_ee16251);
+ dp->~ee16251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16251(Test_ee16251, "ee16251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16251C1Ev();
+extern void _ZN7ee16251D1Ev();
+Name_Map name_map_ee16251[] = {
+ NSPAIR(_ZN7ee16251C1Ev),
+ NSPAIR(_ZN7ee16251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee16251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16251[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee16251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee16251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee16251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee16251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee16251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee16251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee16251[] = {
+ {&(_ZTV7ee16251[4]), 4,15},
+ {&(_ZTV7ee16251[9]), 9,15},
+ {&(_ZTV7ee16251[14]), 14,15},
+ {&(_tg__ZTV6dd6251__7ee16251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee16251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee16251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee16251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee16251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee16251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16251[];
+extern VTBL_ENTRY _ZTV7ee16251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16251[];
+static VTBL_ENTRY alt_thunk_names610[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16251 = { "ee16251", // class name
+ bases_ee16251, 4,
+ &(vtc_ee16251[0]), // expected_vtbl_contents
+ &(vtt_ee16251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16251),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names610,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26251 : dd6251 {
+ int e;
+ virtual void foo(); // _ZN7ee262513fooEv
+ ~ee26251(); // tgen
+ ee26251(); // tgen
+};
+//SIG(1 ee26251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26251 ::foo(){vfunc_called(this, "_ZN7ee262513fooEv");}
+ee26251 ::~ee26251(){ note_dtor("ee26251", this);} // tgen
+ee26251 ::ee26251(){ note_ctor("ee26251", this);} // tgen
+
+static void Test_ee26251()
+{
+ extern Class_Descriptor cd_ee26251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26251, buf);
+ ee26251 *dp, &lv = *(dp=new (buf) ee26251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(24,20), "ee26251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), 0, "ee26251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), 0, "ee26251");
+ check_base_class_offset(lv, (dd6251*), 0, "ee26251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26251.e");
+ test_class_info(&lv, &cd_ee26251);
+ dp->~ee26251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26251(Test_ee26251, "ee26251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26251C1Ev();
+extern void _ZN7ee26251D1Ev();
+Name_Map name_map_ee26251[] = {
+ NSPAIR(_ZN7ee26251C1Ev),
+ NSPAIR(_ZN7ee26251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee26251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN7ee262513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee262513fooEv,_ZTv0_n12_N7ee262513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee262513fooEv,_ZThn20_N7ee262513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN7ee262513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee262513fooEv,_ZTv0_n12_N7ee262513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee26251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee26251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee26251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee26251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee26251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee26251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee26251[] = {
+ {&(_ZTV7ee26251[3]), 3,9},
+ {&(_tg__ZTV6dd6251__7ee26251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee26251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee26251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee26251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee26251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee26251[3]), 3,4},
+ {&(_ZTV7ee26251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26251[];
+extern VTBL_ENTRY _ZTV7ee26251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26251[];
+static VTBL_ENTRY alt_thunk_names611[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee262513fooEv,_ZTv0_n12_N7ee262513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee262513fooEv,_ZThn20_N7ee262513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26251 = { "ee26251", // class name
+ bases_ee26251, 4,
+ &(vtc_ee26251[0]), // expected_vtbl_contents
+ &(vtt_ee26251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names611,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36251 : virtual dd6251 {
+ int e;
+ virtual void foo(); // _ZN7ee362513fooEv
+ ~ee36251(); // tgen
+ ee36251(); // tgen
+};
+//SIG(1 ee36251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36251 ::foo(){vfunc_called(this, "_ZN7ee362513fooEv");}
+ee36251 ::~ee36251(){ note_dtor("ee36251", this);} // tgen
+ee36251 ::ee36251(){ note_ctor("ee36251", this);} // tgen
+
+static void Test_ee36251()
+{
+ extern Class_Descriptor cd_ee36251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36251, buf);
+ ee36251 *dp, &lv = *(dp=new (buf) ee36251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(40,24), "ee36251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), ABISELECT(16,8), "ee36251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), ABISELECT(16,8), "ee36251");
+ check_base_class_offset(lv, (dd6251*), ABISELECT(16,8), "ee36251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36251.e");
+ test_class_info(&lv, &cd_ee36251);
+ dp->~ee36251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36251(Test_ee36251, "ee36251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36251C1Ev();
+extern void _ZN7ee36251D1Ev();
+Name_Map name_map_ee36251[] = {
+ NSPAIR(_ZN7ee36251C1Ev),
+ NSPAIR(_ZN7ee36251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee36251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36251[];
+extern void _ZN7ee362513fooEv();
+extern void _ZN6dd62513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee362513fooEv,_ZTv0_n20_N7ee362513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362513fooEv,_ZThn8_N7ee362513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee362513fooEv,_ZTv0_n12_N7ee362513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee362513fooEv,_ZThn24_N7ee362513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36251[0]),
+ (VTBL_ENTRY)&_ZN7ee362513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee362513fooEv,_ZTv0_n20_N7ee362513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362513fooEv,_ZTv0_n12_N7ee362513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee36251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee36251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee36251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee36251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee36251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee36251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee36251[] = {
+ {&(_ZTV7ee36251[4]), 4,16},
+ {&(_ZTV7ee36251[10]), 10,16},
+ {&(_ZTV7ee36251[15]), 15,16},
+ {&(_tg__ZTV6dd6251__7ee36251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee36251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee36251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee36251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee36251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee36251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36251[];
+extern VTBL_ENTRY _ZTV7ee36251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36251[];
+static VTBL_ENTRY alt_thunk_names612[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362513fooEv,_ZTv0_n12_N7ee362513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee362513fooEv,_ZThn24_N7ee362513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee362513fooEv,_ZTv0_n20_N7ee362513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362513fooEv,_ZThn8_N7ee362513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36251 = { "ee36251", // class name
+ bases_ee36251, 4,
+ &(vtc_ee36251[0]), // expected_vtbl_contents
+ &(vtt_ee36251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names612,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46251 : dd6251 {
+ int e;
+ virtual void bar(); // _ZN7ee462513barEv
+ ~ee46251(); // tgen
+ ee46251(); // tgen
+};
+//SIG(1 ee46251) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46251 ::bar(){vfunc_called(this, "_ZN7ee462513barEv");}
+ee46251 ::~ee46251(){ note_dtor("ee46251", this);} // tgen
+ee46251 ::ee46251(){ note_ctor("ee46251", this);} // tgen
+
+static void Test_ee46251()
+{
+ extern Class_Descriptor cd_ee46251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46251, buf);
+ ee46251 *dp, &lv = *(dp=new (buf) ee46251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(24,20), "ee46251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), 0, "ee46251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), 0, "ee46251");
+ check_base_class_offset(lv, (dd6251*), 0, "ee46251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46251.e");
+ test_class_info(&lv, &cd_ee46251);
+ dp->~ee46251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46251(Test_ee46251, "ee46251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46251C1Ev();
+extern void _ZN7ee46251D1Ev();
+Name_Map name_map_ee46251[] = {
+ NSPAIR(_ZN7ee46251C1Ev),
+ NSPAIR(_ZN7ee46251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee46251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46251[];
+extern void _ZN7ee462513barEv();
+extern void _ZN6dd62513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46251[0]),
+ (VTBL_ENTRY)&_ZN7ee462513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee46251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee46251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee46251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee46251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee46251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee46251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee46251[] = {
+ {&(_ZTV7ee46251[3]), 3,9},
+ {&(_tg__ZTV6dd6251__7ee46251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee46251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee46251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee46251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee46251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee46251[3]), 3,4},
+ {&(_ZTV7ee46251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46251[];
+extern VTBL_ENTRY _ZTV7ee46251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46251[];
+static VTBL_ENTRY alt_thunk_names613[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46251 = { "ee46251", // class name
+ bases_ee46251, 4,
+ &(vtc_ee46251[0]), // expected_vtbl_contents
+ &(vtt_ee46251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names613,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56251 : virtual dd6251 {
+ int e;
+ virtual void bar(); // _ZN7ee562513barEv
+ ~ee56251(); // tgen
+ ee56251(); // tgen
+};
+//SIG(1 ee56251) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56251 ::bar(){vfunc_called(this, "_ZN7ee562513barEv");}
+ee56251 ::~ee56251(){ note_dtor("ee56251", this);} // tgen
+ee56251 ::ee56251(){ note_ctor("ee56251", this);} // tgen
+
+static void Test_ee56251()
+{
+ extern Class_Descriptor cd_ee56251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56251, buf);
+ ee56251 *dp, &lv = *(dp=new (buf) ee56251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(40,24), "ee56251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), ABISELECT(16,8), "ee56251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), ABISELECT(16,8), "ee56251");
+ check_base_class_offset(lv, (dd6251*), ABISELECT(16,8), "ee56251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56251.e");
+ test_class_info(&lv, &cd_ee56251);
+ dp->~ee56251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56251(Test_ee56251, "ee56251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56251C1Ev();
+extern void _ZN7ee56251D1Ev();
+Name_Map name_map_ee56251[] = {
+ NSPAIR(_ZN7ee56251C1Ev),
+ NSPAIR(_ZN7ee56251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee56251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56251[];
+extern void _ZN7ee562513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562513barEv,_ZTv0_n16_N7ee562513barEv)();
+extern void ABISELECT(_ZThn16_N7ee562513barEv,_ZThn8_N7ee562513barEv)() __attribute__((weak));
+extern void _ZN6dd62513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56251[0]),
+ (VTBL_ENTRY)&_ZN7ee562513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562513barEv,_ZTv0_n16_N7ee562513barEv),
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee56251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee56251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee56251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee56251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee56251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee56251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee56251[] = {
+ {&(_ZTV7ee56251[4]), 4,16},
+ {&(_ZTV7ee56251[10]), 10,16},
+ {&(_ZTV7ee56251[15]), 15,16},
+ {&(_tg__ZTV6dd6251__7ee56251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee56251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee56251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee56251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee56251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee56251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56251[];
+extern VTBL_ENTRY _ZTV7ee56251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56251[];
+static VTBL_ENTRY alt_thunk_names614[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562513barEv,_ZTv0_n16_N7ee562513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562513barEv,_ZThn8_N7ee562513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56251 = { "ee56251", // class name
+ bases_ee56251, 4,
+ &(vtc_ee56251[0]), // expected_vtbl_contents
+ &(vtt_ee56251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56251),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names614,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66251 : dd6251 {
+ int e;
+ virtual void foo(); // _ZN7ee662513fooEv
+ virtual void bar(); // _ZN7ee662513barEv
+ ~ee66251(); // tgen
+ ee66251(); // tgen
+};
+//SIG(1 ee66251) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66251 ::foo(){vfunc_called(this, "_ZN7ee662513fooEv");}
+void ee66251 ::bar(){vfunc_called(this, "_ZN7ee662513barEv");}
+ee66251 ::~ee66251(){ note_dtor("ee66251", this);} // tgen
+ee66251 ::ee66251(){ note_ctor("ee66251", this);} // tgen
+
+static void Test_ee66251()
+{
+ extern Class_Descriptor cd_ee66251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66251, buf);
+ ee66251 *dp, &lv = *(dp=new (buf) ee66251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(24,20), "ee66251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), 0, "ee66251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), 0, "ee66251");
+ check_base_class_offset(lv, (dd6251*), 0, "ee66251");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66251.e");
+ test_class_info(&lv, &cd_ee66251);
+ dp->~ee66251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66251(Test_ee66251, "ee66251", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66251C1Ev();
+extern void _ZN7ee66251D1Ev();
+Name_Map name_map_ee66251[] = {
+ NSPAIR(_ZN7ee66251C1Ev),
+ NSPAIR(_ZN7ee66251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee66251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66251[];
+extern void _ZN7ee662513barEv();
+extern void _ZN7ee662513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee662513fooEv,_ZTv0_n12_N7ee662513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee662513fooEv,_ZThn20_N7ee662513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66251[0]),
+ (VTBL_ENTRY)&_ZN7ee662513barEv,
+ (VTBL_ENTRY)&_ZN7ee662513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee662513fooEv,_ZTv0_n12_N7ee662513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee66251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee66251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee66251[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee66251[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee66251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee66251[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee66251[] = {
+ {&(_ZTV7ee66251[3]), 3,9},
+ {&(_tg__ZTV6dd6251__7ee66251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee66251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee66251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee66251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee66251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee66251[3]), 3,4},
+ {&(_ZTV7ee66251[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66251[];
+extern VTBL_ENTRY _ZTV7ee66251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66251[];
+static VTBL_ENTRY alt_thunk_names615[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn20_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn20_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee662513fooEv,_ZTv0_n12_N7ee662513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee662513fooEv,_ZThn20_N7ee662513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66251 = { "ee66251", // class name
+ bases_ee66251, 4,
+ &(vtc_ee66251[0]), // expected_vtbl_contents
+ &(vtt_ee66251[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66251),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66251),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names615,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76251 : virtual dd6251 {
+ int e;
+ virtual void foo(); // _ZN7ee762513fooEv
+ virtual void bar(); // _ZN7ee762513barEv
+ ~ee76251(); // tgen
+ ee76251(); // tgen
+};
+//SIG(1 ee76251) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76251 ::foo(){vfunc_called(this, "_ZN7ee762513fooEv");}
+void ee76251 ::bar(){vfunc_called(this, "_ZN7ee762513barEv");}
+ee76251 ::~ee76251(){ note_dtor("ee76251", this);} // tgen
+ee76251 ::ee76251(){ note_ctor("ee76251", this);} // tgen
+
+static void Test_ee76251()
+{
+ extern Class_Descriptor cd_ee76251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76251, buf);
+ ee76251 *dp, &lv = *(dp=new (buf) ee76251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*)(dd6251*), ABISELECT(40,24), "ee76251");
+ check_base_class_offset(lv, (bb51*)(cc251*)(dd6251*), ABISELECT(16,8), "ee76251");
+ check_base_class_offset(lv, (cc251*)(dd6251*), ABISELECT(16,8), "ee76251");
+ check_base_class_offset(lv, (dd6251*), ABISELECT(16,8), "ee76251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76251.e");
+ test_class_info(&lv, &cd_ee76251);
+ dp->~ee76251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76251(Test_ee76251, "ee76251", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76251C1Ev();
+extern void _ZN7ee76251D1Ev();
+Name_Map name_map_ee76251[] = {
+ NSPAIR(_ZN7ee76251C1Ev),
+ NSPAIR(_ZN7ee76251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd6251;
+extern VTBL_ENTRY _ZTI6dd6251[];
+extern VTBL_ENTRY _ZTV6dd6251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6251[];
+static Base_Class bases_ee76251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76251[];
+extern void _ZN7ee762513fooEv();
+extern void _ZN7ee762513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee762513barEv,_ZTv0_n16_N7ee762513barEv)();
+extern void ABISELECT(_ZThn16_N7ee762513barEv,_ZThn8_N7ee762513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee762513fooEv,_ZTv0_n20_N7ee762513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762513fooEv,_ZThn8_N7ee762513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee762513fooEv,_ZTv0_n12_N7ee762513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee762513fooEv,_ZThn24_N7ee762513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76251[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76251[0]),
+ (VTBL_ENTRY)&_ZN7ee762513fooEv,
+ (VTBL_ENTRY)&_ZN7ee762513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762513barEv,_ZTv0_n16_N7ee762513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee762513fooEv,_ZTv0_n20_N7ee762513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762513fooEv,_ZTv0_n12_N7ee762513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76251[];
+extern void _ZN6dd62513barEv();
+extern void _ZN6dd62513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6251__7ee76251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&_ZN6dd62513barEv,
+ (VTBL_ENTRY)&_ZN6dd62513fooEv,
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2516dd6251__7ee76251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc2516dd6251__7ee76251[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc2516dd6251__7ee76251[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc2516dd6251__7ee76251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6251__7ee76251[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv),
+};
+static VTT_ENTRY vtt_ee76251[] = {
+ {&(_ZTV7ee76251[4]), 4,17},
+ {&(_ZTV7ee76251[11]), 11,17},
+ {&(_ZTV7ee76251[16]), 16,17},
+ {&(_tg__ZTV6dd6251__7ee76251[3]), 3,5},
+ {&(_tg__ZTV5cc2516dd6251__7ee76251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc2516dd6251__7ee76251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc2516dd6251__7ee76251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc2516dd6251__7ee76251[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6251__7ee76251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76251[];
+extern VTBL_ENTRY _ZTV7ee76251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76251[];
+static VTBL_ENTRY alt_thunk_names616[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62513fooEv,_ZTv0_n12_N6dd62513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62513fooEv,_ZThn16_N6dd62513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2513fooEv,_ZThn16_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762513fooEv,_ZTv0_n12_N7ee762513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee762513fooEv,_ZThn24_N7ee762513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee762513fooEv,_ZTv0_n20_N7ee762513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762513fooEv,_ZThn8_N7ee762513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762513barEv,_ZTv0_n16_N7ee762513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762513barEv,_ZThn8_N7ee762513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76251 = { "ee76251", // class name
+ bases_ee76251, 4,
+ &(vtc_ee76251[0]), // expected_vtbl_contents
+ &(vtt_ee76251[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76251),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names616,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7251 : virtual cc251 {
+ int d;
+ virtual void bar(); // _ZN6dd72513barEv
+ virtual void foo(); // _ZN6dd72513fooEv
+ ~dd7251(); // tgen
+ dd7251(); // tgen
+};
+//SIG(-1 dd7251) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7251 ::bar(){vfunc_called(this, "_ZN6dd72513barEv");}
+void dd7251 ::foo(){vfunc_called(this, "_ZN6dd72513fooEv");}
+dd7251 ::~dd7251(){ note_dtor("dd7251", this);} // tgen
+dd7251 ::dd7251(){ note_ctor("dd7251", this);} // tgen
+
+static void Test_dd7251()
+{
+ extern Class_Descriptor cd_dd7251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7251, buf);
+ dd7251 *dp, &lv = *(dp=new (buf) dd7251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,20), "dd7251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,8), "dd7251");
+ check_base_class_offset(lv, (cc251*), ABISELECT(16,8), "dd7251");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7251.d");
+ test_class_info(&lv, &cd_dd7251);
+ dp->~dd7251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7251(Test_dd7251, "dd7251", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7251C1Ev();
+extern void _ZN6dd7251D1Ev();
+Name_Map name_map_dd7251[] = {
+ NSPAIR(_ZN6dd7251C1Ev),
+ NSPAIR(_ZN6dd7251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+static Base_Class bases_dd7251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd7251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__6dd7251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__6dd7251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__6dd7251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_dd7251[] = {
+ {&(_ZTV6dd7251[4]), 4,17},
+ {&(_ZTV6dd7251[11]), 11,17},
+ {&(_ZTV6dd7251[16]), 16,17},
+ {&(_tg__ZTV5cc251__6dd7251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__6dd7251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__6dd7251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__6dd7251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static VTBL_ENTRY alt_thunk_names617[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7251 = { "dd7251", // class name
+ bases_dd7251, 3,
+ &(vtc_dd7251[0]), // expected_vtbl_contents
+ &(vtt_dd7251[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7251),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names617,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07251 : dd7251 {
+ int e;
+ ~ee07251(); // tgen
+ ee07251(); // tgen
+};
+//SIG(1 ee07251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07251 ::~ee07251(){ note_dtor("ee07251", this);} // tgen
+ee07251 ::ee07251(){ note_ctor("ee07251", this);} // tgen
+
+static void Test_ee07251()
+{
+ extern Class_Descriptor cd_ee07251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07251, buf);
+ ee07251 *dp, &lv = *(dp=new (buf) ee07251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee07251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee07251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(16,12), "ee07251");
+ check_base_class_offset(lv, (dd7251*), 0, "ee07251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07251.e");
+ test_class_info(&lv, &cd_ee07251);
+ dp->~ee07251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07251(Test_ee07251, "ee07251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07251C1Ev();
+extern void _ZN7ee07251D1Ev();
+Name_Map name_map_ee07251[] = {
+ NSPAIR(_ZN7ee07251C1Ev),
+ NSPAIR(_ZN7ee07251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee07251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee07251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee07251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee07251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee07251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee07251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee07251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee07251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee07251[] = {
+ {&(_ZTV7ee07251[4]), 4,17},
+ {&(_tg__ZTV6dd7251__7ee07251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee07251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee07251[3]), 3,4},
+ {&(_ZTV7ee07251[11]), 11,17},
+ {&(_ZTV7ee07251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee07251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee07251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee07251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee07251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07251[];
+extern VTBL_ENTRY _ZTV7ee07251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07251[];
+static VTBL_ENTRY alt_thunk_names618[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07251 = { "ee07251", // class name
+ bases_ee07251, 4,
+ &(vtc_ee07251[0]), // expected_vtbl_contents
+ &(vtt_ee07251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names618,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17251 : virtual dd7251 {
+ int e;
+ ~ee17251(); // tgen
+ ee17251(); // tgen
+};
+//SIG(1 ee17251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17251 ::~ee17251(){ note_dtor("ee17251", this);} // tgen
+ee17251 ::ee17251(){ note_ctor("ee17251", this);} // tgen
+
+static void Test_ee17251()
+{
+ extern Class_Descriptor cd_ee17251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17251, buf);
+ ee17251 *dp, &lv = *(dp=new (buf) ee17251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee17251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee17251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(32,16), "ee17251");
+ check_base_class_offset(lv, (dd7251*), ABISELECT(16,8), "ee17251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17251.e");
+ test_class_info(&lv, &cd_ee17251);
+ dp->~ee17251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17251(Test_ee17251, "ee17251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17251C1Ev();
+extern void _ZN7ee17251D1Ev();
+Name_Map name_map_ee17251[] = {
+ NSPAIR(_ZN7ee17251C1Ev),
+ NSPAIR(_ZN7ee17251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee17251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17251[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee17251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee17251[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee17251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee17251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee17251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee17251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee17251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee17251[] = {
+ {&(_ZTV7ee17251[5]), 5,24},
+ {&(_ZTV7ee17251[11]), 11,24},
+ {&(_ZTV7ee17251[18]), 18,24},
+ {&(_ZTV7ee17251[23]), 23,24},
+ {&(_tg__ZTV6dd7251__7ee17251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee17251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee17251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee17251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee17251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee17251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee17251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17251[];
+extern VTBL_ENTRY _ZTV7ee17251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17251[];
+static VTBL_ENTRY alt_thunk_names619[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17251 = { "ee17251", // class name
+ bases_ee17251, 4,
+ &(vtc_ee17251[0]), // expected_vtbl_contents
+ &(vtt_ee17251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17251),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names619,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27251 : dd7251 {
+ int e;
+ virtual void foo(); // _ZN7ee272513fooEv
+ ~ee27251(); // tgen
+ ee27251(); // tgen
+};
+//SIG(1 ee27251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27251 ::foo(){vfunc_called(this, "_ZN7ee272513fooEv");}
+ee27251 ::~ee27251(){ note_dtor("ee27251", this);} // tgen
+ee27251 ::ee27251(){ note_ctor("ee27251", this);} // tgen
+
+static void Test_ee27251()
+{
+ extern Class_Descriptor cd_ee27251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27251, buf);
+ ee27251 *dp, &lv = *(dp=new (buf) ee27251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee27251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee27251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(16,12), "ee27251");
+ check_base_class_offset(lv, (dd7251*), 0, "ee27251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27251.e");
+ test_class_info(&lv, &cd_ee27251);
+ dp->~ee27251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27251(Test_ee27251, "ee27251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27251C1Ev();
+extern void _ZN7ee27251D1Ev();
+Name_Map name_map_ee27251[] = {
+ NSPAIR(_ZN7ee27251C1Ev),
+ NSPAIR(_ZN7ee27251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee27251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN7ee272513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee272513fooEv,_ZTv0_n20_N7ee272513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272513fooEv,_ZThn12_N7ee272513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee272513fooEv,_ZTv0_n12_N7ee272513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee272513fooEv,_ZThn24_N7ee272513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN7ee272513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee272513fooEv,_ZTv0_n20_N7ee272513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272513fooEv,_ZTv0_n12_N7ee272513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee27251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee27251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee27251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee27251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee27251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee27251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee27251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee27251[] = {
+ {&(_ZTV7ee27251[4]), 4,17},
+ {&(_tg__ZTV6dd7251__7ee27251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee27251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee27251[3]), 3,4},
+ {&(_ZTV7ee27251[11]), 11,17},
+ {&(_ZTV7ee27251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee27251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee27251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee27251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee27251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27251[];
+extern VTBL_ENTRY _ZTV7ee27251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27251[];
+static VTBL_ENTRY alt_thunk_names620[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272513fooEv,_ZTv0_n12_N7ee272513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee272513fooEv,_ZThn24_N7ee272513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee272513fooEv,_ZTv0_n20_N7ee272513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272513fooEv,_ZThn12_N7ee272513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27251 = { "ee27251", // class name
+ bases_ee27251, 4,
+ &(vtc_ee27251[0]), // expected_vtbl_contents
+ &(vtt_ee27251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names620,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37251 : virtual dd7251 {
+ int e;
+ virtual void foo(); // _ZN7ee372513fooEv
+ ~ee37251(); // tgen
+ ee37251(); // tgen
+};
+//SIG(1 ee37251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37251 ::foo(){vfunc_called(this, "_ZN7ee372513fooEv");}
+ee37251 ::~ee37251(){ note_dtor("ee37251", this);} // tgen
+ee37251 ::ee37251(){ note_ctor("ee37251", this);} // tgen
+
+static void Test_ee37251()
+{
+ extern Class_Descriptor cd_ee37251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37251, buf);
+ ee37251 *dp, &lv = *(dp=new (buf) ee37251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee37251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee37251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(32,16), "ee37251");
+ check_base_class_offset(lv, (dd7251*), ABISELECT(16,8), "ee37251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37251.e");
+ test_class_info(&lv, &cd_ee37251);
+ dp->~ee37251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37251(Test_ee37251, "ee37251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37251C1Ev();
+extern void _ZN7ee37251D1Ev();
+Name_Map name_map_ee37251[] = {
+ NSPAIR(_ZN7ee37251C1Ev),
+ NSPAIR(_ZN7ee37251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee37251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 21, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37251[];
+extern void _ZN7ee372513fooEv();
+extern void _ZN6dd72513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee372513fooEv,_ZTv0_n24_N7ee372513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372513fooEv,_ZThn8_N7ee372513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee372513fooEv,_ZTv0_n20_N7ee372513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372513fooEv,_ZThn16_N7ee372513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372513fooEv,_ZTv0_n12_N7ee372513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee372513fooEv,_ZThn28_N7ee372513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37251[0]),
+ (VTBL_ENTRY)&_ZN7ee372513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee372513fooEv,_ZTv0_n24_N7ee372513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372513fooEv,_ZTv0_n20_N7ee372513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372513fooEv,_ZTv0_n12_N7ee372513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee37251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee37251[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee37251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee37251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee37251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee37251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee37251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee37251[] = {
+ {&(_ZTV7ee37251[5]), 5,25},
+ {&(_ZTV7ee37251[12]), 12,25},
+ {&(_ZTV7ee37251[19]), 19,25},
+ {&(_ZTV7ee37251[24]), 24,25},
+ {&(_tg__ZTV6dd7251__7ee37251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee37251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee37251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee37251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee37251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee37251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee37251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37251[];
+extern VTBL_ENTRY _ZTV7ee37251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37251[];
+static VTBL_ENTRY alt_thunk_names621[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372513fooEv,_ZTv0_n12_N7ee372513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee372513fooEv,_ZThn28_N7ee372513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372513fooEv,_ZTv0_n20_N7ee372513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372513fooEv,_ZThn16_N7ee372513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee372513fooEv,_ZTv0_n24_N7ee372513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372513fooEv,_ZThn8_N7ee372513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37251 = { "ee37251", // class name
+ bases_ee37251, 4,
+ &(vtc_ee37251[0]), // expected_vtbl_contents
+ &(vtt_ee37251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37251),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names621,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47251 : dd7251 {
+ int e;
+ virtual void bar(); // _ZN7ee472513barEv
+ ~ee47251(); // tgen
+ ee47251(); // tgen
+};
+//SIG(1 ee47251) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47251 ::bar(){vfunc_called(this, "_ZN7ee472513barEv");}
+ee47251 ::~ee47251(){ note_dtor("ee47251", this);} // tgen
+ee47251 ::ee47251(){ note_ctor("ee47251", this);} // tgen
+
+static void Test_ee47251()
+{
+ extern Class_Descriptor cd_ee47251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47251, buf);
+ ee47251 *dp, &lv = *(dp=new (buf) ee47251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee47251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee47251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(16,12), "ee47251");
+ check_base_class_offset(lv, (dd7251*), 0, "ee47251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47251.e");
+ test_class_info(&lv, &cd_ee47251);
+ dp->~ee47251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47251(Test_ee47251, "ee47251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47251C1Ev();
+extern void _ZN7ee47251D1Ev();
+Name_Map name_map_ee47251[] = {
+ NSPAIR(_ZN7ee47251C1Ev),
+ NSPAIR(_ZN7ee47251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee47251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47251[];
+extern void _ZN7ee472513barEv();
+extern void _ZN6dd72513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee472513barEv,_ZTv0_n16_N7ee472513barEv)();
+extern void ABISELECT(_ZThn16_N7ee472513barEv,_ZThn12_N7ee472513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47251[0]),
+ (VTBL_ENTRY)&_ZN7ee472513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472513barEv,_ZTv0_n16_N7ee472513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee47251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee47251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee47251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee47251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee47251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee47251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee47251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee47251[] = {
+ {&(_ZTV7ee47251[4]), 4,17},
+ {&(_tg__ZTV6dd7251__7ee47251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee47251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee47251[3]), 3,4},
+ {&(_ZTV7ee47251[11]), 11,17},
+ {&(_ZTV7ee47251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee47251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee47251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee47251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee47251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47251[];
+extern VTBL_ENTRY _ZTV7ee47251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47251[];
+static VTBL_ENTRY alt_thunk_names622[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472513barEv,_ZTv0_n16_N7ee472513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472513barEv,_ZThn12_N7ee472513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47251 = { "ee47251", // class name
+ bases_ee47251, 4,
+ &(vtc_ee47251[0]), // expected_vtbl_contents
+ &(vtt_ee47251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names622,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57251 : virtual dd7251 {
+ int e;
+ virtual void bar(); // _ZN7ee572513barEv
+ ~ee57251(); // tgen
+ ee57251(); // tgen
+};
+//SIG(1 ee57251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57251 ::bar(){vfunc_called(this, "_ZN7ee572513barEv");}
+ee57251 ::~ee57251(){ note_dtor("ee57251", this);} // tgen
+ee57251 ::ee57251(){ note_ctor("ee57251", this);} // tgen
+
+static void Test_ee57251()
+{
+ extern Class_Descriptor cd_ee57251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57251, buf);
+ ee57251 *dp, &lv = *(dp=new (buf) ee57251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee57251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee57251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(32,16), "ee57251");
+ check_base_class_offset(lv, (dd7251*), ABISELECT(16,8), "ee57251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57251.e");
+ test_class_info(&lv, &cd_ee57251);
+ dp->~ee57251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57251(Test_ee57251, "ee57251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57251C1Ev();
+extern void _ZN7ee57251D1Ev();
+Name_Map name_map_ee57251[] = {
+ NSPAIR(_ZN7ee57251C1Ev),
+ NSPAIR(_ZN7ee57251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee57251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 21, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57251[];
+extern void _ZN7ee572513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee572513barEv,_ZTv0_n20_N7ee572513barEv)();
+extern void ABISELECT(_ZThn16_N7ee572513barEv,_ZThn8_N7ee572513barEv)() __attribute__((weak));
+extern void _ZN6dd72513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572513barEv,_ZTv0_n16_N7ee572513barEv)();
+extern void ABISELECT(_ZThn32_N7ee572513barEv,_ZThn16_N7ee572513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57251[0]),
+ (VTBL_ENTRY)&_ZN7ee572513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee572513barEv,_ZTv0_n20_N7ee572513barEv),
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572513barEv,_ZTv0_n16_N7ee572513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee57251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee57251[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee57251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee57251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee57251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee57251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee57251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee57251[] = {
+ {&(_ZTV7ee57251[5]), 5,25},
+ {&(_ZTV7ee57251[12]), 12,25},
+ {&(_ZTV7ee57251[19]), 19,25},
+ {&(_ZTV7ee57251[24]), 24,25},
+ {&(_tg__ZTV6dd7251__7ee57251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee57251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee57251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee57251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee57251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee57251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee57251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57251[];
+extern VTBL_ENTRY _ZTV7ee57251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57251[];
+static VTBL_ENTRY alt_thunk_names623[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572513barEv,_ZTv0_n16_N7ee572513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572513barEv,_ZThn16_N7ee572513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee572513barEv,_ZTv0_n20_N7ee572513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572513barEv,_ZThn8_N7ee572513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57251 = { "ee57251", // class name
+ bases_ee57251, 4,
+ &(vtc_ee57251[0]), // expected_vtbl_contents
+ &(vtt_ee57251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57251),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names623,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67251 : dd7251 {
+ int e;
+ virtual void foo(); // _ZN7ee672513fooEv
+ virtual void bar(); // _ZN7ee672513barEv
+ ~ee67251(); // tgen
+ ee67251(); // tgen
+};
+//SIG(1 ee67251) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67251 ::foo(){vfunc_called(this, "_ZN7ee672513fooEv");}
+void ee67251 ::bar(){vfunc_called(this, "_ZN7ee672513barEv");}
+ee67251 ::~ee67251(){ note_dtor("ee67251", this);} // tgen
+ee67251 ::ee67251(){ note_ctor("ee67251", this);} // tgen
+
+static void Test_ee67251()
+{
+ extern Class_Descriptor cd_ee67251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67251, buf);
+ ee67251 *dp, &lv = *(dp=new (buf) ee67251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(32,24), "ee67251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(16,12), "ee67251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(16,12), "ee67251");
+ check_base_class_offset(lv, (dd7251*), 0, "ee67251");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67251.e");
+ test_class_info(&lv, &cd_ee67251);
+ dp->~ee67251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67251(Test_ee67251, "ee67251", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67251C1Ev();
+extern void _ZN7ee67251D1Ev();
+Name_Map name_map_ee67251[] = {
+ NSPAIR(_ZN7ee67251C1Ev),
+ NSPAIR(_ZN7ee67251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee67251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67251[];
+extern void _ZN7ee672513barEv();
+extern void _ZN7ee672513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee672513barEv,_ZTv0_n16_N7ee672513barEv)();
+extern void ABISELECT(_ZThn16_N7ee672513barEv,_ZThn12_N7ee672513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee672513fooEv,_ZTv0_n20_N7ee672513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672513fooEv,_ZThn12_N7ee672513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee672513fooEv,_ZTv0_n12_N7ee672513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee672513fooEv,_ZThn24_N7ee672513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67251[0]),
+ (VTBL_ENTRY)&_ZN7ee672513barEv,
+ (VTBL_ENTRY)&_ZN7ee672513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672513barEv,_ZTv0_n16_N7ee672513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee672513fooEv,_ZTv0_n20_N7ee672513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672513fooEv,_ZTv0_n12_N7ee672513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee67251[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee67251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee67251[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee67251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee67251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee67251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee67251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee67251[] = {
+ {&(_ZTV7ee67251[4]), 4,17},
+ {&(_tg__ZTV6dd7251__7ee67251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee67251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee67251[3]), 3,4},
+ {&(_ZTV7ee67251[11]), 11,17},
+ {&(_ZTV7ee67251[16]), 16,17},
+ {&(_tg__ZTV5cc251__7ee67251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee67251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee67251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee67251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67251[];
+extern VTBL_ENTRY _ZTV7ee67251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67251[];
+static VTBL_ENTRY alt_thunk_names624[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn24_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn12_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn12_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672513fooEv,_ZTv0_n12_N7ee672513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee672513fooEv,_ZThn24_N7ee672513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee672513fooEv,_ZTv0_n20_N7ee672513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672513fooEv,_ZThn12_N7ee672513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672513barEv,_ZTv0_n16_N7ee672513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672513barEv,_ZThn12_N7ee672513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67251 = { "ee67251", // class name
+ bases_ee67251, 4,
+ &(vtc_ee67251[0]), // expected_vtbl_contents
+ &(vtt_ee67251[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67251),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67251),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67251),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names624,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77251 : virtual dd7251 {
+ int e;
+ virtual void foo(); // _ZN7ee772513fooEv
+ virtual void bar(); // _ZN7ee772513barEv
+ ~ee77251(); // tgen
+ ee77251(); // tgen
+};
+//SIG(1 ee77251) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77251 ::foo(){vfunc_called(this, "_ZN7ee772513fooEv");}
+void ee77251 ::bar(){vfunc_called(this, "_ZN7ee772513barEv");}
+ee77251 ::~ee77251(){ note_dtor("ee77251", this);} // tgen
+ee77251 ::ee77251(){ note_ctor("ee77251", this);} // tgen
+
+static void Test_ee77251()
+{
+ extern Class_Descriptor cd_ee77251;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77251, buf);
+ ee77251 *dp, &lv = *(dp=new (buf) ee77251());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77251)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77251)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc251*), ABISELECT(48,28), "ee77251");
+ check_base_class_offset(lv, (bb51*)(cc251*), ABISELECT(32,16), "ee77251");
+ check_base_class_offset(lv, (cc251*)(dd7251*), ABISELECT(32,16), "ee77251");
+ check_base_class_offset(lv, (dd7251*), ABISELECT(16,8), "ee77251");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77251.e");
+ test_class_info(&lv, &cd_ee77251);
+ dp->~ee77251();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77251(Test_ee77251, "ee77251", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77251C1Ev();
+extern void _ZN7ee77251D1Ev();
+Name_Map name_map_ee77251[] = {
+ NSPAIR(_ZN7ee77251C1Ev),
+ NSPAIR(_ZN7ee77251D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc251;
+extern VTBL_ENTRY _ZTI5cc251[];
+extern VTBL_ENTRY _ZTV5cc251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc251[];
+extern Class_Descriptor cd_dd7251;
+extern VTBL_ENTRY _ZTI6dd7251[];
+extern VTBL_ENTRY _ZTV6dd7251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7251[];
+static Base_Class bases_ee77251[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc251, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7251, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77251[];
+extern void _ZN7ee772513fooEv();
+extern void _ZN7ee772513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee772513barEv,_ZTv0_n20_N7ee772513barEv)();
+extern void ABISELECT(_ZThn16_N7ee772513barEv,_ZThn8_N7ee772513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee772513fooEv,_ZTv0_n24_N7ee772513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772513fooEv,_ZThn8_N7ee772513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772513barEv,_ZTv0_n16_N7ee772513barEv)();
+extern void ABISELECT(_ZThn32_N7ee772513barEv,_ZThn16_N7ee772513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772513fooEv,_ZTv0_n20_N7ee772513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772513fooEv,_ZThn16_N7ee772513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772513fooEv,_ZTv0_n12_N7ee772513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee772513fooEv,_ZThn28_N7ee772513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77251[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77251[0]),
+ (VTBL_ENTRY)&_ZN7ee772513fooEv,
+ (VTBL_ENTRY)&_ZN7ee772513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772513barEv,_ZTv0_n20_N7ee772513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee772513fooEv,_ZTv0_n24_N7ee772513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772513barEv,_ZTv0_n16_N7ee772513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772513fooEv,_ZTv0_n20_N7ee772513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772513fooEv,_ZTv0_n12_N7ee772513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77251[];
+extern void _ZN6dd72513barEv();
+extern void _ZN6dd72513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7251__7ee77251[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&_ZN6dd72513barEv,
+ (VTBL_ENTRY)&_ZN6dd72513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv)();
+extern void ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc251__6dd7251__7ee77251[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7251__7ee77251[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv),
+};
+extern void _ZN4bb513barEv();
+extern void _ZN5cc2513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc251__7ee77251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ (VTBL_ENTRY)&_ZN5cc2513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc251__7ee77251[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc251__7ee77251[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc251__7ee77251[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc251[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv),
+};
+static VTT_ENTRY vtt_ee77251[] = {
+ {&(_ZTV7ee77251[5]), 5,26},
+ {&(_ZTV7ee77251[13]), 13,26},
+ {&(_ZTV7ee77251[20]), 20,26},
+ {&(_ZTV7ee77251[25]), 25,26},
+ {&(_tg__ZTV6dd7251__7ee77251[4]), 4,6},
+ {&(_tg__ZTV5cc251__6dd7251__7ee77251[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7251__7ee77251[3]), 3,4},
+ {&(_tg__ZTV5cc251__7ee77251[3]), 3,5},
+ {&(_tg__ZTV4bb515cc251__7ee77251[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc251__7ee77251[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc251__7ee77251[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77251[];
+extern VTBL_ENTRY _ZTV7ee77251[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77251[];
+static VTBL_ENTRY alt_thunk_names625[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2513fooEv,_ZTv0_n12_N5cc2513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2513fooEv,_ZThn12_N5cc2513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72513fooEv,_ZTv0_n12_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72513fooEv,_ZThn20_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72513fooEv,_ZTv0_n20_N6dd72513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513fooEv,_ZThn8_N6dd72513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72513barEv,_ZTv0_n16_N6dd72513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72513barEv,_ZThn8_N6dd72513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772513fooEv,_ZTv0_n12_N7ee772513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee772513fooEv,_ZThn28_N7ee772513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772513fooEv,_ZTv0_n20_N7ee772513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772513fooEv,_ZThn16_N7ee772513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772513barEv,_ZTv0_n16_N7ee772513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772513barEv,_ZThn16_N7ee772513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee772513fooEv,_ZTv0_n24_N7ee772513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772513fooEv,_ZThn8_N7ee772513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772513barEv,_ZTv0_n20_N7ee772513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772513barEv,_ZThn8_N7ee772513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77251 = { "ee77251", // class name
+ bases_ee77251, 4,
+ &(vtc_ee77251[0]), // expected_vtbl_contents
+ &(vtt_ee77251[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77251),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77251),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77251),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names625,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc351 : virtual bb51 {
+ int c;
+ virtual void foo(); // _ZN5cc3513fooEv
+ ~cc351(); // tgen
+ cc351(); // tgen
+};
+//SIG(-1 cc351) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} v1 Fi}
+
+
+void cc351 ::foo(){vfunc_called(this, "_ZN5cc3513fooEv");}
+cc351 ::~cc351(){ note_dtor("cc351", this);} // tgen
+cc351 ::cc351(){ note_ctor("cc351", this);} // tgen
+
+static void Test_cc351()
+{
+ extern Class_Descriptor cd_cc351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc351, buf);
+ cc351 *dp, &lv = *(dp=new (buf) cc351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,16), "cc351");
+ check_base_class_offset(lv, (bb51*), ABISELECT(16,8), "cc351");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc351.c");
+ test_class_info(&lv, &cd_cc351);
+ dp->~cc351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc351(Test_cc351, "cc351", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc351C1Ev();
+extern void _ZN5cc351D1Ev();
+Name_Map name_map_cc351[] = {
+ NSPAIR(_ZN5cc351C1Ev),
+ NSPAIR(_ZN5cc351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc351[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc351[] = {
+ {&(_ZTV5cc351[4]), 4,14},
+ {&(_ZTV5cc351[9]), 9,14},
+ {&(_ZTV5cc351[13]), 13,14},
+ {&(_tg__ZTV4bb51__5cc351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static VTBL_ENTRY alt_thunk_names626[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc351 = { "cc351", // class name
+ bases_cc351, 2,
+ &(vtc_cc351[0]), // expected_vtbl_contents
+ &(vtt_cc351[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc351),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names626,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0351 : cc351 {
+ int d;
+ ~dd0351(); // tgen
+ dd0351(); // tgen
+};
+//SIG(-1 dd0351) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0351 ::~dd0351(){ note_dtor("dd0351", this);} // tgen
+dd0351 ::dd0351(){ note_ctor("dd0351", this);} // tgen
+
+static void Test_dd0351()
+{
+ extern Class_Descriptor cd_dd0351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0351, buf);
+ dd0351 *dp, &lv = *(dp=new (buf) dd0351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd0351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(16,12), "dd0351");
+ check_base_class_offset(lv, (cc351*), 0, "dd0351");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0351.d");
+ test_class_info(&lv, &cd_dd0351);
+ dp->~dd0351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0351(Test_dd0351, "dd0351", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0351C1Ev();
+extern void _ZN6dd0351D1Ev();
+Name_Map name_map_dd0351[] = {
+ NSPAIR(_ZN6dd0351C1Ev),
+ NSPAIR(_ZN6dd0351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd0351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd0351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd0351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd0351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd0351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0351[] = {
+ {&(_ZTV6dd0351[4]), 4,14},
+ {&(_tg__ZTV5cc351__6dd0351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd0351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd0351[3]), 3,4},
+ {&(_ZTV6dd0351[9]), 9,14},
+ {&(_ZTV6dd0351[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd0351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd0351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static VTBL_ENTRY alt_thunk_names627[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0351 = { "dd0351", // class name
+ bases_dd0351, 3,
+ &(vtc_dd0351[0]), // expected_vtbl_contents
+ &(vtt_dd0351[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0351),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names627,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00351 : dd0351 {
+ int e;
+ ~ee00351(); // tgen
+ ee00351(); // tgen
+};
+//SIG(1 ee00351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00351 ::~ee00351(){ note_dtor("ee00351", this);} // tgen
+ee00351 ::ee00351(){ note_ctor("ee00351", this);} // tgen
+
+static void Test_ee00351()
+{
+ extern Class_Descriptor cd_ee00351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00351, buf);
+ ee00351 *dp, &lv = *(dp=new (buf) ee00351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee00351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(24,16), "ee00351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), 0, "ee00351");
+ check_base_class_offset(lv, (dd0351*), 0, "ee00351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00351.e");
+ test_class_info(&lv, &cd_ee00351);
+ dp->~ee00351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00351(Test_ee00351, "ee00351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00351C1Ev();
+extern void _ZN7ee00351D1Ev();
+Name_Map name_map_ee00351[] = {
+ NSPAIR(_ZN7ee00351C1Ev),
+ NSPAIR(_ZN7ee00351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee00351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee00351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee00351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee00351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee00351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee00351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee00351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee00351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee00351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00351[] = {
+ {&(_ZTV7ee00351[4]), 4,14},
+ {&(_tg__ZTV6dd0351__7ee00351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee00351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee00351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee00351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee00351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee00351[3]), 3,4},
+ {&(_ZTV7ee00351[9]), 9,14},
+ {&(_ZTV7ee00351[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee00351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee00351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00351[];
+extern VTBL_ENTRY _ZTV7ee00351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00351[];
+static VTBL_ENTRY alt_thunk_names628[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00351 = { "ee00351", // class name
+ bases_ee00351, 4,
+ &(vtc_ee00351[0]), // expected_vtbl_contents
+ &(vtt_ee00351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names628,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10351 : virtual dd0351 {
+ int e;
+ ~ee10351(); // tgen
+ ee10351(); // tgen
+};
+//SIG(1 ee10351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10351 ::~ee10351(){ note_dtor("ee10351", this);} // tgen
+ee10351 ::ee10351(){ note_ctor("ee10351", this);} // tgen
+
+static void Test_ee10351()
+{
+ extern Class_Descriptor cd_ee10351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10351, buf);
+ ee10351 *dp, &lv = *(dp=new (buf) ee10351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee10351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(32,20), "ee10351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), ABISELECT(16,8), "ee10351");
+ check_base_class_offset(lv, (dd0351*), ABISELECT(16,8), "ee10351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10351.e");
+ test_class_info(&lv, &cd_ee10351);
+ dp->~ee10351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10351(Test_ee10351, "ee10351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10351C1Ev();
+extern void _ZN7ee10351D1Ev();
+Name_Map name_map_ee10351[] = {
+ NSPAIR(_ZN7ee10351C1Ev),
+ NSPAIR(_ZN7ee10351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee10351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10351[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee10351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee10351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee10351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee10351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee10351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee10351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee10351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee10351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10351[] = {
+ {&(_ZTV7ee10351[5]), 5,20},
+ {&(_ZTV7ee10351[10]), 10,20},
+ {&(_ZTV7ee10351[15]), 15,20},
+ {&(_ZTV7ee10351[19]), 19,20},
+ {&(_tg__ZTV6dd0351__7ee10351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee10351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee10351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee10351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee10351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee10351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee10351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee10351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10351[];
+extern VTBL_ENTRY _ZTV7ee10351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10351[];
+static VTBL_ENTRY alt_thunk_names629[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10351 = { "ee10351", // class name
+ bases_ee10351, 4,
+ &(vtc_ee10351[0]), // expected_vtbl_contents
+ &(vtt_ee10351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10351),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names629,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20351 : dd0351 {
+ int e;
+ virtual void foo(); // _ZN7ee203513fooEv
+ ~ee20351(); // tgen
+ ee20351(); // tgen
+};
+//SIG(1 ee20351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20351 ::foo(){vfunc_called(this, "_ZN7ee203513fooEv");}
+ee20351 ::~ee20351(){ note_dtor("ee20351", this);} // tgen
+ee20351 ::ee20351(){ note_ctor("ee20351", this);} // tgen
+
+static void Test_ee20351()
+{
+ extern Class_Descriptor cd_ee20351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20351, buf);
+ ee20351 *dp, &lv = *(dp=new (buf) ee20351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee20351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(24,16), "ee20351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), 0, "ee20351");
+ check_base_class_offset(lv, (dd0351*), 0, "ee20351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20351.e");
+ test_class_info(&lv, &cd_ee20351);
+ dp->~ee20351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20351(Test_ee20351, "ee20351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20351C1Ev();
+extern void _ZN7ee20351D1Ev();
+Name_Map name_map_ee20351[] = {
+ NSPAIR(_ZN7ee20351C1Ev),
+ NSPAIR(_ZN7ee20351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee20351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20351[];
+extern void _ZN7ee203513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203513fooEv,_ZTv0_n12_N7ee203513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee203513fooEv,_ZThn24_N7ee203513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20351[0]),
+ (VTBL_ENTRY)&_ZN7ee203513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203513fooEv,_ZTv0_n12_N7ee203513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee20351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee20351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee20351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee20351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee20351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee20351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee20351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee20351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20351[] = {
+ {&(_ZTV7ee20351[4]), 4,14},
+ {&(_tg__ZTV6dd0351__7ee20351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee20351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee20351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee20351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee20351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee20351[3]), 3,4},
+ {&(_ZTV7ee20351[9]), 9,14},
+ {&(_ZTV7ee20351[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee20351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee20351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20351[];
+extern VTBL_ENTRY _ZTV7ee20351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20351[];
+static VTBL_ENTRY alt_thunk_names630[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203513fooEv,_ZTv0_n12_N7ee203513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee203513fooEv,_ZThn24_N7ee203513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20351 = { "ee20351", // class name
+ bases_ee20351, 4,
+ &(vtc_ee20351[0]), // expected_vtbl_contents
+ &(vtt_ee20351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names630,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30351 : virtual dd0351 {
+ int e;
+ virtual void foo(); // _ZN7ee303513fooEv
+ ~ee30351(); // tgen
+ ee30351(); // tgen
+};
+//SIG(1 ee30351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30351 ::foo(){vfunc_called(this, "_ZN7ee303513fooEv");}
+ee30351 ::~ee30351(){ note_dtor("ee30351", this);} // tgen
+ee30351 ::ee30351(){ note_ctor("ee30351", this);} // tgen
+
+static void Test_ee30351()
+{
+ extern Class_Descriptor cd_ee30351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30351, buf);
+ ee30351 *dp, &lv = *(dp=new (buf) ee30351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee30351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(32,20), "ee30351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), ABISELECT(16,8), "ee30351");
+ check_base_class_offset(lv, (dd0351*), ABISELECT(16,8), "ee30351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30351.e");
+ test_class_info(&lv, &cd_ee30351);
+ dp->~ee30351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30351(Test_ee30351, "ee30351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30351C1Ev();
+extern void _ZN7ee30351D1Ev();
+Name_Map name_map_ee30351[] = {
+ NSPAIR(_ZN7ee30351C1Ev),
+ NSPAIR(_ZN7ee30351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee30351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30351[];
+extern void _ZN7ee303513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee303513fooEv,_ZTv0_n20_N7ee303513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303513fooEv,_ZThn8_N7ee303513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee303513fooEv,_ZTv0_n12_N7ee303513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee303513fooEv,_ZThn28_N7ee303513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30351[0]),
+ (VTBL_ENTRY)&_ZN7ee303513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee303513fooEv,_ZTv0_n20_N7ee303513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303513fooEv,_ZTv0_n12_N7ee303513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee30351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee30351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee30351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee30351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee30351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee30351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee30351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee30351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30351[] = {
+ {&(_ZTV7ee30351[5]), 5,21},
+ {&(_ZTV7ee30351[11]), 11,21},
+ {&(_ZTV7ee30351[16]), 16,21},
+ {&(_ZTV7ee30351[20]), 20,21},
+ {&(_tg__ZTV6dd0351__7ee30351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee30351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee30351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee30351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee30351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee30351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee30351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee30351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30351[];
+extern VTBL_ENTRY _ZTV7ee30351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30351[];
+static VTBL_ENTRY alt_thunk_names631[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303513fooEv,_ZTv0_n12_N7ee303513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee303513fooEv,_ZThn28_N7ee303513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee303513fooEv,_ZTv0_n20_N7ee303513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303513fooEv,_ZThn8_N7ee303513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30351 = { "ee30351", // class name
+ bases_ee30351, 4,
+ &(vtc_ee30351[0]), // expected_vtbl_contents
+ &(vtt_ee30351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names631,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40351 : dd0351 {
+ int e;
+ virtual void bar(); // _ZN7ee403513barEv
+ ~ee40351(); // tgen
+ ee40351(); // tgen
+};
+//SIG(1 ee40351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40351 ::bar(){vfunc_called(this, "_ZN7ee403513barEv");}
+ee40351 ::~ee40351(){ note_dtor("ee40351", this);} // tgen
+ee40351 ::ee40351(){ note_ctor("ee40351", this);} // tgen
+
+static void Test_ee40351()
+{
+ extern Class_Descriptor cd_ee40351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40351, buf);
+ ee40351 *dp, &lv = *(dp=new (buf) ee40351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee40351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(24,16), "ee40351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), 0, "ee40351");
+ check_base_class_offset(lv, (dd0351*), 0, "ee40351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40351.e");
+ test_class_info(&lv, &cd_ee40351);
+ dp->~ee40351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40351(Test_ee40351, "ee40351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40351C1Ev();
+extern void _ZN7ee40351D1Ev();
+Name_Map name_map_ee40351[] = {
+ NSPAIR(_ZN7ee40351C1Ev),
+ NSPAIR(_ZN7ee40351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee40351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN7ee403513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee403513barEv,_ZTv0_n16_N7ee403513barEv)();
+extern void ABISELECT(_ZThn24_N7ee403513barEv,_ZThn16_N7ee403513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN7ee403513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403513barEv,_ZTv0_n16_N7ee403513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee40351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee40351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee40351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee40351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee40351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee40351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee40351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee40351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40351[] = {
+ {&(_ZTV7ee40351[4]), 4,15},
+ {&(_tg__ZTV6dd0351__7ee40351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee40351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee40351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee40351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee40351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee40351[3]), 3,4},
+ {&(_ZTV7ee40351[10]), 10,15},
+ {&(_ZTV7ee40351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee40351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee40351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40351[];
+extern VTBL_ENTRY _ZTV7ee40351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40351[];
+static VTBL_ENTRY alt_thunk_names632[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403513barEv,_ZTv0_n16_N7ee403513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403513barEv,_ZThn16_N7ee403513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40351 = { "ee40351", // class name
+ bases_ee40351, 4,
+ &(vtc_ee40351[0]), // expected_vtbl_contents
+ &(vtt_ee40351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names632,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50351 : virtual dd0351 {
+ int e;
+ virtual void bar(); // _ZN7ee503513barEv
+ ~ee50351(); // tgen
+ ee50351(); // tgen
+};
+//SIG(1 ee50351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50351 ::bar(){vfunc_called(this, "_ZN7ee503513barEv");}
+ee50351 ::~ee50351(){ note_dtor("ee50351", this);} // tgen
+ee50351 ::ee50351(){ note_ctor("ee50351", this);} // tgen
+
+static void Test_ee50351()
+{
+ extern Class_Descriptor cd_ee50351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50351, buf);
+ ee50351 *dp, &lv = *(dp=new (buf) ee50351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee50351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(32,20), "ee50351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), ABISELECT(16,8), "ee50351");
+ check_base_class_offset(lv, (dd0351*), ABISELECT(16,8), "ee50351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50351.e");
+ test_class_info(&lv, &cd_ee50351);
+ dp->~ee50351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50351(Test_ee50351, "ee50351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50351C1Ev();
+extern void _ZN7ee50351D1Ev();
+Name_Map name_map_ee50351[] = {
+ NSPAIR(_ZN7ee50351C1Ev),
+ NSPAIR(_ZN7ee50351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee50351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50351[];
+extern void _ZN7ee503513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee503513barEv,_ZTv0_n16_N7ee503513barEv)();
+extern void ABISELECT(_ZThn32_N7ee503513barEv,_ZThn20_N7ee503513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50351[0]),
+ (VTBL_ENTRY)&_ZN7ee503513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503513barEv,_ZTv0_n16_N7ee503513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee50351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee50351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee50351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee50351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee50351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee50351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee50351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee50351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50351[] = {
+ {&(_ZTV7ee50351[5]), 5,21},
+ {&(_ZTV7ee50351[11]), 11,21},
+ {&(_ZTV7ee50351[16]), 16,21},
+ {&(_ZTV7ee50351[20]), 20,21},
+ {&(_tg__ZTV6dd0351__7ee50351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee50351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee50351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee50351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee50351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee50351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee50351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee50351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50351[];
+extern VTBL_ENTRY _ZTV7ee50351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50351[];
+static VTBL_ENTRY alt_thunk_names633[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503513barEv,_ZTv0_n16_N7ee503513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503513barEv,_ZThn20_N7ee503513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50351 = { "ee50351", // class name
+ bases_ee50351, 4,
+ &(vtc_ee50351[0]), // expected_vtbl_contents
+ &(vtt_ee50351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names633,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60351 : dd0351 {
+ int e;
+ virtual void foo(); // _ZN7ee603513fooEv
+ virtual void bar(); // _ZN7ee603513barEv
+ ~ee60351(); // tgen
+ ee60351(); // tgen
+};
+//SIG(1 ee60351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60351 ::foo(){vfunc_called(this, "_ZN7ee603513fooEv");}
+void ee60351 ::bar(){vfunc_called(this, "_ZN7ee603513barEv");}
+ee60351 ::~ee60351(){ note_dtor("ee60351", this);} // tgen
+ee60351 ::ee60351(){ note_ctor("ee60351", this);} // tgen
+
+static void Test_ee60351()
+{
+ extern Class_Descriptor cd_ee60351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60351, buf);
+ ee60351 *dp, &lv = *(dp=new (buf) ee60351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee60351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(24,16), "ee60351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), 0, "ee60351");
+ check_base_class_offset(lv, (dd0351*), 0, "ee60351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60351.e");
+ test_class_info(&lv, &cd_ee60351);
+ dp->~ee60351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60351(Test_ee60351, "ee60351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60351C1Ev();
+extern void _ZN7ee60351D1Ev();
+Name_Map name_map_ee60351[] = {
+ NSPAIR(_ZN7ee60351C1Ev),
+ NSPAIR(_ZN7ee60351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee60351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60351[];
+extern void _ZN7ee603513fooEv();
+extern void _ZN7ee603513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee603513barEv,_ZTv0_n16_N7ee603513barEv)();
+extern void ABISELECT(_ZThn24_N7ee603513barEv,_ZThn16_N7ee603513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee603513fooEv,_ZTv0_n12_N7ee603513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee603513fooEv,_ZThn24_N7ee603513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60351[0]),
+ (VTBL_ENTRY)&_ZN7ee603513fooEv,
+ (VTBL_ENTRY)&_ZN7ee603513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603513barEv,_ZTv0_n16_N7ee603513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603513fooEv,_ZTv0_n12_N7ee603513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee60351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee60351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee60351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee60351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee60351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee60351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee60351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee60351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60351[] = {
+ {&(_ZTV7ee60351[4]), 4,15},
+ {&(_tg__ZTV6dd0351__7ee60351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee60351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee60351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee60351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee60351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee60351[3]), 3,4},
+ {&(_ZTV7ee60351[10]), 10,15},
+ {&(_ZTV7ee60351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee60351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee60351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60351[];
+extern VTBL_ENTRY _ZTV7ee60351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60351[];
+static VTBL_ENTRY alt_thunk_names634[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603513fooEv,_ZTv0_n12_N7ee603513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee603513fooEv,_ZThn24_N7ee603513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603513barEv,_ZTv0_n16_N7ee603513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603513barEv,_ZThn16_N7ee603513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60351 = { "ee60351", // class name
+ bases_ee60351, 4,
+ &(vtc_ee60351[0]), // expected_vtbl_contents
+ &(vtt_ee60351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names634,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70351 : virtual dd0351 {
+ int e;
+ virtual void foo(); // _ZN7ee703513fooEv
+ virtual void bar(); // _ZN7ee703513barEv
+ ~ee70351(); // tgen
+ ee70351(); // tgen
+};
+//SIG(1 ee70351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70351 ::foo(){vfunc_called(this, "_ZN7ee703513fooEv");}
+void ee70351 ::bar(){vfunc_called(this, "_ZN7ee703513barEv");}
+ee70351 ::~ee70351(){ note_dtor("ee70351", this);} // tgen
+ee70351 ::ee70351(){ note_ctor("ee70351", this);} // tgen
+
+static void Test_ee70351()
+{
+ extern Class_Descriptor cd_ee70351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70351, buf);
+ ee70351 *dp, &lv = *(dp=new (buf) ee70351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee70351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd0351*), ABISELECT(32,20), "ee70351");
+ check_base_class_offset(lv, (cc351*)(dd0351*), ABISELECT(16,8), "ee70351");
+ check_base_class_offset(lv, (dd0351*), ABISELECT(16,8), "ee70351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70351.e");
+ test_class_info(&lv, &cd_ee70351);
+ dp->~ee70351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70351(Test_ee70351, "ee70351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70351C1Ev();
+extern void _ZN7ee70351D1Ev();
+Name_Map name_map_ee70351[] = {
+ NSPAIR(_ZN7ee70351C1Ev),
+ NSPAIR(_ZN7ee70351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd0351;
+extern VTBL_ENTRY _ZTI6dd0351[];
+extern VTBL_ENTRY _ZTV6dd0351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0351[];
+static Base_Class bases_ee70351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0351, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70351[];
+extern void _ZN7ee703513fooEv();
+extern void _ZN7ee703513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee703513fooEv,_ZTv0_n20_N7ee703513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703513fooEv,_ZThn8_N7ee703513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703513barEv,_ZTv0_n16_N7ee703513barEv)();
+extern void ABISELECT(_ZThn32_N7ee703513barEv,_ZThn20_N7ee703513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703513fooEv,_ZTv0_n12_N7ee703513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee703513fooEv,_ZThn28_N7ee703513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70351[0]),
+ (VTBL_ENTRY)&_ZN7ee703513fooEv,
+ (VTBL_ENTRY)&_ZN7ee703513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee703513fooEv,_ZTv0_n20_N7ee703513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703513barEv,_ZTv0_n16_N7ee703513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703513fooEv,_ZTv0_n12_N7ee703513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0351__7ee70351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd0351__7ee70351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd0351__7ee70351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd0351__7ee70351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0351__7ee70351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0351__7ee70351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee70351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee70351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70351[] = {
+ {&(_ZTV7ee70351[5]), 5,22},
+ {&(_ZTV7ee70351[12]), 12,22},
+ {&(_ZTV7ee70351[17]), 17,22},
+ {&(_ZTV7ee70351[21]), 21,22},
+ {&(_tg__ZTV6dd0351__7ee70351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd0351__7ee70351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd0351__7ee70351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd0351__7ee70351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0351__7ee70351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0351__7ee70351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee70351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee70351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70351[];
+extern VTBL_ENTRY _ZTV7ee70351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70351[];
+static VTBL_ENTRY alt_thunk_names635[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703513fooEv,_ZTv0_n12_N7ee703513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee703513fooEv,_ZThn28_N7ee703513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703513barEv,_ZTv0_n16_N7ee703513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703513barEv,_ZThn20_N7ee703513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee703513fooEv,_ZTv0_n20_N7ee703513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703513fooEv,_ZThn8_N7ee703513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70351 = { "ee70351", // class name
+ bases_ee70351, 4,
+ &(vtc_ee70351[0]), // expected_vtbl_contents
+ &(vtt_ee70351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names635,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1351 : virtual cc351 {
+ int d;
+ ~dd1351(); // tgen
+ dd1351(); // tgen
+};
+//SIG(-1 dd1351) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1351 ::~dd1351(){ note_dtor("dd1351", this);} // tgen
+dd1351 ::dd1351(){ note_ctor("dd1351", this);} // tgen
+
+static void Test_dd1351()
+{
+ extern Class_Descriptor cd_dd1351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1351, buf);
+ dd1351 *dp, &lv = *(dp=new (buf) dd1351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd1351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,16), "dd1351");
+ check_base_class_offset(lv, (cc351*), ABISELECT(16,8), "dd1351");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1351.d");
+ test_class_info(&lv, &cd_dd1351);
+ dp->~dd1351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1351(Test_dd1351, "dd1351", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1351C1Ev();
+extern void _ZN6dd1351D1Ev();
+Name_Map name_map_dd1351[] = {
+ NSPAIR(_ZN6dd1351C1Ev),
+ NSPAIR(_ZN6dd1351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd1351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd1351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd1351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd1351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd1351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1351[] = {
+ {&(_ZTV6dd1351[5]), 5,20},
+ {&(_ZTV6dd1351[10]), 10,20},
+ {&(_ZTV6dd1351[15]), 15,20},
+ {&(_ZTV6dd1351[19]), 19,20},
+ {&(_tg__ZTV5cc351__6dd1351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd1351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd1351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd1351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd1351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static VTBL_ENTRY alt_thunk_names636[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1351 = { "dd1351", // class name
+ bases_dd1351, 3,
+ &(vtc_dd1351[0]), // expected_vtbl_contents
+ &(vtt_dd1351[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1351),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1351),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names636,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01351 : dd1351 {
+ int e;
+ ~ee01351(); // tgen
+ ee01351(); // tgen
+};
+//SIG(1 ee01351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01351 ::~ee01351(){ note_dtor("ee01351", this);} // tgen
+ee01351 ::ee01351(){ note_ctor("ee01351", this);} // tgen
+
+static void Test_ee01351()
+{
+ extern Class_Descriptor cd_ee01351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01351, buf);
+ ee01351 *dp, &lv = *(dp=new (buf) ee01351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee01351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee01351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(16,12), "ee01351");
+ check_base_class_offset(lv, (dd1351*), 0, "ee01351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01351.e");
+ test_class_info(&lv, &cd_ee01351);
+ dp->~ee01351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01351(Test_ee01351, "ee01351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01351C1Ev();
+extern void _ZN7ee01351D1Ev();
+Name_Map name_map_ee01351[] = {
+ NSPAIR(_ZN7ee01351C1Ev),
+ NSPAIR(_ZN7ee01351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee01351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01351[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee01351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee01351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee01351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee01351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee01351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee01351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee01351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee01351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee01351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01351[] = {
+ {&(_ZTV7ee01351[5]), 5,20},
+ {&(_tg__ZTV6dd1351__7ee01351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee01351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee01351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee01351[3]), 3,4},
+ {&(_ZTV7ee01351[10]), 10,20},
+ {&(_ZTV7ee01351[15]), 15,20},
+ {&(_ZTV7ee01351[19]), 19,20},
+ {&(_tg__ZTV5cc351__7ee01351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee01351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee01351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee01351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee01351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01351[];
+extern VTBL_ENTRY _ZTV7ee01351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01351[];
+static VTBL_ENTRY alt_thunk_names637[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01351 = { "ee01351", // class name
+ bases_ee01351, 4,
+ &(vtc_ee01351[0]), // expected_vtbl_contents
+ &(vtt_ee01351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01351),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names637,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11351 : virtual dd1351 {
+ int e;
+ ~ee11351(); // tgen
+ ee11351(); // tgen
+};
+//SIG(1 ee11351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11351 ::~ee11351(){ note_dtor("ee11351", this);} // tgen
+ee11351 ::ee11351(){ note_ctor("ee11351", this);} // tgen
+
+static void Test_ee11351()
+{
+ extern Class_Descriptor cd_ee11351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11351, buf);
+ ee11351 *dp, &lv = *(dp=new (buf) ee11351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee11351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee11351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(32,16), "ee11351");
+ check_base_class_offset(lv, (dd1351*), ABISELECT(16,8), "ee11351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11351.e");
+ test_class_info(&lv, &cd_ee11351);
+ dp->~ee11351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11351(Test_ee11351, "ee11351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11351C1Ev();
+extern void _ZN7ee11351D1Ev();
+Name_Map name_map_ee11351[] = {
+ NSPAIR(_ZN7ee11351C1Ev),
+ NSPAIR(_ZN7ee11351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee11351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11351[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11351[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee11351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee11351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee11351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee11351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee11351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee11351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee11351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee11351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee11351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11351[] = {
+ {&(_ZTV7ee11351[6]), 6,26},
+ {&(_ZTV7ee11351[11]), 11,26},
+ {&(_ZTV7ee11351[16]), 16,26},
+ {&(_ZTV7ee11351[21]), 21,26},
+ {&(_ZTV7ee11351[25]), 25,26},
+ {&(_tg__ZTV6dd1351__7ee11351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee11351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee11351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee11351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee11351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee11351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee11351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee11351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee11351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11351[];
+extern VTBL_ENTRY _ZTV7ee11351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11351[];
+static VTBL_ENTRY alt_thunk_names638[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11351 = { "ee11351", // class name
+ bases_ee11351, 4,
+ &(vtc_ee11351[0]), // expected_vtbl_contents
+ &(vtt_ee11351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11351),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names638,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21351 : dd1351 {
+ int e;
+ virtual void foo(); // _ZN7ee213513fooEv
+ ~ee21351(); // tgen
+ ee21351(); // tgen
+};
+//SIG(1 ee21351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21351 ::foo(){vfunc_called(this, "_ZN7ee213513fooEv");}
+ee21351 ::~ee21351(){ note_dtor("ee21351", this);} // tgen
+ee21351 ::ee21351(){ note_ctor("ee21351", this);} // tgen
+
+static void Test_ee21351()
+{
+ extern Class_Descriptor cd_ee21351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21351, buf);
+ ee21351 *dp, &lv = *(dp=new (buf) ee21351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee21351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee21351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(16,12), "ee21351");
+ check_base_class_offset(lv, (dd1351*), 0, "ee21351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21351.e");
+ test_class_info(&lv, &cd_ee21351);
+ dp->~ee21351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21351(Test_ee21351, "ee21351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21351C1Ev();
+extern void _ZN7ee21351D1Ev();
+Name_Map name_map_ee21351[] = {
+ NSPAIR(_ZN7ee21351C1Ev),
+ NSPAIR(_ZN7ee21351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee21351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21351[];
+extern void _ZN7ee213513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee213513fooEv,_ZTv0_n20_N7ee213513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213513fooEv,_ZThn12_N7ee213513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee213513fooEv,_ZTv0_n12_N7ee213513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee213513fooEv,_ZThn28_N7ee213513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21351[0]),
+ (VTBL_ENTRY)&_ZN7ee213513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee213513fooEv,_ZTv0_n20_N7ee213513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213513fooEv,_ZTv0_n12_N7ee213513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee21351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee21351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee21351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee21351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee21351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee21351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee21351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee21351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee21351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21351[] = {
+ {&(_ZTV7ee21351[5]), 5,21},
+ {&(_tg__ZTV6dd1351__7ee21351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee21351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee21351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee21351[3]), 3,4},
+ {&(_ZTV7ee21351[11]), 11,21},
+ {&(_ZTV7ee21351[16]), 16,21},
+ {&(_ZTV7ee21351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee21351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee21351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee21351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee21351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee21351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21351[];
+extern VTBL_ENTRY _ZTV7ee21351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21351[];
+static VTBL_ENTRY alt_thunk_names639[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213513fooEv,_ZTv0_n12_N7ee213513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee213513fooEv,_ZThn28_N7ee213513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee213513fooEv,_ZTv0_n20_N7ee213513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213513fooEv,_ZThn12_N7ee213513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21351 = { "ee21351", // class name
+ bases_ee21351, 4,
+ &(vtc_ee21351[0]), // expected_vtbl_contents
+ &(vtt_ee21351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names639,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31351 : virtual dd1351 {
+ int e;
+ virtual void foo(); // _ZN7ee313513fooEv
+ ~ee31351(); // tgen
+ ee31351(); // tgen
+};
+//SIG(1 ee31351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31351 ::foo(){vfunc_called(this, "_ZN7ee313513fooEv");}
+ee31351 ::~ee31351(){ note_dtor("ee31351", this);} // tgen
+ee31351 ::ee31351(){ note_ctor("ee31351", this);} // tgen
+
+static void Test_ee31351()
+{
+ extern Class_Descriptor cd_ee31351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31351, buf);
+ ee31351 *dp, &lv = *(dp=new (buf) ee31351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee31351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee31351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(32,16), "ee31351");
+ check_base_class_offset(lv, (dd1351*), ABISELECT(16,8), "ee31351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31351.e");
+ test_class_info(&lv, &cd_ee31351);
+ dp->~ee31351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31351(Test_ee31351, "ee31351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31351C1Ev();
+extern void _ZN7ee31351D1Ev();
+Name_Map name_map_ee31351[] = {
+ NSPAIR(_ZN7ee31351C1Ev),
+ NSPAIR(_ZN7ee31351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee31351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31351[];
+extern void _ZN7ee313513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee313513fooEv,_ZTv0_n20_N7ee313513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313513fooEv,_ZThn16_N7ee313513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee313513fooEv,_ZTv0_n12_N7ee313513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee313513fooEv,_ZThn32_N7ee313513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31351[0]),
+ (VTBL_ENTRY)&_ZN7ee313513fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31351[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee313513fooEv,_ZTv0_n20_N7ee313513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313513fooEv,_ZTv0_n12_N7ee313513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee31351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee31351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee31351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee31351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee31351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee31351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee31351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee31351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee31351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31351[] = {
+ {&(_ZTV7ee31351[6]), 6,27},
+ {&(_ZTV7ee31351[12]), 12,27},
+ {&(_ZTV7ee31351[17]), 17,27},
+ {&(_ZTV7ee31351[22]), 22,27},
+ {&(_ZTV7ee31351[26]), 26,27},
+ {&(_tg__ZTV6dd1351__7ee31351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee31351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee31351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee31351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee31351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee31351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee31351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee31351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee31351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31351[];
+extern VTBL_ENTRY _ZTV7ee31351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31351[];
+static VTBL_ENTRY alt_thunk_names640[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313513fooEv,_ZTv0_n12_N7ee313513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee313513fooEv,_ZThn32_N7ee313513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee313513fooEv,_ZTv0_n20_N7ee313513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313513fooEv,_ZThn16_N7ee313513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31351 = { "ee31351", // class name
+ bases_ee31351, 4,
+ &(vtc_ee31351[0]), // expected_vtbl_contents
+ &(vtt_ee31351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31351),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names640,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41351 : dd1351 {
+ int e;
+ virtual void bar(); // _ZN7ee413513barEv
+ ~ee41351(); // tgen
+ ee41351(); // tgen
+};
+//SIG(1 ee41351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41351 ::bar(){vfunc_called(this, "_ZN7ee413513barEv");}
+ee41351 ::~ee41351(){ note_dtor("ee41351", this);} // tgen
+ee41351 ::ee41351(){ note_ctor("ee41351", this);} // tgen
+
+static void Test_ee41351()
+{
+ extern Class_Descriptor cd_ee41351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41351, buf);
+ ee41351 *dp, &lv = *(dp=new (buf) ee41351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee41351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee41351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(16,12), "ee41351");
+ check_base_class_offset(lv, (dd1351*), 0, "ee41351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41351.e");
+ test_class_info(&lv, &cd_ee41351);
+ dp->~ee41351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41351(Test_ee41351, "ee41351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41351C1Ev();
+extern void _ZN7ee41351D1Ev();
+Name_Map name_map_ee41351[] = {
+ NSPAIR(_ZN7ee41351C1Ev),
+ NSPAIR(_ZN7ee41351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee41351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41351[];
+extern void _ZN7ee413513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee413513barEv,_ZTv0_n16_N7ee413513barEv)();
+extern void ABISELECT(_ZThn32_N7ee413513barEv,_ZThn20_N7ee413513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41351[0]),
+ (VTBL_ENTRY)&_ZN7ee413513barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413513barEv,_ZTv0_n16_N7ee413513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee41351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee41351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee41351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee41351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee41351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee41351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee41351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee41351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee41351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41351[] = {
+ {&(_ZTV7ee41351[5]), 5,21},
+ {&(_tg__ZTV6dd1351__7ee41351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee41351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee41351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee41351[3]), 3,4},
+ {&(_ZTV7ee41351[11]), 11,21},
+ {&(_ZTV7ee41351[16]), 16,21},
+ {&(_ZTV7ee41351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee41351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee41351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee41351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee41351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee41351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41351[];
+extern VTBL_ENTRY _ZTV7ee41351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41351[];
+static VTBL_ENTRY alt_thunk_names641[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413513barEv,_ZTv0_n16_N7ee413513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413513barEv,_ZThn20_N7ee413513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41351 = { "ee41351", // class name
+ bases_ee41351, 4,
+ &(vtc_ee41351[0]), // expected_vtbl_contents
+ &(vtt_ee41351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names641,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51351 : virtual dd1351 {
+ int e;
+ virtual void bar(); // _ZN7ee513513barEv
+ ~ee51351(); // tgen
+ ee51351(); // tgen
+};
+//SIG(1 ee51351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51351 ::bar(){vfunc_called(this, "_ZN7ee513513barEv");}
+ee51351 ::~ee51351(){ note_dtor("ee51351", this);} // tgen
+ee51351 ::ee51351(){ note_ctor("ee51351", this);} // tgen
+
+static void Test_ee51351()
+{
+ extern Class_Descriptor cd_ee51351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51351, buf);
+ ee51351 *dp, &lv = *(dp=new (buf) ee51351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee51351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee51351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(32,16), "ee51351");
+ check_base_class_offset(lv, (dd1351*), ABISELECT(16,8), "ee51351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51351.e");
+ test_class_info(&lv, &cd_ee51351);
+ dp->~ee51351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51351(Test_ee51351, "ee51351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51351C1Ev();
+extern void _ZN7ee51351D1Ev();
+Name_Map name_map_ee51351[] = {
+ NSPAIR(_ZN7ee51351C1Ev),
+ NSPAIR(_ZN7ee51351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee51351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51351[];
+extern void _ZN7ee513513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee513513barEv,_ZTv0_n16_N7ee513513barEv)();
+extern void ABISELECT(_ZThn48_N7ee513513barEv,_ZThn24_N7ee513513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51351[0]),
+ (VTBL_ENTRY)&_ZN7ee513513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51351[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513513barEv,_ZTv0_n16_N7ee513513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee51351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee51351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee51351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee51351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee51351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee51351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee51351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee51351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee51351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51351[] = {
+ {&(_ZTV7ee51351[6]), 6,27},
+ {&(_ZTV7ee51351[12]), 12,27},
+ {&(_ZTV7ee51351[17]), 17,27},
+ {&(_ZTV7ee51351[22]), 22,27},
+ {&(_ZTV7ee51351[26]), 26,27},
+ {&(_tg__ZTV6dd1351__7ee51351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee51351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee51351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee51351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee51351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee51351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee51351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee51351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee51351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51351[];
+extern VTBL_ENTRY _ZTV7ee51351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51351[];
+static VTBL_ENTRY alt_thunk_names642[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513513barEv,_ZTv0_n16_N7ee513513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513513barEv,_ZThn24_N7ee513513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51351 = { "ee51351", // class name
+ bases_ee51351, 4,
+ &(vtc_ee51351[0]), // expected_vtbl_contents
+ &(vtt_ee51351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51351),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names642,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61351 : dd1351 {
+ int e;
+ virtual void foo(); // _ZN7ee613513fooEv
+ virtual void bar(); // _ZN7ee613513barEv
+ ~ee61351(); // tgen
+ ee61351(); // tgen
+};
+//SIG(1 ee61351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61351 ::foo(){vfunc_called(this, "_ZN7ee613513fooEv");}
+void ee61351 ::bar(){vfunc_called(this, "_ZN7ee613513barEv");}
+ee61351 ::~ee61351(){ note_dtor("ee61351", this);} // tgen
+ee61351 ::ee61351(){ note_ctor("ee61351", this);} // tgen
+
+static void Test_ee61351()
+{
+ extern Class_Descriptor cd_ee61351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61351, buf);
+ ee61351 *dp, &lv = *(dp=new (buf) ee61351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee61351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee61351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(16,12), "ee61351");
+ check_base_class_offset(lv, (dd1351*), 0, "ee61351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61351.e");
+ test_class_info(&lv, &cd_ee61351);
+ dp->~ee61351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61351(Test_ee61351, "ee61351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61351C1Ev();
+extern void _ZN7ee61351D1Ev();
+Name_Map name_map_ee61351[] = {
+ NSPAIR(_ZN7ee61351C1Ev),
+ NSPAIR(_ZN7ee61351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee61351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61351[];
+extern void _ZN7ee613513fooEv();
+extern void _ZN7ee613513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee613513fooEv,_ZTv0_n20_N7ee613513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613513fooEv,_ZThn12_N7ee613513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613513barEv,_ZTv0_n16_N7ee613513barEv)();
+extern void ABISELECT(_ZThn32_N7ee613513barEv,_ZThn20_N7ee613513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613513fooEv,_ZTv0_n12_N7ee613513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee613513fooEv,_ZThn28_N7ee613513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61351[0]),
+ (VTBL_ENTRY)&_ZN7ee613513fooEv,
+ (VTBL_ENTRY)&_ZN7ee613513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee613513fooEv,_ZTv0_n20_N7ee613513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613513barEv,_ZTv0_n16_N7ee613513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613513fooEv,_ZTv0_n12_N7ee613513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee61351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee61351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee61351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee61351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee61351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee61351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee61351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee61351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee61351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61351[] = {
+ {&(_ZTV7ee61351[5]), 5,22},
+ {&(_tg__ZTV6dd1351__7ee61351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee61351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee61351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee61351[3]), 3,4},
+ {&(_ZTV7ee61351[12]), 12,22},
+ {&(_ZTV7ee61351[17]), 17,22},
+ {&(_ZTV7ee61351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee61351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee61351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee61351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee61351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee61351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61351[];
+extern VTBL_ENTRY _ZTV7ee61351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61351[];
+static VTBL_ENTRY alt_thunk_names643[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613513fooEv,_ZTv0_n12_N7ee613513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee613513fooEv,_ZThn28_N7ee613513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613513barEv,_ZTv0_n16_N7ee613513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613513barEv,_ZThn20_N7ee613513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee613513fooEv,_ZTv0_n20_N7ee613513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613513fooEv,_ZThn12_N7ee613513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61351 = { "ee61351", // class name
+ bases_ee61351, 4,
+ &(vtc_ee61351[0]), // expected_vtbl_contents
+ &(vtt_ee61351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names643,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71351 : virtual dd1351 {
+ int e;
+ virtual void foo(); // _ZN7ee713513fooEv
+ virtual void bar(); // _ZN7ee713513barEv
+ ~ee71351(); // tgen
+ ee71351(); // tgen
+};
+//SIG(1 ee71351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71351 ::foo(){vfunc_called(this, "_ZN7ee713513fooEv");}
+void ee71351 ::bar(){vfunc_called(this, "_ZN7ee713513barEv");}
+ee71351 ::~ee71351(){ note_dtor("ee71351", this);} // tgen
+ee71351 ::ee71351(){ note_ctor("ee71351", this);} // tgen
+
+static void Test_ee71351()
+{
+ extern Class_Descriptor cd_ee71351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71351, buf);
+ ee71351 *dp, &lv = *(dp=new (buf) ee71351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee71351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee71351");
+ check_base_class_offset(lv, (cc351*)(dd1351*), ABISELECT(32,16), "ee71351");
+ check_base_class_offset(lv, (dd1351*), ABISELECT(16,8), "ee71351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71351.e");
+ test_class_info(&lv, &cd_ee71351);
+ dp->~ee71351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71351(Test_ee71351, "ee71351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71351C1Ev();
+extern void _ZN7ee71351D1Ev();
+Name_Map name_map_ee71351[] = {
+ NSPAIR(_ZN7ee71351C1Ev),
+ NSPAIR(_ZN7ee71351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd1351;
+extern VTBL_ENTRY _ZTI6dd1351[];
+extern VTBL_ENTRY _ZTV6dd1351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1351[];
+static Base_Class bases_ee71351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1351, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71351[];
+extern void _ZN7ee713513fooEv();
+extern void _ZN7ee713513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee713513fooEv,_ZTv0_n20_N7ee713513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713513fooEv,_ZThn16_N7ee713513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713513barEv,_ZTv0_n16_N7ee713513barEv)();
+extern void ABISELECT(_ZThn48_N7ee713513barEv,_ZThn24_N7ee713513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713513fooEv,_ZTv0_n12_N7ee713513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee713513fooEv,_ZThn32_N7ee713513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71351[0]),
+ (VTBL_ENTRY)&_ZN7ee713513fooEv,
+ (VTBL_ENTRY)&_ZN7ee713513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71351[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee713513fooEv,_ZTv0_n20_N7ee713513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713513barEv,_ZTv0_n16_N7ee713513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713513fooEv,_ZTv0_n12_N7ee713513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71351[];
+static VTBL_ENTRY _tg__ZTV6dd1351__7ee71351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd1351__7ee71351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1351__7ee71351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1351__7ee71351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee71351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee71351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee71351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee71351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee71351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71351[] = {
+ {&(_ZTV7ee71351[6]), 6,28},
+ {&(_ZTV7ee71351[13]), 13,28},
+ {&(_ZTV7ee71351[18]), 18,28},
+ {&(_ZTV7ee71351[23]), 23,28},
+ {&(_ZTV7ee71351[27]), 27,28},
+ {&(_tg__ZTV6dd1351__7ee71351[5]), 5,5},
+ {&(_tg__ZTV5cc351__6dd1351__7ee71351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1351__7ee71351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1351__7ee71351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee71351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee71351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee71351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee71351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee71351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71351[];
+extern VTBL_ENTRY _ZTV7ee71351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71351[];
+static VTBL_ENTRY alt_thunk_names644[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713513fooEv,_ZTv0_n12_N7ee713513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee713513fooEv,_ZThn32_N7ee713513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713513barEv,_ZTv0_n16_N7ee713513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713513barEv,_ZThn24_N7ee713513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee713513fooEv,_ZTv0_n20_N7ee713513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713513fooEv,_ZThn16_N7ee713513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71351 = { "ee71351", // class name
+ bases_ee71351, 4,
+ &(vtc_ee71351[0]), // expected_vtbl_contents
+ &(vtt_ee71351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71351),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names644,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2351 : cc351 {
+ int d;
+ virtual void foo(); // _ZN6dd23513fooEv
+ ~dd2351(); // tgen
+ dd2351(); // tgen
+};
+//SIG(-1 dd2351) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2351 ::foo(){vfunc_called(this, "_ZN6dd23513fooEv");}
+dd2351 ::~dd2351(){ note_dtor("dd2351", this);} // tgen
+dd2351 ::dd2351(){ note_ctor("dd2351", this);} // tgen
+
+static void Test_dd2351()
+{
+ extern Class_Descriptor cd_dd2351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2351, buf);
+ dd2351 *dp, &lv = *(dp=new (buf) dd2351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd2351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(16,12), "dd2351");
+ check_base_class_offset(lv, (cc351*), 0, "dd2351");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2351.d");
+ test_class_info(&lv, &cd_dd2351);
+ dp->~dd2351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2351(Test_dd2351, "dd2351", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2351C1Ev();
+extern void _ZN6dd2351D1Ev();
+Name_Map name_map_dd2351[] = {
+ NSPAIR(_ZN6dd2351C1Ev),
+ NSPAIR(_ZN6dd2351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd2351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern void _ZN6dd23513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd2351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd2351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd2351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd2351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2351[] = {
+ {&(_ZTV6dd2351[4]), 4,14},
+ {&(_tg__ZTV5cc351__6dd2351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd2351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd2351[3]), 3,4},
+ {&(_ZTV6dd2351[9]), 9,14},
+ {&(_ZTV6dd2351[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd2351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd2351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static VTBL_ENTRY alt_thunk_names645[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2351 = { "dd2351", // class name
+ bases_dd2351, 3,
+ &(vtc_dd2351[0]), // expected_vtbl_contents
+ &(vtt_dd2351[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2351),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names645,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02351 : dd2351 {
+ int e;
+ ~ee02351(); // tgen
+ ee02351(); // tgen
+};
+//SIG(1 ee02351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02351 ::~ee02351(){ note_dtor("ee02351", this);} // tgen
+ee02351 ::ee02351(){ note_ctor("ee02351", this);} // tgen
+
+static void Test_ee02351()
+{
+ extern Class_Descriptor cd_ee02351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02351, buf);
+ ee02351 *dp, &lv = *(dp=new (buf) ee02351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee02351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(24,16), "ee02351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), 0, "ee02351");
+ check_base_class_offset(lv, (dd2351*), 0, "ee02351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02351.e");
+ test_class_info(&lv, &cd_ee02351);
+ dp->~ee02351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02351(Test_ee02351, "ee02351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02351C1Ev();
+extern void _ZN7ee02351D1Ev();
+Name_Map name_map_ee02351[] = {
+ NSPAIR(_ZN7ee02351C1Ev),
+ NSPAIR(_ZN7ee02351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee02351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02351[];
+extern void _ZN6dd23513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee02351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee02351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee02351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee02351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee02351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee02351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee02351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee02351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee02351[] = {
+ {&(_ZTV7ee02351[4]), 4,14},
+ {&(_tg__ZTV6dd2351__7ee02351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee02351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee02351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee02351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee02351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee02351[3]), 3,4},
+ {&(_ZTV7ee02351[9]), 9,14},
+ {&(_ZTV7ee02351[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee02351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee02351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02351[];
+extern VTBL_ENTRY _ZTV7ee02351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02351[];
+static VTBL_ENTRY alt_thunk_names646[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02351 = { "ee02351", // class name
+ bases_ee02351, 4,
+ &(vtc_ee02351[0]), // expected_vtbl_contents
+ &(vtt_ee02351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names646,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12351 : virtual dd2351 {
+ int e;
+ ~ee12351(); // tgen
+ ee12351(); // tgen
+};
+//SIG(1 ee12351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12351 ::~ee12351(){ note_dtor("ee12351", this);} // tgen
+ee12351 ::ee12351(){ note_ctor("ee12351", this);} // tgen
+
+static void Test_ee12351()
+{
+ extern Class_Descriptor cd_ee12351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12351, buf);
+ ee12351 *dp, &lv = *(dp=new (buf) ee12351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee12351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(32,20), "ee12351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), ABISELECT(16,8), "ee12351");
+ check_base_class_offset(lv, (dd2351*), ABISELECT(16,8), "ee12351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12351.e");
+ test_class_info(&lv, &cd_ee12351);
+ dp->~ee12351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12351(Test_ee12351, "ee12351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12351C1Ev();
+extern void _ZN7ee12351D1Ev();
+Name_Map name_map_ee12351[] = {
+ NSPAIR(_ZN7ee12351C1Ev),
+ NSPAIR(_ZN7ee12351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee12351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12351[];
+extern void _ZN6dd23513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12351[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee12351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee12351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee12351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee12351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee12351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee12351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee12351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee12351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee12351[] = {
+ {&(_ZTV7ee12351[5]), 5,20},
+ {&(_ZTV7ee12351[10]), 10,20},
+ {&(_ZTV7ee12351[15]), 15,20},
+ {&(_ZTV7ee12351[19]), 19,20},
+ {&(_tg__ZTV6dd2351__7ee12351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee12351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee12351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee12351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee12351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee12351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee12351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee12351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12351[];
+extern VTBL_ENTRY _ZTV7ee12351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12351[];
+static VTBL_ENTRY alt_thunk_names647[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12351 = { "ee12351", // class name
+ bases_ee12351, 4,
+ &(vtc_ee12351[0]), // expected_vtbl_contents
+ &(vtt_ee12351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12351),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names647,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22351 : dd2351 {
+ int e;
+ virtual void foo(); // _ZN7ee223513fooEv
+ ~ee22351(); // tgen
+ ee22351(); // tgen
+};
+//SIG(1 ee22351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22351 ::foo(){vfunc_called(this, "_ZN7ee223513fooEv");}
+ee22351 ::~ee22351(){ note_dtor("ee22351", this);} // tgen
+ee22351 ::ee22351(){ note_ctor("ee22351", this);} // tgen
+
+static void Test_ee22351()
+{
+ extern Class_Descriptor cd_ee22351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22351, buf);
+ ee22351 *dp, &lv = *(dp=new (buf) ee22351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee22351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(24,16), "ee22351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), 0, "ee22351");
+ check_base_class_offset(lv, (dd2351*), 0, "ee22351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22351.e");
+ test_class_info(&lv, &cd_ee22351);
+ dp->~ee22351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22351(Test_ee22351, "ee22351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22351C1Ev();
+extern void _ZN7ee22351D1Ev();
+Name_Map name_map_ee22351[] = {
+ NSPAIR(_ZN7ee22351C1Ev),
+ NSPAIR(_ZN7ee22351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee22351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22351[];
+extern void _ZN7ee223513fooEv();
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223513fooEv,_ZTv0_n12_N7ee223513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee223513fooEv,_ZThn24_N7ee223513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22351[0]),
+ (VTBL_ENTRY)&_ZN7ee223513fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223513fooEv,_ZTv0_n12_N7ee223513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee22351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee22351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee22351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee22351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee22351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee22351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee22351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee22351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee22351[] = {
+ {&(_ZTV7ee22351[4]), 4,14},
+ {&(_tg__ZTV6dd2351__7ee22351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee22351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee22351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee22351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee22351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee22351[3]), 3,4},
+ {&(_ZTV7ee22351[9]), 9,14},
+ {&(_ZTV7ee22351[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee22351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee22351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22351[];
+extern VTBL_ENTRY _ZTV7ee22351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22351[];
+static VTBL_ENTRY alt_thunk_names648[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223513fooEv,_ZTv0_n12_N7ee223513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee223513fooEv,_ZThn24_N7ee223513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22351 = { "ee22351", // class name
+ bases_ee22351, 4,
+ &(vtc_ee22351[0]), // expected_vtbl_contents
+ &(vtt_ee22351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22351),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names648,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32351 : virtual dd2351 {
+ int e;
+ virtual void foo(); // _ZN7ee323513fooEv
+ ~ee32351(); // tgen
+ ee32351(); // tgen
+};
+//SIG(1 ee32351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32351 ::foo(){vfunc_called(this, "_ZN7ee323513fooEv");}
+ee32351 ::~ee32351(){ note_dtor("ee32351", this);} // tgen
+ee32351 ::ee32351(){ note_ctor("ee32351", this);} // tgen
+
+static void Test_ee32351()
+{
+ extern Class_Descriptor cd_ee32351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32351, buf);
+ ee32351 *dp, &lv = *(dp=new (buf) ee32351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee32351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(32,20), "ee32351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), ABISELECT(16,8), "ee32351");
+ check_base_class_offset(lv, (dd2351*), ABISELECT(16,8), "ee32351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32351.e");
+ test_class_info(&lv, &cd_ee32351);
+ dp->~ee32351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32351(Test_ee32351, "ee32351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32351C1Ev();
+extern void _ZN7ee32351D1Ev();
+Name_Map name_map_ee32351[] = {
+ NSPAIR(_ZN7ee32351C1Ev),
+ NSPAIR(_ZN7ee32351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee32351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32351[];
+extern void _ZN7ee323513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee323513fooEv,_ZTv0_n20_N7ee323513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323513fooEv,_ZThn8_N7ee323513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee323513fooEv,_ZTv0_n12_N7ee323513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee323513fooEv,_ZThn28_N7ee323513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32351[0]),
+ (VTBL_ENTRY)&_ZN7ee323513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee323513fooEv,_ZTv0_n20_N7ee323513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323513fooEv,_ZTv0_n12_N7ee323513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee32351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee32351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee32351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee32351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee32351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee32351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee32351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee32351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee32351[] = {
+ {&(_ZTV7ee32351[5]), 5,21},
+ {&(_ZTV7ee32351[11]), 11,21},
+ {&(_ZTV7ee32351[16]), 16,21},
+ {&(_ZTV7ee32351[20]), 20,21},
+ {&(_tg__ZTV6dd2351__7ee32351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee32351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee32351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee32351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee32351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee32351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee32351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee32351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32351[];
+extern VTBL_ENTRY _ZTV7ee32351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32351[];
+static VTBL_ENTRY alt_thunk_names649[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323513fooEv,_ZTv0_n12_N7ee323513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee323513fooEv,_ZThn28_N7ee323513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee323513fooEv,_ZTv0_n20_N7ee323513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323513fooEv,_ZThn8_N7ee323513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32351 = { "ee32351", // class name
+ bases_ee32351, 4,
+ &(vtc_ee32351[0]), // expected_vtbl_contents
+ &(vtt_ee32351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names649,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42351 : dd2351 {
+ int e;
+ virtual void bar(); // _ZN7ee423513barEv
+ ~ee42351(); // tgen
+ ee42351(); // tgen
+};
+//SIG(1 ee42351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42351 ::bar(){vfunc_called(this, "_ZN7ee423513barEv");}
+ee42351 ::~ee42351(){ note_dtor("ee42351", this);} // tgen
+ee42351 ::ee42351(){ note_ctor("ee42351", this);} // tgen
+
+static void Test_ee42351()
+{
+ extern Class_Descriptor cd_ee42351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42351, buf);
+ ee42351 *dp, &lv = *(dp=new (buf) ee42351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee42351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(24,16), "ee42351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), 0, "ee42351");
+ check_base_class_offset(lv, (dd2351*), 0, "ee42351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42351.e");
+ test_class_info(&lv, &cd_ee42351);
+ dp->~ee42351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42351(Test_ee42351, "ee42351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42351C1Ev();
+extern void _ZN7ee42351D1Ev();
+Name_Map name_map_ee42351[] = {
+ NSPAIR(_ZN7ee42351C1Ev),
+ NSPAIR(_ZN7ee42351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee42351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42351[];
+extern void _ZN6dd23513fooEv();
+extern void _ZN7ee423513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee423513barEv,_ZTv0_n16_N7ee423513barEv)();
+extern void ABISELECT(_ZThn24_N7ee423513barEv,_ZThn16_N7ee423513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+ (VTBL_ENTRY)&_ZN7ee423513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423513barEv,_ZTv0_n16_N7ee423513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee42351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee42351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee42351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee42351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee42351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee42351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee42351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee42351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee42351[] = {
+ {&(_ZTV7ee42351[4]), 4,15},
+ {&(_tg__ZTV6dd2351__7ee42351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee42351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee42351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee42351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee42351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee42351[3]), 3,4},
+ {&(_ZTV7ee42351[10]), 10,15},
+ {&(_ZTV7ee42351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee42351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee42351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42351[];
+extern VTBL_ENTRY _ZTV7ee42351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42351[];
+static VTBL_ENTRY alt_thunk_names650[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423513barEv,_ZTv0_n16_N7ee423513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423513barEv,_ZThn16_N7ee423513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42351 = { "ee42351", // class name
+ bases_ee42351, 4,
+ &(vtc_ee42351[0]), // expected_vtbl_contents
+ &(vtt_ee42351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names650,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52351 : virtual dd2351 {
+ int e;
+ virtual void bar(); // _ZN7ee523513barEv
+ ~ee52351(); // tgen
+ ee52351(); // tgen
+};
+//SIG(1 ee52351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52351 ::bar(){vfunc_called(this, "_ZN7ee523513barEv");}
+ee52351 ::~ee52351(){ note_dtor("ee52351", this);} // tgen
+ee52351 ::ee52351(){ note_ctor("ee52351", this);} // tgen
+
+static void Test_ee52351()
+{
+ extern Class_Descriptor cd_ee52351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52351, buf);
+ ee52351 *dp, &lv = *(dp=new (buf) ee52351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee52351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(32,20), "ee52351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), ABISELECT(16,8), "ee52351");
+ check_base_class_offset(lv, (dd2351*), ABISELECT(16,8), "ee52351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52351.e");
+ test_class_info(&lv, &cd_ee52351);
+ dp->~ee52351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52351(Test_ee52351, "ee52351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52351C1Ev();
+extern void _ZN7ee52351D1Ev();
+Name_Map name_map_ee52351[] = {
+ NSPAIR(_ZN7ee52351C1Ev),
+ NSPAIR(_ZN7ee52351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee52351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52351[];
+extern void _ZN7ee523513barEv();
+extern void _ZN6dd23513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee523513barEv,_ZTv0_n16_N7ee523513barEv)();
+extern void ABISELECT(_ZThn32_N7ee523513barEv,_ZThn20_N7ee523513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52351[0]),
+ (VTBL_ENTRY)&_ZN7ee523513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523513barEv,_ZTv0_n16_N7ee523513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee52351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee52351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee52351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee52351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee52351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee52351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee52351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee52351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee52351[] = {
+ {&(_ZTV7ee52351[5]), 5,21},
+ {&(_ZTV7ee52351[11]), 11,21},
+ {&(_ZTV7ee52351[16]), 16,21},
+ {&(_ZTV7ee52351[20]), 20,21},
+ {&(_tg__ZTV6dd2351__7ee52351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee52351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee52351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee52351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee52351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee52351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee52351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee52351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52351[];
+extern VTBL_ENTRY _ZTV7ee52351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52351[];
+static VTBL_ENTRY alt_thunk_names651[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523513barEv,_ZTv0_n16_N7ee523513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523513barEv,_ZThn20_N7ee523513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52351 = { "ee52351", // class name
+ bases_ee52351, 4,
+ &(vtc_ee52351[0]), // expected_vtbl_contents
+ &(vtt_ee52351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names651,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62351 : dd2351 {
+ int e;
+ virtual void foo(); // _ZN7ee623513fooEv
+ virtual void bar(); // _ZN7ee623513barEv
+ ~ee62351(); // tgen
+ ee62351(); // tgen
+};
+//SIG(1 ee62351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62351 ::foo(){vfunc_called(this, "_ZN7ee623513fooEv");}
+void ee62351 ::bar(){vfunc_called(this, "_ZN7ee623513barEv");}
+ee62351 ::~ee62351(){ note_dtor("ee62351", this);} // tgen
+ee62351 ::ee62351(){ note_ctor("ee62351", this);} // tgen
+
+static void Test_ee62351()
+{
+ extern Class_Descriptor cd_ee62351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62351, buf);
+ ee62351 *dp, &lv = *(dp=new (buf) ee62351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee62351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(24,16), "ee62351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), 0, "ee62351");
+ check_base_class_offset(lv, (dd2351*), 0, "ee62351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62351.e");
+ test_class_info(&lv, &cd_ee62351);
+ dp->~ee62351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62351(Test_ee62351, "ee62351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62351C1Ev();
+extern void _ZN7ee62351D1Ev();
+Name_Map name_map_ee62351[] = {
+ NSPAIR(_ZN7ee62351C1Ev),
+ NSPAIR(_ZN7ee62351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee62351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62351[];
+extern void _ZN7ee623513fooEv();
+extern void _ZN7ee623513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee623513barEv,_ZTv0_n16_N7ee623513barEv)();
+extern void ABISELECT(_ZThn24_N7ee623513barEv,_ZThn16_N7ee623513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee623513fooEv,_ZTv0_n12_N7ee623513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee623513fooEv,_ZThn24_N7ee623513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62351[0]),
+ (VTBL_ENTRY)&_ZN7ee623513fooEv,
+ (VTBL_ENTRY)&_ZN7ee623513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623513barEv,_ZTv0_n16_N7ee623513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623513fooEv,_ZTv0_n12_N7ee623513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee62351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee62351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee62351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee62351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee62351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee62351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee62351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee62351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee62351[] = {
+ {&(_ZTV7ee62351[4]), 4,15},
+ {&(_tg__ZTV6dd2351__7ee62351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee62351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee62351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee62351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee62351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee62351[3]), 3,4},
+ {&(_ZTV7ee62351[10]), 10,15},
+ {&(_ZTV7ee62351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee62351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee62351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62351[];
+extern VTBL_ENTRY _ZTV7ee62351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62351[];
+static VTBL_ENTRY alt_thunk_names652[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23513fooEv,_ZThn24_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623513fooEv,_ZTv0_n12_N7ee623513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee623513fooEv,_ZThn24_N7ee623513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623513barEv,_ZTv0_n16_N7ee623513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623513barEv,_ZThn16_N7ee623513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62351 = { "ee62351", // class name
+ bases_ee62351, 4,
+ &(vtc_ee62351[0]), // expected_vtbl_contents
+ &(vtt_ee62351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names652,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72351 : virtual dd2351 {
+ int e;
+ virtual void foo(); // _ZN7ee723513fooEv
+ virtual void bar(); // _ZN7ee723513barEv
+ ~ee72351(); // tgen
+ ee72351(); // tgen
+};
+//SIG(1 ee72351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72351 ::foo(){vfunc_called(this, "_ZN7ee723513fooEv");}
+void ee72351 ::bar(){vfunc_called(this, "_ZN7ee723513barEv");}
+ee72351 ::~ee72351(){ note_dtor("ee72351", this);} // tgen
+ee72351 ::ee72351(){ note_ctor("ee72351", this);} // tgen
+
+static void Test_ee72351()
+{
+ extern Class_Descriptor cd_ee72351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72351, buf);
+ ee72351 *dp, &lv = *(dp=new (buf) ee72351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee72351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd2351*), ABISELECT(32,20), "ee72351");
+ check_base_class_offset(lv, (cc351*)(dd2351*), ABISELECT(16,8), "ee72351");
+ check_base_class_offset(lv, (dd2351*), ABISELECT(16,8), "ee72351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72351.e");
+ test_class_info(&lv, &cd_ee72351);
+ dp->~ee72351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72351(Test_ee72351, "ee72351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72351C1Ev();
+extern void _ZN7ee72351D1Ev();
+Name_Map name_map_ee72351[] = {
+ NSPAIR(_ZN7ee72351C1Ev),
+ NSPAIR(_ZN7ee72351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd2351;
+extern VTBL_ENTRY _ZTI6dd2351[];
+extern VTBL_ENTRY _ZTV6dd2351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2351[];
+static Base_Class bases_ee72351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2351, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72351[];
+extern void _ZN7ee723513fooEv();
+extern void _ZN7ee723513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee723513fooEv,_ZTv0_n20_N7ee723513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723513fooEv,_ZThn8_N7ee723513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723513barEv,_ZTv0_n16_N7ee723513barEv)();
+extern void ABISELECT(_ZThn32_N7ee723513barEv,_ZThn20_N7ee723513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723513fooEv,_ZTv0_n12_N7ee723513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee723513fooEv,_ZThn28_N7ee723513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72351[0]),
+ (VTBL_ENTRY)&_ZN7ee723513fooEv,
+ (VTBL_ENTRY)&_ZN7ee723513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee723513fooEv,_ZTv0_n20_N7ee723513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723513barEv,_ZTv0_n16_N7ee723513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723513fooEv,_ZTv0_n12_N7ee723513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72351[];
+extern void _ZN6dd23513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2351__7ee72351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN6dd23513fooEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd2351__7ee72351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd2351__7ee72351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd2351__7ee72351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2351__7ee72351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2351__7ee72351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee72351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee72351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee72351[] = {
+ {&(_ZTV7ee72351[5]), 5,22},
+ {&(_ZTV7ee72351[12]), 12,22},
+ {&(_ZTV7ee72351[17]), 17,22},
+ {&(_ZTV7ee72351[21]), 21,22},
+ {&(_tg__ZTV6dd2351__7ee72351[4]), 4,5},
+ {&(_tg__ZTV5cc3516dd2351__7ee72351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd2351__7ee72351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd2351__7ee72351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2351__7ee72351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2351__7ee72351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee72351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee72351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72351[];
+extern VTBL_ENTRY _ZTV7ee72351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72351[];
+static VTBL_ENTRY alt_thunk_names653[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23513fooEv,_ZTv0_n12_N6dd23513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23513fooEv,_ZThn20_N6dd23513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723513fooEv,_ZTv0_n12_N7ee723513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee723513fooEv,_ZThn28_N7ee723513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723513barEv,_ZTv0_n16_N7ee723513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723513barEv,_ZThn20_N7ee723513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee723513fooEv,_ZTv0_n20_N7ee723513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723513fooEv,_ZThn8_N7ee723513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72351 = { "ee72351", // class name
+ bases_ee72351, 4,
+ &(vtc_ee72351[0]), // expected_vtbl_contents
+ &(vtt_ee72351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names653,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3351 : virtual cc351 {
+ int d;
+ virtual void foo(); // _ZN6dd33513fooEv
+ ~dd3351(); // tgen
+ dd3351(); // tgen
+};
+//SIG(-1 dd3351) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3351 ::foo(){vfunc_called(this, "_ZN6dd33513fooEv");}
+dd3351 ::~dd3351(){ note_dtor("dd3351", this);} // tgen
+dd3351 ::dd3351(){ note_ctor("dd3351", this);} // tgen
+
+static void Test_dd3351()
+{
+ extern Class_Descriptor cd_dd3351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3351, buf);
+ dd3351 *dp, &lv = *(dp=new (buf) dd3351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd3351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,16), "dd3351");
+ check_base_class_offset(lv, (cc351*), ABISELECT(16,8), "dd3351");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3351.d");
+ test_class_info(&lv, &cd_dd3351);
+ dp->~dd3351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3351(Test_dd3351, "dd3351", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3351C1Ev();
+extern void _ZN6dd3351D1Ev();
+Name_Map name_map_dd3351[] = {
+ NSPAIR(_ZN6dd3351C1Ev),
+ NSPAIR(_ZN6dd3351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd3351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd3351[];
+extern void _ZN6dd33513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd3351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd3351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd3351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3351[] = {
+ {&(_ZTV6dd3351[5]), 5,21},
+ {&(_ZTV6dd3351[11]), 11,21},
+ {&(_ZTV6dd3351[16]), 16,21},
+ {&(_ZTV6dd3351[20]), 20,21},
+ {&(_tg__ZTV5cc351__6dd3351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd3351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd3351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd3351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd3351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static VTBL_ENTRY alt_thunk_names654[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3351 = { "dd3351", // class name
+ bases_dd3351, 3,
+ &(vtc_dd3351[0]), // expected_vtbl_contents
+ &(vtt_dd3351[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3351),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names654,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03351 : dd3351 {
+ int e;
+ ~ee03351(); // tgen
+ ee03351(); // tgen
+};
+//SIG(1 ee03351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03351 ::~ee03351(){ note_dtor("ee03351", this);} // tgen
+ee03351 ::ee03351(){ note_ctor("ee03351", this);} // tgen
+
+static void Test_ee03351()
+{
+ extern Class_Descriptor cd_ee03351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03351, buf);
+ ee03351 *dp, &lv = *(dp=new (buf) ee03351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee03351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee03351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(16,12), "ee03351");
+ check_base_class_offset(lv, (dd3351*), 0, "ee03351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03351.e");
+ test_class_info(&lv, &cd_ee03351);
+ dp->~ee03351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03351(Test_ee03351, "ee03351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03351C1Ev();
+extern void _ZN7ee03351D1Ev();
+Name_Map name_map_ee03351[] = {
+ NSPAIR(_ZN7ee03351C1Ev),
+ NSPAIR(_ZN7ee03351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee03351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03351[];
+extern void _ZN6dd33513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee03351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee03351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee03351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee03351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee03351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee03351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee03351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee03351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee03351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03351[] = {
+ {&(_ZTV7ee03351[5]), 5,21},
+ {&(_tg__ZTV6dd3351__7ee03351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee03351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee03351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee03351[3]), 3,4},
+ {&(_ZTV7ee03351[11]), 11,21},
+ {&(_ZTV7ee03351[16]), 16,21},
+ {&(_ZTV7ee03351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee03351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee03351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee03351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee03351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee03351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03351[];
+extern VTBL_ENTRY _ZTV7ee03351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03351[];
+static VTBL_ENTRY alt_thunk_names655[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03351 = { "ee03351", // class name
+ bases_ee03351, 4,
+ &(vtc_ee03351[0]), // expected_vtbl_contents
+ &(vtt_ee03351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names655,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13351 : virtual dd3351 {
+ int e;
+ ~ee13351(); // tgen
+ ee13351(); // tgen
+};
+//SIG(1 ee13351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13351 ::~ee13351(){ note_dtor("ee13351", this);} // tgen
+ee13351 ::ee13351(){ note_ctor("ee13351", this);} // tgen
+
+static void Test_ee13351()
+{
+ extern Class_Descriptor cd_ee13351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13351, buf);
+ ee13351 *dp, &lv = *(dp=new (buf) ee13351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee13351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee13351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(32,16), "ee13351");
+ check_base_class_offset(lv, (dd3351*), ABISELECT(16,8), "ee13351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13351.e");
+ test_class_info(&lv, &cd_ee13351);
+ dp->~ee13351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13351(Test_ee13351, "ee13351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13351C1Ev();
+extern void _ZN7ee13351D1Ev();
+Name_Map name_map_ee13351[] = {
+ NSPAIR(_ZN7ee13351C1Ev),
+ NSPAIR(_ZN7ee13351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee13351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13351[];
+extern void _ZN6dd33513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13351[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee13351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee13351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee13351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee13351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee13351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee13351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee13351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee13351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee13351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13351[] = {
+ {&(_ZTV7ee13351[6]), 6,28},
+ {&(_ZTV7ee13351[12]), 12,28},
+ {&(_ZTV7ee13351[18]), 18,28},
+ {&(_ZTV7ee13351[23]), 23,28},
+ {&(_ZTV7ee13351[27]), 27,28},
+ {&(_tg__ZTV6dd3351__7ee13351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee13351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee13351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee13351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee13351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee13351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee13351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee13351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee13351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13351[];
+extern VTBL_ENTRY _ZTV7ee13351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13351[];
+static VTBL_ENTRY alt_thunk_names656[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13351 = { "ee13351", // class name
+ bases_ee13351, 4,
+ &(vtc_ee13351[0]), // expected_vtbl_contents
+ &(vtt_ee13351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13351),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names656,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23351 : dd3351 {
+ int e;
+ virtual void foo(); // _ZN7ee233513fooEv
+ ~ee23351(); // tgen
+ ee23351(); // tgen
+};
+//SIG(1 ee23351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23351 ::foo(){vfunc_called(this, "_ZN7ee233513fooEv");}
+ee23351 ::~ee23351(){ note_dtor("ee23351", this);} // tgen
+ee23351 ::ee23351(){ note_ctor("ee23351", this);} // tgen
+
+static void Test_ee23351()
+{
+ extern Class_Descriptor cd_ee23351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23351, buf);
+ ee23351 *dp, &lv = *(dp=new (buf) ee23351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee23351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee23351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(16,12), "ee23351");
+ check_base_class_offset(lv, (dd3351*), 0, "ee23351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23351.e");
+ test_class_info(&lv, &cd_ee23351);
+ dp->~ee23351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23351(Test_ee23351, "ee23351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23351C1Ev();
+extern void _ZN7ee23351D1Ev();
+Name_Map name_map_ee23351[] = {
+ NSPAIR(_ZN7ee23351C1Ev),
+ NSPAIR(_ZN7ee23351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee23351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23351[];
+extern void _ZN7ee233513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee233513fooEv,_ZTv0_n20_N7ee233513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233513fooEv,_ZThn12_N7ee233513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee233513fooEv,_ZTv0_n12_N7ee233513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee233513fooEv,_ZThn28_N7ee233513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23351[0]),
+ (VTBL_ENTRY)&_ZN7ee233513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee233513fooEv,_ZTv0_n20_N7ee233513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233513fooEv,_ZTv0_n12_N7ee233513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee23351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee23351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee23351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee23351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee23351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee23351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee23351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee23351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee23351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23351[] = {
+ {&(_ZTV7ee23351[5]), 5,21},
+ {&(_tg__ZTV6dd3351__7ee23351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee23351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee23351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee23351[3]), 3,4},
+ {&(_ZTV7ee23351[11]), 11,21},
+ {&(_ZTV7ee23351[16]), 16,21},
+ {&(_ZTV7ee23351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee23351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee23351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee23351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee23351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee23351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23351[];
+extern VTBL_ENTRY _ZTV7ee23351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23351[];
+static VTBL_ENTRY alt_thunk_names657[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233513fooEv,_ZTv0_n12_N7ee233513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee233513fooEv,_ZThn28_N7ee233513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee233513fooEv,_ZTv0_n20_N7ee233513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233513fooEv,_ZThn12_N7ee233513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23351 = { "ee23351", // class name
+ bases_ee23351, 4,
+ &(vtc_ee23351[0]), // expected_vtbl_contents
+ &(vtt_ee23351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names657,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33351 : virtual dd3351 {
+ int e;
+ virtual void foo(); // _ZN7ee333513fooEv
+ ~ee33351(); // tgen
+ ee33351(); // tgen
+};
+//SIG(1 ee33351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33351 ::foo(){vfunc_called(this, "_ZN7ee333513fooEv");}
+ee33351 ::~ee33351(){ note_dtor("ee33351", this);} // tgen
+ee33351 ::ee33351(){ note_ctor("ee33351", this);} // tgen
+
+static void Test_ee33351()
+{
+ extern Class_Descriptor cd_ee33351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33351, buf);
+ ee33351 *dp, &lv = *(dp=new (buf) ee33351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee33351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee33351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(32,16), "ee33351");
+ check_base_class_offset(lv, (dd3351*), ABISELECT(16,8), "ee33351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33351.e");
+ test_class_info(&lv, &cd_ee33351);
+ dp->~ee33351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33351(Test_ee33351, "ee33351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33351C1Ev();
+extern void _ZN7ee33351D1Ev();
+Name_Map name_map_ee33351[] = {
+ NSPAIR(_ZN7ee33351C1Ev),
+ NSPAIR(_ZN7ee33351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee33351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33351[];
+extern void _ZN7ee333513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee333513fooEv,_ZTv0_n24_N7ee333513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333513fooEv,_ZThn8_N7ee333513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee333513fooEv,_ZTv0_n20_N7ee333513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333513fooEv,_ZThn16_N7ee333513fooEv)() __attribute__((weak));
+extern void _ZN4bb513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee333513fooEv,_ZTv0_n12_N7ee333513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee333513fooEv,_ZThn32_N7ee333513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33351[0]),
+ (VTBL_ENTRY)&_ZN7ee333513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee333513fooEv,_ZTv0_n24_N7ee333513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333513fooEv,_ZTv0_n20_N7ee333513fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333513fooEv,_ZTv0_n12_N7ee333513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee33351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee33351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee33351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee33351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee33351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee33351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee33351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee33351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee33351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33351[] = {
+ {&(_ZTV7ee33351[6]), 6,29},
+ {&(_ZTV7ee33351[13]), 13,29},
+ {&(_ZTV7ee33351[19]), 19,29},
+ {&(_ZTV7ee33351[24]), 24,29},
+ {&(_ZTV7ee33351[28]), 28,29},
+ {&(_tg__ZTV6dd3351__7ee33351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee33351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee33351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee33351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee33351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee33351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee33351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee33351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee33351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33351[];
+extern VTBL_ENTRY _ZTV7ee33351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33351[];
+static VTBL_ENTRY alt_thunk_names658[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333513fooEv,_ZTv0_n12_N7ee333513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee333513fooEv,_ZThn32_N7ee333513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333513fooEv,_ZTv0_n20_N7ee333513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333513fooEv,_ZThn16_N7ee333513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee333513fooEv,_ZTv0_n24_N7ee333513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333513fooEv,_ZThn8_N7ee333513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33351 = { "ee33351", // class name
+ bases_ee33351, 4,
+ &(vtc_ee33351[0]), // expected_vtbl_contents
+ &(vtt_ee33351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33351),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names658,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43351 : dd3351 {
+ int e;
+ virtual void bar(); // _ZN7ee433513barEv
+ ~ee43351(); // tgen
+ ee43351(); // tgen
+};
+//SIG(1 ee43351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43351 ::bar(){vfunc_called(this, "_ZN7ee433513barEv");}
+ee43351 ::~ee43351(){ note_dtor("ee43351", this);} // tgen
+ee43351 ::ee43351(){ note_ctor("ee43351", this);} // tgen
+
+static void Test_ee43351()
+{
+ extern Class_Descriptor cd_ee43351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43351, buf);
+ ee43351 *dp, &lv = *(dp=new (buf) ee43351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee43351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee43351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(16,12), "ee43351");
+ check_base_class_offset(lv, (dd3351*), 0, "ee43351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43351.e");
+ test_class_info(&lv, &cd_ee43351);
+ dp->~ee43351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43351(Test_ee43351, "ee43351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43351C1Ev();
+extern void _ZN7ee43351D1Ev();
+Name_Map name_map_ee43351[] = {
+ NSPAIR(_ZN7ee43351C1Ev),
+ NSPAIR(_ZN7ee43351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee43351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43351[];
+extern void _ZN6dd33513fooEv();
+extern void _ZN7ee433513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433513barEv,_ZTv0_n16_N7ee433513barEv)();
+extern void ABISELECT(_ZThn32_N7ee433513barEv,_ZThn20_N7ee433513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+ (VTBL_ENTRY)&_ZN7ee433513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433513barEv,_ZTv0_n16_N7ee433513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee43351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee43351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee43351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee43351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee43351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee43351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee43351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee43351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee43351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43351[] = {
+ {&(_ZTV7ee43351[5]), 5,22},
+ {&(_tg__ZTV6dd3351__7ee43351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee43351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee43351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee43351[3]), 3,4},
+ {&(_ZTV7ee43351[12]), 12,22},
+ {&(_ZTV7ee43351[17]), 17,22},
+ {&(_ZTV7ee43351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee43351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee43351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee43351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee43351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee43351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43351[];
+extern VTBL_ENTRY _ZTV7ee43351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43351[];
+static VTBL_ENTRY alt_thunk_names659[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433513barEv,_ZTv0_n16_N7ee433513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433513barEv,_ZThn20_N7ee433513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43351 = { "ee43351", // class name
+ bases_ee43351, 4,
+ &(vtc_ee43351[0]), // expected_vtbl_contents
+ &(vtt_ee43351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names659,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53351 : virtual dd3351 {
+ int e;
+ virtual void bar(); // _ZN7ee533513barEv
+ ~ee53351(); // tgen
+ ee53351(); // tgen
+};
+//SIG(1 ee53351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53351 ::bar(){vfunc_called(this, "_ZN7ee533513barEv");}
+ee53351 ::~ee53351(){ note_dtor("ee53351", this);} // tgen
+ee53351 ::ee53351(){ note_ctor("ee53351", this);} // tgen
+
+static void Test_ee53351()
+{
+ extern Class_Descriptor cd_ee53351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53351, buf);
+ ee53351 *dp, &lv = *(dp=new (buf) ee53351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee53351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee53351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(32,16), "ee53351");
+ check_base_class_offset(lv, (dd3351*), ABISELECT(16,8), "ee53351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53351.e");
+ test_class_info(&lv, &cd_ee53351);
+ dp->~ee53351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53351(Test_ee53351, "ee53351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53351C1Ev();
+extern void _ZN7ee53351D1Ev();
+Name_Map name_map_ee53351[] = {
+ NSPAIR(_ZN7ee53351C1Ev),
+ NSPAIR(_ZN7ee53351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee53351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53351[];
+extern void _ZN7ee533513barEv();
+extern void _ZN6dd33513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533513barEv,_ZTv0_n16_N7ee533513barEv)();
+extern void ABISELECT(_ZThn48_N7ee533513barEv,_ZThn24_N7ee533513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53351[0]),
+ (VTBL_ENTRY)&_ZN7ee533513barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533513barEv,_ZTv0_n16_N7ee533513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee53351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee53351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee53351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee53351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee53351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee53351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee53351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee53351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee53351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53351[] = {
+ {&(_ZTV7ee53351[6]), 6,29},
+ {&(_ZTV7ee53351[13]), 13,29},
+ {&(_ZTV7ee53351[19]), 19,29},
+ {&(_ZTV7ee53351[24]), 24,29},
+ {&(_ZTV7ee53351[28]), 28,29},
+ {&(_tg__ZTV6dd3351__7ee53351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee53351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee53351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee53351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee53351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee53351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee53351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee53351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee53351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53351[];
+extern VTBL_ENTRY _ZTV7ee53351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53351[];
+static VTBL_ENTRY alt_thunk_names660[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533513barEv,_ZTv0_n16_N7ee533513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533513barEv,_ZThn24_N7ee533513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53351 = { "ee53351", // class name
+ bases_ee53351, 4,
+ &(vtc_ee53351[0]), // expected_vtbl_contents
+ &(vtt_ee53351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53351),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names660,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63351 : dd3351 {
+ int e;
+ virtual void foo(); // _ZN7ee633513fooEv
+ virtual void bar(); // _ZN7ee633513barEv
+ ~ee63351(); // tgen
+ ee63351(); // tgen
+};
+//SIG(1 ee63351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63351 ::foo(){vfunc_called(this, "_ZN7ee633513fooEv");}
+void ee63351 ::bar(){vfunc_called(this, "_ZN7ee633513barEv");}
+ee63351 ::~ee63351(){ note_dtor("ee63351", this);} // tgen
+ee63351 ::ee63351(){ note_ctor("ee63351", this);} // tgen
+
+static void Test_ee63351()
+{
+ extern Class_Descriptor cd_ee63351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63351, buf);
+ ee63351 *dp, &lv = *(dp=new (buf) ee63351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee63351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee63351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(16,12), "ee63351");
+ check_base_class_offset(lv, (dd3351*), 0, "ee63351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63351.e");
+ test_class_info(&lv, &cd_ee63351);
+ dp->~ee63351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63351(Test_ee63351, "ee63351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63351C1Ev();
+extern void _ZN7ee63351D1Ev();
+Name_Map name_map_ee63351[] = {
+ NSPAIR(_ZN7ee63351C1Ev),
+ NSPAIR(_ZN7ee63351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee63351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63351[];
+extern void _ZN7ee633513fooEv();
+extern void _ZN7ee633513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee633513fooEv,_ZTv0_n20_N7ee633513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633513fooEv,_ZThn12_N7ee633513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633513barEv,_ZTv0_n16_N7ee633513barEv)();
+extern void ABISELECT(_ZThn32_N7ee633513barEv,_ZThn20_N7ee633513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633513fooEv,_ZTv0_n12_N7ee633513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee633513fooEv,_ZThn28_N7ee633513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63351[0]),
+ (VTBL_ENTRY)&_ZN7ee633513fooEv,
+ (VTBL_ENTRY)&_ZN7ee633513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee633513fooEv,_ZTv0_n20_N7ee633513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633513barEv,_ZTv0_n16_N7ee633513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633513fooEv,_ZTv0_n12_N7ee633513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee63351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee63351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee63351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee63351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee63351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee63351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee63351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee63351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee63351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63351[] = {
+ {&(_ZTV7ee63351[5]), 5,22},
+ {&(_tg__ZTV6dd3351__7ee63351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee63351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee63351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee63351[3]), 3,4},
+ {&(_ZTV7ee63351[12]), 12,22},
+ {&(_ZTV7ee63351[17]), 17,22},
+ {&(_ZTV7ee63351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee63351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee63351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee63351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee63351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee63351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63351[];
+extern VTBL_ENTRY _ZTV7ee63351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63351[];
+static VTBL_ENTRY alt_thunk_names661[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn28_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn12_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633513fooEv,_ZTv0_n12_N7ee633513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee633513fooEv,_ZThn28_N7ee633513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633513barEv,_ZTv0_n16_N7ee633513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633513barEv,_ZThn20_N7ee633513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee633513fooEv,_ZTv0_n20_N7ee633513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633513fooEv,_ZThn12_N7ee633513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63351 = { "ee63351", // class name
+ bases_ee63351, 4,
+ &(vtc_ee63351[0]), // expected_vtbl_contents
+ &(vtt_ee63351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names661,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73351 : virtual dd3351 {
+ int e;
+ virtual void foo(); // _ZN7ee733513fooEv
+ virtual void bar(); // _ZN7ee733513barEv
+ ~ee73351(); // tgen
+ ee73351(); // tgen
+};
+//SIG(1 ee73351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73351 ::foo(){vfunc_called(this, "_ZN7ee733513fooEv");}
+void ee73351 ::bar(){vfunc_called(this, "_ZN7ee733513barEv");}
+ee73351 ::~ee73351(){ note_dtor("ee73351", this);} // tgen
+ee73351 ::ee73351(){ note_ctor("ee73351", this);} // tgen
+
+static void Test_ee73351()
+{
+ extern Class_Descriptor cd_ee73351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73351, buf);
+ ee73351 *dp, &lv = *(dp=new (buf) ee73351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee73351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee73351");
+ check_base_class_offset(lv, (cc351*)(dd3351*), ABISELECT(32,16), "ee73351");
+ check_base_class_offset(lv, (dd3351*), ABISELECT(16,8), "ee73351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73351.e");
+ test_class_info(&lv, &cd_ee73351);
+ dp->~ee73351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73351(Test_ee73351, "ee73351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73351C1Ev();
+extern void _ZN7ee73351D1Ev();
+Name_Map name_map_ee73351[] = {
+ NSPAIR(_ZN7ee73351C1Ev),
+ NSPAIR(_ZN7ee73351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd3351;
+extern VTBL_ENTRY _ZTI6dd3351[];
+extern VTBL_ENTRY _ZTV6dd3351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3351[];
+static Base_Class bases_ee73351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3351, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73351[];
+extern void _ZN7ee733513fooEv();
+extern void _ZN7ee733513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee733513fooEv,_ZTv0_n24_N7ee733513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733513fooEv,_ZThn8_N7ee733513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee733513fooEv,_ZTv0_n20_N7ee733513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733513fooEv,_ZThn16_N7ee733513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733513barEv,_ZTv0_n16_N7ee733513barEv)();
+extern void ABISELECT(_ZThn48_N7ee733513barEv,_ZThn24_N7ee733513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733513fooEv,_ZTv0_n12_N7ee733513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee733513fooEv,_ZThn32_N7ee733513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73351[0]),
+ (VTBL_ENTRY)&_ZN7ee733513fooEv,
+ (VTBL_ENTRY)&_ZN7ee733513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee733513fooEv,_ZTv0_n24_N7ee733513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733513fooEv,_ZTv0_n20_N7ee733513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733513barEv,_ZTv0_n16_N7ee733513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733513fooEv,_ZTv0_n12_N7ee733513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73351[];
+extern void _ZN6dd33513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3351__7ee73351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN6dd33513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd3351__7ee73351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3351__7ee73351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3351__7ee73351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee73351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee73351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee73351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee73351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee73351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73351[] = {
+ {&(_ZTV7ee73351[6]), 6,30},
+ {&(_ZTV7ee73351[14]), 14,30},
+ {&(_ZTV7ee73351[20]), 20,30},
+ {&(_ZTV7ee73351[25]), 25,30},
+ {&(_ZTV7ee73351[29]), 29,30},
+ {&(_tg__ZTV6dd3351__7ee73351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd3351__7ee73351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3351__7ee73351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3351__7ee73351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee73351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee73351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee73351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee73351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee73351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73351[];
+extern VTBL_ENTRY _ZTV7ee73351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73351[];
+static VTBL_ENTRY alt_thunk_names662[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33513fooEv,_ZTv0_n12_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33513fooEv,_ZThn24_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33513fooEv,_ZTv0_n20_N6dd33513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33513fooEv,_ZThn8_N6dd33513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733513fooEv,_ZTv0_n12_N7ee733513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee733513fooEv,_ZThn32_N7ee733513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733513barEv,_ZTv0_n16_N7ee733513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733513barEv,_ZThn24_N7ee733513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733513fooEv,_ZTv0_n20_N7ee733513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733513fooEv,_ZThn16_N7ee733513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee733513fooEv,_ZTv0_n24_N7ee733513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733513fooEv,_ZThn8_N7ee733513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73351 = { "ee73351", // class name
+ bases_ee73351, 4,
+ &(vtc_ee73351[0]), // expected_vtbl_contents
+ &(vtt_ee73351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73351),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names662,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4351 : cc351 {
+ int d;
+ virtual void bar(); // _ZN6dd43513barEv
+ ~dd4351(); // tgen
+ dd4351(); // tgen
+};
+//SIG(-1 dd4351) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4351 ::bar(){vfunc_called(this, "_ZN6dd43513barEv");}
+dd4351 ::~dd4351(){ note_dtor("dd4351", this);} // tgen
+dd4351 ::dd4351(){ note_ctor("dd4351", this);} // tgen
+
+static void Test_dd4351()
+{
+ extern Class_Descriptor cd_dd4351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4351, buf);
+ dd4351 *dp, &lv = *(dp=new (buf) dd4351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd4351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(16,12), "dd4351");
+ check_base_class_offset(lv, (cc351*), 0, "dd4351");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4351.d");
+ test_class_info(&lv, &cd_dd4351);
+ dp->~dd4351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4351(Test_dd4351, "dd4351", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4351C1Ev();
+extern void _ZN6dd4351D1Ev();
+Name_Map name_map_dd4351[] = {
+ NSPAIR(_ZN6dd4351C1Ev),
+ NSPAIR(_ZN6dd4351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd4351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd4351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd4351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd4351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd4351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4351[] = {
+ {&(_ZTV6dd4351[4]), 4,15},
+ {&(_tg__ZTV5cc351__6dd4351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd4351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd4351[3]), 3,4},
+ {&(_ZTV6dd4351[10]), 10,15},
+ {&(_ZTV6dd4351[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd4351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd4351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static VTBL_ENTRY alt_thunk_names663[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4351 = { "dd4351", // class name
+ bases_dd4351, 3,
+ &(vtc_dd4351[0]), // expected_vtbl_contents
+ &(vtt_dd4351[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4351),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names663,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04351 : dd4351 {
+ int e;
+ ~ee04351(); // tgen
+ ee04351(); // tgen
+};
+//SIG(1 ee04351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04351 ::~ee04351(){ note_dtor("ee04351", this);} // tgen
+ee04351 ::ee04351(){ note_ctor("ee04351", this);} // tgen
+
+static void Test_ee04351()
+{
+ extern Class_Descriptor cd_ee04351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04351, buf);
+ ee04351 *dp, &lv = *(dp=new (buf) ee04351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee04351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(24,16), "ee04351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), 0, "ee04351");
+ check_base_class_offset(lv, (dd4351*), 0, "ee04351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04351.e");
+ test_class_info(&lv, &cd_ee04351);
+ dp->~ee04351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04351(Test_ee04351, "ee04351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04351C1Ev();
+extern void _ZN7ee04351D1Ev();
+Name_Map name_map_ee04351[] = {
+ NSPAIR(_ZN7ee04351C1Ev),
+ NSPAIR(_ZN7ee04351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee04351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee04351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee04351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee04351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee04351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee04351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee04351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee04351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee04351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04351[] = {
+ {&(_ZTV7ee04351[4]), 4,15},
+ {&(_tg__ZTV6dd4351__7ee04351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee04351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee04351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee04351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee04351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee04351[3]), 3,4},
+ {&(_ZTV7ee04351[10]), 10,15},
+ {&(_ZTV7ee04351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee04351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee04351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04351[];
+extern VTBL_ENTRY _ZTV7ee04351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04351[];
+static VTBL_ENTRY alt_thunk_names664[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04351 = { "ee04351", // class name
+ bases_ee04351, 4,
+ &(vtc_ee04351[0]), // expected_vtbl_contents
+ &(vtt_ee04351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names664,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14351 : virtual dd4351 {
+ int e;
+ ~ee14351(); // tgen
+ ee14351(); // tgen
+};
+//SIG(1 ee14351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14351 ::~ee14351(){ note_dtor("ee14351", this);} // tgen
+ee14351 ::ee14351(){ note_ctor("ee14351", this);} // tgen
+
+static void Test_ee14351()
+{
+ extern Class_Descriptor cd_ee14351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14351, buf);
+ ee14351 *dp, &lv = *(dp=new (buf) ee14351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee14351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(32,20), "ee14351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), ABISELECT(16,8), "ee14351");
+ check_base_class_offset(lv, (dd4351*), ABISELECT(16,8), "ee14351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14351.e");
+ test_class_info(&lv, &cd_ee14351);
+ dp->~ee14351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14351(Test_ee14351, "ee14351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14351C1Ev();
+extern void _ZN7ee14351D1Ev();
+Name_Map name_map_ee14351[] = {
+ NSPAIR(_ZN7ee14351C1Ev),
+ NSPAIR(_ZN7ee14351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee14351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14351[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee14351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee14351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee14351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee14351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee14351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee14351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee14351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee14351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14351[] = {
+ {&(_ZTV7ee14351[5]), 5,22},
+ {&(_ZTV7ee14351[11]), 11,22},
+ {&(_ZTV7ee14351[17]), 17,22},
+ {&(_ZTV7ee14351[21]), 21,22},
+ {&(_tg__ZTV6dd4351__7ee14351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee14351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee14351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee14351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee14351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee14351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee14351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee14351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14351[];
+extern VTBL_ENTRY _ZTV7ee14351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14351[];
+static VTBL_ENTRY alt_thunk_names665[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14351 = { "ee14351", // class name
+ bases_ee14351, 4,
+ &(vtc_ee14351[0]), // expected_vtbl_contents
+ &(vtt_ee14351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names665,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24351 : dd4351 {
+ int e;
+ virtual void foo(); // _ZN7ee243513fooEv
+ ~ee24351(); // tgen
+ ee24351(); // tgen
+};
+//SIG(1 ee24351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24351 ::foo(){vfunc_called(this, "_ZN7ee243513fooEv");}
+ee24351 ::~ee24351(){ note_dtor("ee24351", this);} // tgen
+ee24351 ::ee24351(){ note_ctor("ee24351", this);} // tgen
+
+static void Test_ee24351()
+{
+ extern Class_Descriptor cd_ee24351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24351, buf);
+ ee24351 *dp, &lv = *(dp=new (buf) ee24351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee24351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(24,16), "ee24351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), 0, "ee24351");
+ check_base_class_offset(lv, (dd4351*), 0, "ee24351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24351.e");
+ test_class_info(&lv, &cd_ee24351);
+ dp->~ee24351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24351(Test_ee24351, "ee24351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24351C1Ev();
+extern void _ZN7ee24351D1Ev();
+Name_Map name_map_ee24351[] = {
+ NSPAIR(_ZN7ee24351C1Ev),
+ NSPAIR(_ZN7ee24351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee24351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24351[];
+extern void _ZN7ee243513fooEv();
+extern void _ZN6dd43513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee243513fooEv,_ZTv0_n12_N7ee243513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee243513fooEv,_ZThn24_N7ee243513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24351[0]),
+ (VTBL_ENTRY)&_ZN7ee243513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243513fooEv,_ZTv0_n12_N7ee243513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee24351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee24351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee24351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee24351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee24351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee24351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee24351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee24351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24351[] = {
+ {&(_ZTV7ee24351[4]), 4,15},
+ {&(_tg__ZTV6dd4351__7ee24351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee24351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee24351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee24351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee24351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee24351[3]), 3,4},
+ {&(_ZTV7ee24351[10]), 10,15},
+ {&(_ZTV7ee24351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee24351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee24351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24351[];
+extern VTBL_ENTRY _ZTV7ee24351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24351[];
+static VTBL_ENTRY alt_thunk_names666[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243513fooEv,_ZTv0_n12_N7ee243513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee243513fooEv,_ZThn24_N7ee243513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24351 = { "ee24351", // class name
+ bases_ee24351, 4,
+ &(vtc_ee24351[0]), // expected_vtbl_contents
+ &(vtt_ee24351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names666,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34351 : virtual dd4351 {
+ int e;
+ virtual void foo(); // _ZN7ee343513fooEv
+ ~ee34351(); // tgen
+ ee34351(); // tgen
+};
+//SIG(1 ee34351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34351 ::foo(){vfunc_called(this, "_ZN7ee343513fooEv");}
+ee34351 ::~ee34351(){ note_dtor("ee34351", this);} // tgen
+ee34351 ::ee34351(){ note_ctor("ee34351", this);} // tgen
+
+static void Test_ee34351()
+{
+ extern Class_Descriptor cd_ee34351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34351, buf);
+ ee34351 *dp, &lv = *(dp=new (buf) ee34351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee34351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(32,20), "ee34351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), ABISELECT(16,8), "ee34351");
+ check_base_class_offset(lv, (dd4351*), ABISELECT(16,8), "ee34351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34351.e");
+ test_class_info(&lv, &cd_ee34351);
+ dp->~ee34351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34351(Test_ee34351, "ee34351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34351C1Ev();
+extern void _ZN7ee34351D1Ev();
+Name_Map name_map_ee34351[] = {
+ NSPAIR(_ZN7ee34351C1Ev),
+ NSPAIR(_ZN7ee34351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee34351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34351[];
+extern void _ZN7ee343513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee343513fooEv,_ZTv0_n20_N7ee343513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343513fooEv,_ZThn8_N7ee343513fooEv)() __attribute__((weak));
+extern void _ZN6dd43513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee343513fooEv,_ZTv0_n12_N7ee343513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee343513fooEv,_ZThn28_N7ee343513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34351[0]),
+ (VTBL_ENTRY)&_ZN7ee343513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee343513fooEv,_ZTv0_n20_N7ee343513fooEv),
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343513fooEv,_ZTv0_n12_N7ee343513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee34351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee34351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee34351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee34351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee34351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee34351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee34351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee34351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34351[] = {
+ {&(_ZTV7ee34351[5]), 5,23},
+ {&(_ZTV7ee34351[12]), 12,23},
+ {&(_ZTV7ee34351[18]), 18,23},
+ {&(_ZTV7ee34351[22]), 22,23},
+ {&(_tg__ZTV6dd4351__7ee34351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee34351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee34351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee34351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee34351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee34351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee34351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee34351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34351[];
+extern VTBL_ENTRY _ZTV7ee34351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34351[];
+static VTBL_ENTRY alt_thunk_names667[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343513fooEv,_ZTv0_n12_N7ee343513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee343513fooEv,_ZThn28_N7ee343513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee343513fooEv,_ZTv0_n20_N7ee343513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343513fooEv,_ZThn8_N7ee343513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34351 = { "ee34351", // class name
+ bases_ee34351, 4,
+ &(vtc_ee34351[0]), // expected_vtbl_contents
+ &(vtt_ee34351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34351),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names667,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44351 : dd4351 {
+ int e;
+ virtual void bar(); // _ZN7ee443513barEv
+ ~ee44351(); // tgen
+ ee44351(); // tgen
+};
+//SIG(1 ee44351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44351 ::bar(){vfunc_called(this, "_ZN7ee443513barEv");}
+ee44351 ::~ee44351(){ note_dtor("ee44351", this);} // tgen
+ee44351 ::ee44351(){ note_ctor("ee44351", this);} // tgen
+
+static void Test_ee44351()
+{
+ extern Class_Descriptor cd_ee44351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44351, buf);
+ ee44351 *dp, &lv = *(dp=new (buf) ee44351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee44351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(24,16), "ee44351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), 0, "ee44351");
+ check_base_class_offset(lv, (dd4351*), 0, "ee44351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44351.e");
+ test_class_info(&lv, &cd_ee44351);
+ dp->~ee44351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44351(Test_ee44351, "ee44351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44351C1Ev();
+extern void _ZN7ee44351D1Ev();
+Name_Map name_map_ee44351[] = {
+ NSPAIR(_ZN7ee44351C1Ev),
+ NSPAIR(_ZN7ee44351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee44351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN7ee443513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee443513barEv,_ZTv0_n16_N7ee443513barEv)();
+extern void ABISELECT(_ZThn24_N7ee443513barEv,_ZThn16_N7ee443513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN7ee443513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443513barEv,_ZTv0_n16_N7ee443513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee44351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee44351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee44351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee44351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee44351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee44351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee44351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee44351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44351[] = {
+ {&(_ZTV7ee44351[4]), 4,15},
+ {&(_tg__ZTV6dd4351__7ee44351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee44351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee44351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee44351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee44351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee44351[3]), 3,4},
+ {&(_ZTV7ee44351[10]), 10,15},
+ {&(_ZTV7ee44351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee44351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee44351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44351[];
+extern VTBL_ENTRY _ZTV7ee44351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44351[];
+static VTBL_ENTRY alt_thunk_names668[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443513barEv,_ZTv0_n16_N7ee443513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443513barEv,_ZThn16_N7ee443513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44351 = { "ee44351", // class name
+ bases_ee44351, 4,
+ &(vtc_ee44351[0]), // expected_vtbl_contents
+ &(vtt_ee44351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names668,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54351 : virtual dd4351 {
+ int e;
+ virtual void bar(); // _ZN7ee543513barEv
+ ~ee54351(); // tgen
+ ee54351(); // tgen
+};
+//SIG(1 ee54351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54351 ::bar(){vfunc_called(this, "_ZN7ee543513barEv");}
+ee54351 ::~ee54351(){ note_dtor("ee54351", this);} // tgen
+ee54351 ::ee54351(){ note_ctor("ee54351", this);} // tgen
+
+static void Test_ee54351()
+{
+ extern Class_Descriptor cd_ee54351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54351, buf);
+ ee54351 *dp, &lv = *(dp=new (buf) ee54351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee54351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(32,20), "ee54351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), ABISELECT(16,8), "ee54351");
+ check_base_class_offset(lv, (dd4351*), ABISELECT(16,8), "ee54351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54351.e");
+ test_class_info(&lv, &cd_ee54351);
+ dp->~ee54351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54351(Test_ee54351, "ee54351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54351C1Ev();
+extern void _ZN7ee54351D1Ev();
+Name_Map name_map_ee54351[] = {
+ NSPAIR(_ZN7ee54351C1Ev),
+ NSPAIR(_ZN7ee54351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee54351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54351[];
+extern void _ZN7ee543513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee543513barEv,_ZTv0_n24_N7ee543513barEv)();
+extern void ABISELECT(_ZThn16_N7ee543513barEv,_ZThn8_N7ee543513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543513barEv,_ZTv0_n16_N7ee543513barEv)();
+extern void ABISELECT(_ZThn32_N7ee543513barEv,_ZThn20_N7ee543513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54351[0]),
+ (VTBL_ENTRY)&_ZN7ee543513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee543513barEv,_ZTv0_n24_N7ee543513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543513barEv,_ZTv0_n16_N7ee543513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee54351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee54351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee54351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee54351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee54351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee54351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee54351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee54351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54351[] = {
+ {&(_ZTV7ee54351[5]), 5,23},
+ {&(_ZTV7ee54351[12]), 12,23},
+ {&(_ZTV7ee54351[18]), 18,23},
+ {&(_ZTV7ee54351[22]), 22,23},
+ {&(_tg__ZTV6dd4351__7ee54351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee54351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee54351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee54351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee54351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee54351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee54351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee54351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54351[];
+extern VTBL_ENTRY _ZTV7ee54351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54351[];
+static VTBL_ENTRY alt_thunk_names669[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543513barEv,_ZTv0_n16_N7ee543513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543513barEv,_ZThn20_N7ee543513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee543513barEv,_ZTv0_n24_N7ee543513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543513barEv,_ZThn8_N7ee543513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54351 = { "ee54351", // class name
+ bases_ee54351, 4,
+ &(vtc_ee54351[0]), // expected_vtbl_contents
+ &(vtt_ee54351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54351),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names669,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64351 : dd4351 {
+ int e;
+ virtual void foo(); // _ZN7ee643513fooEv
+ virtual void bar(); // _ZN7ee643513barEv
+ ~ee64351(); // tgen
+ ee64351(); // tgen
+};
+//SIG(1 ee64351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64351 ::foo(){vfunc_called(this, "_ZN7ee643513fooEv");}
+void ee64351 ::bar(){vfunc_called(this, "_ZN7ee643513barEv");}
+ee64351 ::~ee64351(){ note_dtor("ee64351", this);} // tgen
+ee64351 ::ee64351(){ note_ctor("ee64351", this);} // tgen
+
+static void Test_ee64351()
+{
+ extern Class_Descriptor cd_ee64351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64351, buf);
+ ee64351 *dp, &lv = *(dp=new (buf) ee64351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee64351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(24,16), "ee64351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), 0, "ee64351");
+ check_base_class_offset(lv, (dd4351*), 0, "ee64351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64351.e");
+ test_class_info(&lv, &cd_ee64351);
+ dp->~ee64351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64351(Test_ee64351, "ee64351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64351C1Ev();
+extern void _ZN7ee64351D1Ev();
+Name_Map name_map_ee64351[] = {
+ NSPAIR(_ZN7ee64351C1Ev),
+ NSPAIR(_ZN7ee64351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee64351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64351[];
+extern void _ZN7ee643513fooEv();
+extern void _ZN7ee643513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee643513barEv,_ZTv0_n16_N7ee643513barEv)();
+extern void ABISELECT(_ZThn24_N7ee643513barEv,_ZThn16_N7ee643513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee643513fooEv,_ZTv0_n12_N7ee643513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee643513fooEv,_ZThn24_N7ee643513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64351[0]),
+ (VTBL_ENTRY)&_ZN7ee643513fooEv,
+ (VTBL_ENTRY)&_ZN7ee643513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643513barEv,_ZTv0_n16_N7ee643513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643513fooEv,_ZTv0_n12_N7ee643513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee64351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee64351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee64351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee64351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee64351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee64351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee64351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee64351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64351[] = {
+ {&(_ZTV7ee64351[4]), 4,15},
+ {&(_tg__ZTV6dd4351__7ee64351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee64351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee64351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee64351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee64351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee64351[3]), 3,4},
+ {&(_ZTV7ee64351[10]), 10,15},
+ {&(_ZTV7ee64351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee64351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee64351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64351[];
+extern VTBL_ENTRY _ZTV7ee64351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64351[];
+static VTBL_ENTRY alt_thunk_names670[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43513barEv,_ZThn16_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643513fooEv,_ZTv0_n12_N7ee643513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee643513fooEv,_ZThn24_N7ee643513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643513barEv,_ZTv0_n16_N7ee643513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643513barEv,_ZThn16_N7ee643513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64351 = { "ee64351", // class name
+ bases_ee64351, 4,
+ &(vtc_ee64351[0]), // expected_vtbl_contents
+ &(vtt_ee64351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names670,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74351 : virtual dd4351 {
+ int e;
+ virtual void foo(); // _ZN7ee743513fooEv
+ virtual void bar(); // _ZN7ee743513barEv
+ ~ee74351(); // tgen
+ ee74351(); // tgen
+};
+//SIG(1 ee74351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74351 ::foo(){vfunc_called(this, "_ZN7ee743513fooEv");}
+void ee74351 ::bar(){vfunc_called(this, "_ZN7ee743513barEv");}
+ee74351 ::~ee74351(){ note_dtor("ee74351", this);} // tgen
+ee74351 ::ee74351(){ note_ctor("ee74351", this);} // tgen
+
+static void Test_ee74351()
+{
+ extern Class_Descriptor cd_ee74351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74351, buf);
+ ee74351 *dp, &lv = *(dp=new (buf) ee74351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee74351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd4351*), ABISELECT(32,20), "ee74351");
+ check_base_class_offset(lv, (cc351*)(dd4351*), ABISELECT(16,8), "ee74351");
+ check_base_class_offset(lv, (dd4351*), ABISELECT(16,8), "ee74351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74351.e");
+ test_class_info(&lv, &cd_ee74351);
+ dp->~ee74351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74351(Test_ee74351, "ee74351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74351C1Ev();
+extern void _ZN7ee74351D1Ev();
+Name_Map name_map_ee74351[] = {
+ NSPAIR(_ZN7ee74351C1Ev),
+ NSPAIR(_ZN7ee74351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd4351;
+extern VTBL_ENTRY _ZTI6dd4351[];
+extern VTBL_ENTRY _ZTV6dd4351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4351[];
+static Base_Class bases_ee74351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74351[];
+extern void _ZN7ee743513fooEv();
+extern void _ZN7ee743513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee743513fooEv,_ZTv0_n20_N7ee743513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743513fooEv,_ZThn8_N7ee743513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee743513barEv,_ZTv0_n24_N7ee743513barEv)();
+extern void ABISELECT(_ZThn16_N7ee743513barEv,_ZThn8_N7ee743513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743513barEv,_ZTv0_n16_N7ee743513barEv)();
+extern void ABISELECT(_ZThn32_N7ee743513barEv,_ZThn20_N7ee743513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743513fooEv,_ZTv0_n12_N7ee743513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee743513fooEv,_ZThn28_N7ee743513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74351[0]),
+ (VTBL_ENTRY)&_ZN7ee743513fooEv,
+ (VTBL_ENTRY)&_ZN7ee743513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743513fooEv,_ZTv0_n20_N7ee743513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee743513barEv,_ZTv0_n24_N7ee743513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743513barEv,_ZTv0_n16_N7ee743513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743513fooEv,_ZTv0_n12_N7ee743513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74351[];
+extern void _ZN5cc3513fooEv();
+extern void _ZN6dd43513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4351__7ee74351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ (VTBL_ENTRY)&_ZN6dd43513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd4351__7ee74351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd4351__7ee74351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd4351__7ee74351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv)();
+extern void ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4351__7ee74351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4351__7ee74351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee74351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee74351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74351[] = {
+ {&(_ZTV7ee74351[5]), 5,24},
+ {&(_ZTV7ee74351[13]), 13,24},
+ {&(_ZTV7ee74351[19]), 19,24},
+ {&(_ZTV7ee74351[23]), 23,24},
+ {&(_tg__ZTV6dd4351__7ee74351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd4351__7ee74351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd4351__7ee74351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd4351__7ee74351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4351__7ee74351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4351__7ee74351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee74351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee74351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74351[];
+extern VTBL_ENTRY _ZTV7ee74351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74351[];
+static VTBL_ENTRY alt_thunk_names671[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43513barEv,_ZTv0_n16_N6dd43513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43513barEv,_ZThn12_N6dd43513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743513fooEv,_ZTv0_n12_N7ee743513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee743513fooEv,_ZThn28_N7ee743513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743513barEv,_ZTv0_n16_N7ee743513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743513barEv,_ZThn20_N7ee743513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee743513barEv,_ZTv0_n24_N7ee743513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743513barEv,_ZThn8_N7ee743513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743513fooEv,_ZTv0_n20_N7ee743513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743513fooEv,_ZThn8_N7ee743513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74351 = { "ee74351", // class name
+ bases_ee74351, 4,
+ &(vtc_ee74351[0]), // expected_vtbl_contents
+ &(vtt_ee74351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74351),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names671,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5351 : virtual cc351 {
+ int d;
+ virtual void bar(); // _ZN6dd53513barEv
+ ~dd5351(); // tgen
+ dd5351(); // tgen
+};
+//SIG(-1 dd5351) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5351 ::bar(){vfunc_called(this, "_ZN6dd53513barEv");}
+dd5351 ::~dd5351(){ note_dtor("dd5351", this);} // tgen
+dd5351 ::dd5351(){ note_ctor("dd5351", this);} // tgen
+
+static void Test_dd5351()
+{
+ extern Class_Descriptor cd_dd5351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5351, buf);
+ dd5351 *dp, &lv = *(dp=new (buf) dd5351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd5351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,16), "dd5351");
+ check_base_class_offset(lv, (cc351*), ABISELECT(16,8), "dd5351");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5351.d");
+ test_class_info(&lv, &cd_dd5351);
+ dp->~dd5351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5351(Test_dd5351, "dd5351", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5351C1Ev();
+extern void _ZN6dd5351D1Ev();
+Name_Map name_map_dd5351[] = {
+ NSPAIR(_ZN6dd5351C1Ev),
+ NSPAIR(_ZN6dd5351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd5351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd5351[];
+extern void _ZN6dd53513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd5351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd5351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd5351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5351[] = {
+ {&(_ZTV6dd5351[5]), 5,21},
+ {&(_ZTV6dd5351[11]), 11,21},
+ {&(_ZTV6dd5351[16]), 16,21},
+ {&(_ZTV6dd5351[20]), 20,21},
+ {&(_tg__ZTV5cc351__6dd5351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd5351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd5351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd5351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd5351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static VTBL_ENTRY alt_thunk_names672[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5351 = { "dd5351", // class name
+ bases_dd5351, 3,
+ &(vtc_dd5351[0]), // expected_vtbl_contents
+ &(vtt_dd5351[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5351),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names672,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05351 : dd5351 {
+ int e;
+ ~ee05351(); // tgen
+ ee05351(); // tgen
+};
+//SIG(1 ee05351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05351 ::~ee05351(){ note_dtor("ee05351", this);} // tgen
+ee05351 ::ee05351(){ note_ctor("ee05351", this);} // tgen
+
+static void Test_ee05351()
+{
+ extern Class_Descriptor cd_ee05351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05351, buf);
+ ee05351 *dp, &lv = *(dp=new (buf) ee05351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee05351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee05351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(16,12), "ee05351");
+ check_base_class_offset(lv, (dd5351*), 0, "ee05351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05351.e");
+ test_class_info(&lv, &cd_ee05351);
+ dp->~ee05351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05351(Test_ee05351, "ee05351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05351C1Ev();
+extern void _ZN7ee05351D1Ev();
+Name_Map name_map_ee05351[] = {
+ NSPAIR(_ZN7ee05351C1Ev),
+ NSPAIR(_ZN7ee05351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee05351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05351[];
+extern void _ZN6dd53513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee05351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee05351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee05351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee05351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee05351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee05351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee05351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee05351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee05351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05351[] = {
+ {&(_ZTV7ee05351[5]), 5,21},
+ {&(_tg__ZTV6dd5351__7ee05351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee05351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee05351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee05351[3]), 3,4},
+ {&(_ZTV7ee05351[11]), 11,21},
+ {&(_ZTV7ee05351[16]), 16,21},
+ {&(_ZTV7ee05351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee05351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee05351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee05351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee05351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee05351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05351[];
+extern VTBL_ENTRY _ZTV7ee05351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05351[];
+static VTBL_ENTRY alt_thunk_names673[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05351 = { "ee05351", // class name
+ bases_ee05351, 4,
+ &(vtc_ee05351[0]), // expected_vtbl_contents
+ &(vtt_ee05351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names673,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15351 : virtual dd5351 {
+ int e;
+ ~ee15351(); // tgen
+ ee15351(); // tgen
+};
+//SIG(1 ee15351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15351 ::~ee15351(){ note_dtor("ee15351", this);} // tgen
+ee15351 ::ee15351(){ note_ctor("ee15351", this);} // tgen
+
+static void Test_ee15351()
+{
+ extern Class_Descriptor cd_ee15351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15351, buf);
+ ee15351 *dp, &lv = *(dp=new (buf) ee15351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee15351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee15351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(32,16), "ee15351");
+ check_base_class_offset(lv, (dd5351*), ABISELECT(16,8), "ee15351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15351.e");
+ test_class_info(&lv, &cd_ee15351);
+ dp->~ee15351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15351(Test_ee15351, "ee15351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15351C1Ev();
+extern void _ZN7ee15351D1Ev();
+Name_Map name_map_ee15351[] = {
+ NSPAIR(_ZN7ee15351C1Ev),
+ NSPAIR(_ZN7ee15351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee15351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15351[];
+extern void _ZN6dd53513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15351[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee15351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee15351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee15351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee15351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee15351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee15351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee15351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee15351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee15351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15351[] = {
+ {&(_ZTV7ee15351[6]), 6,28},
+ {&(_ZTV7ee15351[12]), 12,28},
+ {&(_ZTV7ee15351[18]), 18,28},
+ {&(_ZTV7ee15351[23]), 23,28},
+ {&(_ZTV7ee15351[27]), 27,28},
+ {&(_tg__ZTV6dd5351__7ee15351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee15351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee15351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee15351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee15351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee15351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee15351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee15351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee15351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15351[];
+extern VTBL_ENTRY _ZTV7ee15351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15351[];
+static VTBL_ENTRY alt_thunk_names674[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15351 = { "ee15351", // class name
+ bases_ee15351, 4,
+ &(vtc_ee15351[0]), // expected_vtbl_contents
+ &(vtt_ee15351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15351),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names674,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25351 : dd5351 {
+ int e;
+ virtual void foo(); // _ZN7ee253513fooEv
+ ~ee25351(); // tgen
+ ee25351(); // tgen
+};
+//SIG(1 ee25351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25351 ::foo(){vfunc_called(this, "_ZN7ee253513fooEv");}
+ee25351 ::~ee25351(){ note_dtor("ee25351", this);} // tgen
+ee25351 ::ee25351(){ note_ctor("ee25351", this);} // tgen
+
+static void Test_ee25351()
+{
+ extern Class_Descriptor cd_ee25351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25351, buf);
+ ee25351 *dp, &lv = *(dp=new (buf) ee25351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee25351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee25351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(16,12), "ee25351");
+ check_base_class_offset(lv, (dd5351*), 0, "ee25351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25351.e");
+ test_class_info(&lv, &cd_ee25351);
+ dp->~ee25351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25351(Test_ee25351, "ee25351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25351C1Ev();
+extern void _ZN7ee25351D1Ev();
+Name_Map name_map_ee25351[] = {
+ NSPAIR(_ZN7ee25351C1Ev),
+ NSPAIR(_ZN7ee25351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee25351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25351[];
+extern void _ZN6dd53513barEv();
+extern void _ZN7ee253513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee253513fooEv,_ZTv0_n20_N7ee253513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253513fooEv,_ZThn12_N7ee253513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253513fooEv,_ZTv0_n12_N7ee253513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee253513fooEv,_ZThn28_N7ee253513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+ (VTBL_ENTRY)&_ZN7ee253513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee253513fooEv,_ZTv0_n20_N7ee253513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253513fooEv,_ZTv0_n12_N7ee253513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee25351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee25351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee25351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee25351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee25351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee25351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee25351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee25351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee25351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25351[] = {
+ {&(_ZTV7ee25351[5]), 5,22},
+ {&(_tg__ZTV6dd5351__7ee25351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee25351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee25351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee25351[3]), 3,4},
+ {&(_ZTV7ee25351[12]), 12,22},
+ {&(_ZTV7ee25351[17]), 17,22},
+ {&(_ZTV7ee25351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee25351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee25351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee25351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee25351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee25351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25351[];
+extern VTBL_ENTRY _ZTV7ee25351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25351[];
+static VTBL_ENTRY alt_thunk_names675[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253513fooEv,_ZTv0_n12_N7ee253513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee253513fooEv,_ZThn28_N7ee253513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee253513fooEv,_ZTv0_n20_N7ee253513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253513fooEv,_ZThn12_N7ee253513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25351 = { "ee25351", // class name
+ bases_ee25351, 4,
+ &(vtc_ee25351[0]), // expected_vtbl_contents
+ &(vtt_ee25351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names675,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35351 : virtual dd5351 {
+ int e;
+ virtual void foo(); // _ZN7ee353513fooEv
+ ~ee35351(); // tgen
+ ee35351(); // tgen
+};
+//SIG(1 ee35351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35351 ::foo(){vfunc_called(this, "_ZN7ee353513fooEv");}
+ee35351 ::~ee35351(){ note_dtor("ee35351", this);} // tgen
+ee35351 ::ee35351(){ note_ctor("ee35351", this);} // tgen
+
+static void Test_ee35351()
+{
+ extern Class_Descriptor cd_ee35351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35351, buf);
+ ee35351 *dp, &lv = *(dp=new (buf) ee35351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee35351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee35351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(32,16), "ee35351");
+ check_base_class_offset(lv, (dd5351*), ABISELECT(16,8), "ee35351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35351.e");
+ test_class_info(&lv, &cd_ee35351);
+ dp->~ee35351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35351(Test_ee35351, "ee35351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35351C1Ev();
+extern void _ZN7ee35351D1Ev();
+Name_Map name_map_ee35351[] = {
+ NSPAIR(_ZN7ee35351C1Ev),
+ NSPAIR(_ZN7ee35351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee35351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35351[];
+extern void _ZN7ee353513fooEv();
+extern void _ZN6dd53513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee353513fooEv,_ZTv0_n20_N7ee353513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353513fooEv,_ZThn16_N7ee353513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353513fooEv,_ZTv0_n12_N7ee353513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee353513fooEv,_ZThn32_N7ee353513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35351[0]),
+ (VTBL_ENTRY)&_ZN7ee353513fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee353513fooEv,_ZTv0_n20_N7ee353513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353513fooEv,_ZTv0_n12_N7ee353513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee35351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee35351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee35351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee35351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee35351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee35351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee35351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee35351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee35351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35351[] = {
+ {&(_ZTV7ee35351[6]), 6,29},
+ {&(_ZTV7ee35351[13]), 13,29},
+ {&(_ZTV7ee35351[19]), 19,29},
+ {&(_ZTV7ee35351[24]), 24,29},
+ {&(_ZTV7ee35351[28]), 28,29},
+ {&(_tg__ZTV6dd5351__7ee35351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee35351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee35351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee35351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee35351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee35351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee35351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee35351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee35351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35351[];
+extern VTBL_ENTRY _ZTV7ee35351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35351[];
+static VTBL_ENTRY alt_thunk_names676[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353513fooEv,_ZTv0_n12_N7ee353513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee353513fooEv,_ZThn32_N7ee353513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee353513fooEv,_ZTv0_n20_N7ee353513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353513fooEv,_ZThn16_N7ee353513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35351 = { "ee35351", // class name
+ bases_ee35351, 4,
+ &(vtc_ee35351[0]), // expected_vtbl_contents
+ &(vtt_ee35351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35351),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names676,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45351 : dd5351 {
+ int e;
+ virtual void bar(); // _ZN7ee453513barEv
+ ~ee45351(); // tgen
+ ee45351(); // tgen
+};
+//SIG(1 ee45351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45351 ::bar(){vfunc_called(this, "_ZN7ee453513barEv");}
+ee45351 ::~ee45351(){ note_dtor("ee45351", this);} // tgen
+ee45351 ::ee45351(){ note_ctor("ee45351", this);} // tgen
+
+static void Test_ee45351()
+{
+ extern Class_Descriptor cd_ee45351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45351, buf);
+ ee45351 *dp, &lv = *(dp=new (buf) ee45351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee45351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee45351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(16,12), "ee45351");
+ check_base_class_offset(lv, (dd5351*), 0, "ee45351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45351.e");
+ test_class_info(&lv, &cd_ee45351);
+ dp->~ee45351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45351(Test_ee45351, "ee45351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45351C1Ev();
+extern void _ZN7ee45351D1Ev();
+Name_Map name_map_ee45351[] = {
+ NSPAIR(_ZN7ee45351C1Ev),
+ NSPAIR(_ZN7ee45351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee45351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45351[];
+extern void _ZN7ee453513barEv();
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee453513barEv,_ZTv0_n16_N7ee453513barEv)();
+extern void ABISELECT(_ZThn32_N7ee453513barEv,_ZThn20_N7ee453513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45351[0]),
+ (VTBL_ENTRY)&_ZN7ee453513barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453513barEv,_ZTv0_n16_N7ee453513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee45351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee45351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee45351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee45351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee45351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee45351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee45351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee45351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee45351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45351[] = {
+ {&(_ZTV7ee45351[5]), 5,21},
+ {&(_tg__ZTV6dd5351__7ee45351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee45351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee45351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee45351[3]), 3,4},
+ {&(_ZTV7ee45351[11]), 11,21},
+ {&(_ZTV7ee45351[16]), 16,21},
+ {&(_ZTV7ee45351[20]), 20,21},
+ {&(_tg__ZTV5cc351__7ee45351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee45351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee45351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee45351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee45351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45351[];
+extern VTBL_ENTRY _ZTV7ee45351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45351[];
+static VTBL_ENTRY alt_thunk_names677[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453513barEv,_ZTv0_n16_N7ee453513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453513barEv,_ZThn20_N7ee453513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45351 = { "ee45351", // class name
+ bases_ee45351, 4,
+ &(vtc_ee45351[0]), // expected_vtbl_contents
+ &(vtt_ee45351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45351),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names677,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55351 : virtual dd5351 {
+ int e;
+ virtual void bar(); // _ZN7ee553513barEv
+ ~ee55351(); // tgen
+ ee55351(); // tgen
+};
+//SIG(1 ee55351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55351 ::bar(){vfunc_called(this, "_ZN7ee553513barEv");}
+ee55351 ::~ee55351(){ note_dtor("ee55351", this);} // tgen
+ee55351 ::ee55351(){ note_ctor("ee55351", this);} // tgen
+
+static void Test_ee55351()
+{
+ extern Class_Descriptor cd_ee55351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55351, buf);
+ ee55351 *dp, &lv = *(dp=new (buf) ee55351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee55351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee55351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(32,16), "ee55351");
+ check_base_class_offset(lv, (dd5351*), ABISELECT(16,8), "ee55351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55351.e");
+ test_class_info(&lv, &cd_ee55351);
+ dp->~ee55351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55351(Test_ee55351, "ee55351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55351C1Ev();
+extern void _ZN7ee55351D1Ev();
+Name_Map name_map_ee55351[] = {
+ NSPAIR(_ZN7ee55351C1Ev),
+ NSPAIR(_ZN7ee55351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee55351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55351[];
+extern void _ZN7ee553513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee553513barEv,_ZTv0_n24_N7ee553513barEv)();
+extern void ABISELECT(_ZThn16_N7ee553513barEv,_ZThn8_N7ee553513barEv)() __attribute__((weak));
+extern void _ZN5cc3513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee553513barEv,_ZTv0_n16_N7ee553513barEv)();
+extern void ABISELECT(_ZThn48_N7ee553513barEv,_ZThn24_N7ee553513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55351[0]),
+ (VTBL_ENTRY)&_ZN7ee553513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee553513barEv,_ZTv0_n24_N7ee553513barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553513barEv,_ZTv0_n16_N7ee553513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee55351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee55351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee55351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee55351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee55351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee55351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee55351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee55351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee55351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55351[] = {
+ {&(_ZTV7ee55351[6]), 6,29},
+ {&(_ZTV7ee55351[13]), 13,29},
+ {&(_ZTV7ee55351[19]), 19,29},
+ {&(_ZTV7ee55351[24]), 24,29},
+ {&(_ZTV7ee55351[28]), 28,29},
+ {&(_tg__ZTV6dd5351__7ee55351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee55351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee55351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee55351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee55351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee55351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee55351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee55351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee55351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55351[];
+extern VTBL_ENTRY _ZTV7ee55351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55351[];
+static VTBL_ENTRY alt_thunk_names678[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553513barEv,_ZTv0_n16_N7ee553513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553513barEv,_ZThn24_N7ee553513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee553513barEv,_ZTv0_n24_N7ee553513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553513barEv,_ZThn8_N7ee553513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55351 = { "ee55351", // class name
+ bases_ee55351, 4,
+ &(vtc_ee55351[0]), // expected_vtbl_contents
+ &(vtt_ee55351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55351),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names678,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65351 : dd5351 {
+ int e;
+ virtual void foo(); // _ZN7ee653513fooEv
+ virtual void bar(); // _ZN7ee653513barEv
+ ~ee65351(); // tgen
+ ee65351(); // tgen
+};
+//SIG(1 ee65351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65351 ::foo(){vfunc_called(this, "_ZN7ee653513fooEv");}
+void ee65351 ::bar(){vfunc_called(this, "_ZN7ee653513barEv");}
+ee65351 ::~ee65351(){ note_dtor("ee65351", this);} // tgen
+ee65351 ::ee65351(){ note_ctor("ee65351", this);} // tgen
+
+static void Test_ee65351()
+{
+ extern Class_Descriptor cd_ee65351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65351, buf);
+ ee65351 *dp, &lv = *(dp=new (buf) ee65351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee65351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee65351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(16,12), "ee65351");
+ check_base_class_offset(lv, (dd5351*), 0, "ee65351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65351.e");
+ test_class_info(&lv, &cd_ee65351);
+ dp->~ee65351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65351(Test_ee65351, "ee65351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65351C1Ev();
+extern void _ZN7ee65351D1Ev();
+Name_Map name_map_ee65351[] = {
+ NSPAIR(_ZN7ee65351C1Ev),
+ NSPAIR(_ZN7ee65351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee65351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65351[];
+extern void _ZN7ee653513barEv();
+extern void _ZN7ee653513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee653513fooEv,_ZTv0_n20_N7ee653513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653513fooEv,_ZThn12_N7ee653513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653513barEv,_ZTv0_n16_N7ee653513barEv)();
+extern void ABISELECT(_ZThn32_N7ee653513barEv,_ZThn20_N7ee653513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653513fooEv,_ZTv0_n12_N7ee653513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee653513fooEv,_ZThn28_N7ee653513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65351[0]),
+ (VTBL_ENTRY)&_ZN7ee653513barEv,
+ (VTBL_ENTRY)&_ZN7ee653513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee653513fooEv,_ZTv0_n20_N7ee653513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653513barEv,_ZTv0_n16_N7ee653513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653513fooEv,_ZTv0_n12_N7ee653513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee65351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee65351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee65351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee65351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee65351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee65351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee65351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee65351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee65351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65351[] = {
+ {&(_ZTV7ee65351[5]), 5,22},
+ {&(_tg__ZTV6dd5351__7ee65351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee65351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee65351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee65351[3]), 3,4},
+ {&(_ZTV7ee65351[12]), 12,22},
+ {&(_ZTV7ee65351[17]), 17,22},
+ {&(_ZTV7ee65351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee65351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee65351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee65351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee65351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee65351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65351[];
+extern VTBL_ENTRY _ZTV7ee65351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65351[];
+static VTBL_ENTRY alt_thunk_names679[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn20_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653513fooEv,_ZTv0_n12_N7ee653513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee653513fooEv,_ZThn28_N7ee653513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653513barEv,_ZTv0_n16_N7ee653513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653513barEv,_ZThn20_N7ee653513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee653513fooEv,_ZTv0_n20_N7ee653513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653513fooEv,_ZThn12_N7ee653513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65351 = { "ee65351", // class name
+ bases_ee65351, 4,
+ &(vtc_ee65351[0]), // expected_vtbl_contents
+ &(vtt_ee65351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names679,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75351 : virtual dd5351 {
+ int e;
+ virtual void foo(); // _ZN7ee753513fooEv
+ virtual void bar(); // _ZN7ee753513barEv
+ ~ee75351(); // tgen
+ ee75351(); // tgen
+};
+//SIG(1 ee75351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75351 ::foo(){vfunc_called(this, "_ZN7ee753513fooEv");}
+void ee75351 ::bar(){vfunc_called(this, "_ZN7ee753513barEv");}
+ee75351 ::~ee75351(){ note_dtor("ee75351", this);} // tgen
+ee75351 ::ee75351(){ note_ctor("ee75351", this);} // tgen
+
+static void Test_ee75351()
+{
+ extern Class_Descriptor cd_ee75351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75351, buf);
+ ee75351 *dp, &lv = *(dp=new (buf) ee75351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee75351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee75351");
+ check_base_class_offset(lv, (cc351*)(dd5351*), ABISELECT(32,16), "ee75351");
+ check_base_class_offset(lv, (dd5351*), ABISELECT(16,8), "ee75351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75351.e");
+ test_class_info(&lv, &cd_ee75351);
+ dp->~ee75351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75351(Test_ee75351, "ee75351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75351C1Ev();
+extern void _ZN7ee75351D1Ev();
+Name_Map name_map_ee75351[] = {
+ NSPAIR(_ZN7ee75351C1Ev),
+ NSPAIR(_ZN7ee75351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd5351;
+extern VTBL_ENTRY _ZTI6dd5351[];
+extern VTBL_ENTRY _ZTV6dd5351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5351[];
+static Base_Class bases_ee75351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5351, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75351[];
+extern void _ZN7ee753513fooEv();
+extern void _ZN7ee753513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee753513barEv,_ZTv0_n24_N7ee753513barEv)();
+extern void ABISELECT(_ZThn16_N7ee753513barEv,_ZThn8_N7ee753513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee753513fooEv,_ZTv0_n20_N7ee753513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753513fooEv,_ZThn16_N7ee753513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753513barEv,_ZTv0_n16_N7ee753513barEv)();
+extern void ABISELECT(_ZThn48_N7ee753513barEv,_ZThn24_N7ee753513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753513fooEv,_ZTv0_n12_N7ee753513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee753513fooEv,_ZThn32_N7ee753513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75351[0]),
+ (VTBL_ENTRY)&_ZN7ee753513fooEv,
+ (VTBL_ENTRY)&_ZN7ee753513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee753513barEv,_ZTv0_n24_N7ee753513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753513fooEv,_ZTv0_n20_N7ee753513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753513barEv,_ZTv0_n16_N7ee753513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753513fooEv,_ZTv0_n12_N7ee753513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75351[];
+extern void _ZN6dd53513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5351__7ee75351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN6dd53513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd5351__7ee75351[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv)();
+extern void ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5351__7ee75351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5351__7ee75351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee75351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee75351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee75351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee75351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee75351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75351[] = {
+ {&(_ZTV7ee75351[6]), 6,30},
+ {&(_ZTV7ee75351[14]), 14,30},
+ {&(_ZTV7ee75351[20]), 20,30},
+ {&(_ZTV7ee75351[25]), 25,30},
+ {&(_ZTV7ee75351[29]), 29,30},
+ {&(_tg__ZTV6dd5351__7ee75351[5]), 5,6},
+ {&(_tg__ZTV5cc351__6dd5351__7ee75351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5351__7ee75351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5351__7ee75351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee75351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee75351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee75351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee75351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee75351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75351[];
+extern VTBL_ENTRY _ZTV7ee75351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75351[];
+static VTBL_ENTRY alt_thunk_names680[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53513barEv,_ZTv0_n16_N6dd53513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53513barEv,_ZThn16_N6dd53513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753513fooEv,_ZTv0_n12_N7ee753513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee753513fooEv,_ZThn32_N7ee753513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753513barEv,_ZTv0_n16_N7ee753513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753513barEv,_ZThn24_N7ee753513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753513fooEv,_ZTv0_n20_N7ee753513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753513fooEv,_ZThn16_N7ee753513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee753513barEv,_ZTv0_n24_N7ee753513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753513barEv,_ZThn8_N7ee753513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75351 = { "ee75351", // class name
+ bases_ee75351, 4,
+ &(vtc_ee75351[0]), // expected_vtbl_contents
+ &(vtt_ee75351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75351),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names680,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6351 : cc351 {
+ int d;
+ virtual void bar(); // _ZN6dd63513barEv
+ virtual void foo(); // _ZN6dd63513fooEv
+ ~dd6351(); // tgen
+ dd6351(); // tgen
+};
+//SIG(-1 dd6351) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6351 ::bar(){vfunc_called(this, "_ZN6dd63513barEv");}
+void dd6351 ::foo(){vfunc_called(this, "_ZN6dd63513fooEv");}
+dd6351 ::~dd6351(){ note_dtor("dd6351", this);} // tgen
+dd6351 ::dd6351(){ note_ctor("dd6351", this);} // tgen
+
+static void Test_dd6351()
+{
+ extern Class_Descriptor cd_dd6351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6351, buf);
+ dd6351 *dp, &lv = *(dp=new (buf) dd6351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd6351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(16,12), "dd6351");
+ check_base_class_offset(lv, (cc351*), 0, "dd6351");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6351.d");
+ test_class_info(&lv, &cd_dd6351);
+ dp->~dd6351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6351(Test_dd6351, "dd6351", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6351C1Ev();
+extern void _ZN6dd6351D1Ev();
+Name_Map name_map_dd6351[] = {
+ NSPAIR(_ZN6dd6351C1Ev),
+ NSPAIR(_ZN6dd6351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd6351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd6351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd6351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd6351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd6351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6351[] = {
+ {&(_ZTV6dd6351[4]), 4,15},
+ {&(_tg__ZTV5cc351__6dd6351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd6351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd6351[3]), 3,4},
+ {&(_ZTV6dd6351[10]), 10,15},
+ {&(_ZTV6dd6351[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd6351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd6351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static VTBL_ENTRY alt_thunk_names681[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6351 = { "dd6351", // class name
+ bases_dd6351, 3,
+ &(vtc_dd6351[0]), // expected_vtbl_contents
+ &(vtt_dd6351[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6351),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names681,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06351 : dd6351 {
+ int e;
+ ~ee06351(); // tgen
+ ee06351(); // tgen
+};
+//SIG(1 ee06351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06351 ::~ee06351(){ note_dtor("ee06351", this);} // tgen
+ee06351 ::ee06351(){ note_ctor("ee06351", this);} // tgen
+
+static void Test_ee06351()
+{
+ extern Class_Descriptor cd_ee06351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06351, buf);
+ ee06351 *dp, &lv = *(dp=new (buf) ee06351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee06351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(24,16), "ee06351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), 0, "ee06351");
+ check_base_class_offset(lv, (dd6351*), 0, "ee06351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06351.e");
+ test_class_info(&lv, &cd_ee06351);
+ dp->~ee06351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06351(Test_ee06351, "ee06351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06351C1Ev();
+extern void _ZN7ee06351D1Ev();
+Name_Map name_map_ee06351[] = {
+ NSPAIR(_ZN7ee06351C1Ev),
+ NSPAIR(_ZN7ee06351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee06351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee06351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee06351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee06351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee06351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee06351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee06351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee06351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee06351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee06351[] = {
+ {&(_ZTV7ee06351[4]), 4,15},
+ {&(_tg__ZTV6dd6351__7ee06351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee06351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee06351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee06351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee06351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee06351[3]), 3,4},
+ {&(_ZTV7ee06351[10]), 10,15},
+ {&(_ZTV7ee06351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee06351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee06351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06351[];
+extern VTBL_ENTRY _ZTV7ee06351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06351[];
+static VTBL_ENTRY alt_thunk_names682[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06351 = { "ee06351", // class name
+ bases_ee06351, 4,
+ &(vtc_ee06351[0]), // expected_vtbl_contents
+ &(vtt_ee06351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names682,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16351 : virtual dd6351 {
+ int e;
+ ~ee16351(); // tgen
+ ee16351(); // tgen
+};
+//SIG(1 ee16351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16351 ::~ee16351(){ note_dtor("ee16351", this);} // tgen
+ee16351 ::ee16351(){ note_ctor("ee16351", this);} // tgen
+
+static void Test_ee16351()
+{
+ extern Class_Descriptor cd_ee16351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16351, buf);
+ ee16351 *dp, &lv = *(dp=new (buf) ee16351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee16351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(32,20), "ee16351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), ABISELECT(16,8), "ee16351");
+ check_base_class_offset(lv, (dd6351*), ABISELECT(16,8), "ee16351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16351.e");
+ test_class_info(&lv, &cd_ee16351);
+ dp->~ee16351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16351(Test_ee16351, "ee16351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16351C1Ev();
+extern void _ZN7ee16351D1Ev();
+Name_Map name_map_ee16351[] = {
+ NSPAIR(_ZN7ee16351C1Ev),
+ NSPAIR(_ZN7ee16351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee16351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16351[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee16351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee16351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee16351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee16351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee16351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee16351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee16351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee16351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee16351[] = {
+ {&(_ZTV7ee16351[5]), 5,22},
+ {&(_ZTV7ee16351[11]), 11,22},
+ {&(_ZTV7ee16351[17]), 17,22},
+ {&(_ZTV7ee16351[21]), 21,22},
+ {&(_tg__ZTV6dd6351__7ee16351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee16351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee16351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee16351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee16351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee16351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee16351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee16351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16351[];
+extern VTBL_ENTRY _ZTV7ee16351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16351[];
+static VTBL_ENTRY alt_thunk_names683[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16351 = { "ee16351", // class name
+ bases_ee16351, 4,
+ &(vtc_ee16351[0]), // expected_vtbl_contents
+ &(vtt_ee16351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names683,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26351 : dd6351 {
+ int e;
+ virtual void foo(); // _ZN7ee263513fooEv
+ ~ee26351(); // tgen
+ ee26351(); // tgen
+};
+//SIG(1 ee26351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26351 ::foo(){vfunc_called(this, "_ZN7ee263513fooEv");}
+ee26351 ::~ee26351(){ note_dtor("ee26351", this);} // tgen
+ee26351 ::ee26351(){ note_ctor("ee26351", this);} // tgen
+
+static void Test_ee26351()
+{
+ extern Class_Descriptor cd_ee26351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26351, buf);
+ ee26351 *dp, &lv = *(dp=new (buf) ee26351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee26351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(24,16), "ee26351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), 0, "ee26351");
+ check_base_class_offset(lv, (dd6351*), 0, "ee26351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26351.e");
+ test_class_info(&lv, &cd_ee26351);
+ dp->~ee26351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26351(Test_ee26351, "ee26351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26351C1Ev();
+extern void _ZN7ee26351D1Ev();
+Name_Map name_map_ee26351[] = {
+ NSPAIR(_ZN7ee26351C1Ev),
+ NSPAIR(_ZN7ee26351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee26351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26351[];
+extern void _ZN7ee263513fooEv();
+extern void _ZN6dd63513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee263513fooEv,_ZTv0_n12_N7ee263513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee263513fooEv,_ZThn24_N7ee263513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26351[0]),
+ (VTBL_ENTRY)&_ZN7ee263513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263513fooEv,_ZTv0_n12_N7ee263513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee26351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee26351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee26351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee26351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee26351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee26351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee26351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee26351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee26351[] = {
+ {&(_ZTV7ee26351[4]), 4,15},
+ {&(_tg__ZTV6dd6351__7ee26351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee26351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee26351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee26351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee26351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee26351[3]), 3,4},
+ {&(_ZTV7ee26351[10]), 10,15},
+ {&(_ZTV7ee26351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee26351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee26351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26351[];
+extern VTBL_ENTRY _ZTV7ee26351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26351[];
+static VTBL_ENTRY alt_thunk_names684[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263513fooEv,_ZTv0_n12_N7ee263513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee263513fooEv,_ZThn24_N7ee263513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26351 = { "ee26351", // class name
+ bases_ee26351, 4,
+ &(vtc_ee26351[0]), // expected_vtbl_contents
+ &(vtt_ee26351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names684,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36351 : virtual dd6351 {
+ int e;
+ virtual void foo(); // _ZN7ee363513fooEv
+ ~ee36351(); // tgen
+ ee36351(); // tgen
+};
+//SIG(1 ee36351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36351 ::foo(){vfunc_called(this, "_ZN7ee363513fooEv");}
+ee36351 ::~ee36351(){ note_dtor("ee36351", this);} // tgen
+ee36351 ::ee36351(){ note_ctor("ee36351", this);} // tgen
+
+static void Test_ee36351()
+{
+ extern Class_Descriptor cd_ee36351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36351, buf);
+ ee36351 *dp, &lv = *(dp=new (buf) ee36351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee36351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(32,20), "ee36351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), ABISELECT(16,8), "ee36351");
+ check_base_class_offset(lv, (dd6351*), ABISELECT(16,8), "ee36351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36351.e");
+ test_class_info(&lv, &cd_ee36351);
+ dp->~ee36351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36351(Test_ee36351, "ee36351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36351C1Ev();
+extern void _ZN7ee36351D1Ev();
+Name_Map name_map_ee36351[] = {
+ NSPAIR(_ZN7ee36351C1Ev),
+ NSPAIR(_ZN7ee36351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee36351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36351[];
+extern void _ZN7ee363513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee363513fooEv,_ZTv0_n20_N7ee363513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363513fooEv,_ZThn8_N7ee363513fooEv)() __attribute__((weak));
+extern void _ZN6dd63513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee363513fooEv,_ZTv0_n12_N7ee363513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee363513fooEv,_ZThn28_N7ee363513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36351[0]),
+ (VTBL_ENTRY)&_ZN7ee363513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee363513fooEv,_ZTv0_n20_N7ee363513fooEv),
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363513fooEv,_ZTv0_n12_N7ee363513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee36351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee36351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee36351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee36351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee36351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee36351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee36351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee36351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee36351[] = {
+ {&(_ZTV7ee36351[5]), 5,23},
+ {&(_ZTV7ee36351[12]), 12,23},
+ {&(_ZTV7ee36351[18]), 18,23},
+ {&(_ZTV7ee36351[22]), 22,23},
+ {&(_tg__ZTV6dd6351__7ee36351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee36351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee36351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee36351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee36351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee36351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee36351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee36351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36351[];
+extern VTBL_ENTRY _ZTV7ee36351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36351[];
+static VTBL_ENTRY alt_thunk_names685[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363513fooEv,_ZTv0_n12_N7ee363513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee363513fooEv,_ZThn28_N7ee363513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee363513fooEv,_ZTv0_n20_N7ee363513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363513fooEv,_ZThn8_N7ee363513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36351 = { "ee36351", // class name
+ bases_ee36351, 4,
+ &(vtc_ee36351[0]), // expected_vtbl_contents
+ &(vtt_ee36351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36351),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names685,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46351 : dd6351 {
+ int e;
+ virtual void bar(); // _ZN7ee463513barEv
+ ~ee46351(); // tgen
+ ee46351(); // tgen
+};
+//SIG(1 ee46351) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46351 ::bar(){vfunc_called(this, "_ZN7ee463513barEv");}
+ee46351 ::~ee46351(){ note_dtor("ee46351", this);} // tgen
+ee46351 ::ee46351(){ note_ctor("ee46351", this);} // tgen
+
+static void Test_ee46351()
+{
+ extern Class_Descriptor cd_ee46351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46351, buf);
+ ee46351 *dp, &lv = *(dp=new (buf) ee46351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee46351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(24,16), "ee46351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), 0, "ee46351");
+ check_base_class_offset(lv, (dd6351*), 0, "ee46351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46351.e");
+ test_class_info(&lv, &cd_ee46351);
+ dp->~ee46351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46351(Test_ee46351, "ee46351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46351C1Ev();
+extern void _ZN7ee46351D1Ev();
+Name_Map name_map_ee46351[] = {
+ NSPAIR(_ZN7ee46351C1Ev),
+ NSPAIR(_ZN7ee46351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee46351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN7ee463513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee463513barEv,_ZTv0_n16_N7ee463513barEv)();
+extern void ABISELECT(_ZThn24_N7ee463513barEv,_ZThn16_N7ee463513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN7ee463513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463513barEv,_ZTv0_n16_N7ee463513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee46351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee46351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee46351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee46351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee46351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee46351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee46351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee46351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee46351[] = {
+ {&(_ZTV7ee46351[4]), 4,15},
+ {&(_tg__ZTV6dd6351__7ee46351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee46351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee46351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee46351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee46351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee46351[3]), 3,4},
+ {&(_ZTV7ee46351[10]), 10,15},
+ {&(_ZTV7ee46351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee46351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee46351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46351[];
+extern VTBL_ENTRY _ZTV7ee46351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46351[];
+static VTBL_ENTRY alt_thunk_names686[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463513barEv,_ZTv0_n16_N7ee463513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463513barEv,_ZThn16_N7ee463513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46351 = { "ee46351", // class name
+ bases_ee46351, 4,
+ &(vtc_ee46351[0]), // expected_vtbl_contents
+ &(vtt_ee46351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names686,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56351 : virtual dd6351 {
+ int e;
+ virtual void bar(); // _ZN7ee563513barEv
+ ~ee56351(); // tgen
+ ee56351(); // tgen
+};
+//SIG(1 ee56351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56351 ::bar(){vfunc_called(this, "_ZN7ee563513barEv");}
+ee56351 ::~ee56351(){ note_dtor("ee56351", this);} // tgen
+ee56351 ::ee56351(){ note_ctor("ee56351", this);} // tgen
+
+static void Test_ee56351()
+{
+ extern Class_Descriptor cd_ee56351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56351, buf);
+ ee56351 *dp, &lv = *(dp=new (buf) ee56351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee56351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(32,20), "ee56351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), ABISELECT(16,8), "ee56351");
+ check_base_class_offset(lv, (dd6351*), ABISELECT(16,8), "ee56351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56351.e");
+ test_class_info(&lv, &cd_ee56351);
+ dp->~ee56351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56351(Test_ee56351, "ee56351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56351C1Ev();
+extern void _ZN7ee56351D1Ev();
+Name_Map name_map_ee56351[] = {
+ NSPAIR(_ZN7ee56351C1Ev),
+ NSPAIR(_ZN7ee56351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee56351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56351[];
+extern void _ZN7ee563513barEv();
+extern void _ZN6dd63513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee563513barEv,_ZTv0_n24_N7ee563513barEv)();
+extern void ABISELECT(_ZThn16_N7ee563513barEv,_ZThn8_N7ee563513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563513barEv,_ZTv0_n16_N7ee563513barEv)();
+extern void ABISELECT(_ZThn32_N7ee563513barEv,_ZThn20_N7ee563513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56351[0]),
+ (VTBL_ENTRY)&_ZN7ee563513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee563513barEv,_ZTv0_n24_N7ee563513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563513barEv,_ZTv0_n16_N7ee563513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee56351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee56351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee56351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee56351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee56351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee56351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee56351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee56351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee56351[] = {
+ {&(_ZTV7ee56351[5]), 5,23},
+ {&(_ZTV7ee56351[12]), 12,23},
+ {&(_ZTV7ee56351[18]), 18,23},
+ {&(_ZTV7ee56351[22]), 22,23},
+ {&(_tg__ZTV6dd6351__7ee56351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee56351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee56351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee56351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee56351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee56351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee56351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee56351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56351[];
+extern VTBL_ENTRY _ZTV7ee56351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56351[];
+static VTBL_ENTRY alt_thunk_names687[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563513barEv,_ZTv0_n16_N7ee563513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563513barEv,_ZThn20_N7ee563513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee563513barEv,_ZTv0_n24_N7ee563513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563513barEv,_ZThn8_N7ee563513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56351 = { "ee56351", // class name
+ bases_ee56351, 4,
+ &(vtc_ee56351[0]), // expected_vtbl_contents
+ &(vtt_ee56351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56351),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names687,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66351 : dd6351 {
+ int e;
+ virtual void foo(); // _ZN7ee663513fooEv
+ virtual void bar(); // _ZN7ee663513barEv
+ ~ee66351(); // tgen
+ ee66351(); // tgen
+};
+//SIG(1 ee66351) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66351 ::foo(){vfunc_called(this, "_ZN7ee663513fooEv");}
+void ee66351 ::bar(){vfunc_called(this, "_ZN7ee663513barEv");}
+ee66351 ::~ee66351(){ note_dtor("ee66351", this);} // tgen
+ee66351 ::ee66351(){ note_ctor("ee66351", this);} // tgen
+
+static void Test_ee66351()
+{
+ extern Class_Descriptor cd_ee66351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66351, buf);
+ ee66351 *dp, &lv = *(dp=new (buf) ee66351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee66351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(24,16), "ee66351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), 0, "ee66351");
+ check_base_class_offset(lv, (dd6351*), 0, "ee66351");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66351.e");
+ test_class_info(&lv, &cd_ee66351);
+ dp->~ee66351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66351(Test_ee66351, "ee66351", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66351C1Ev();
+extern void _ZN7ee66351D1Ev();
+Name_Map name_map_ee66351[] = {
+ NSPAIR(_ZN7ee66351C1Ev),
+ NSPAIR(_ZN7ee66351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee66351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66351[];
+extern void _ZN7ee663513fooEv();
+extern void _ZN7ee663513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee663513barEv,_ZTv0_n16_N7ee663513barEv)();
+extern void ABISELECT(_ZThn24_N7ee663513barEv,_ZThn16_N7ee663513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee663513fooEv,_ZTv0_n12_N7ee663513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee663513fooEv,_ZThn24_N7ee663513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66351[0]),
+ (VTBL_ENTRY)&_ZN7ee663513fooEv,
+ (VTBL_ENTRY)&_ZN7ee663513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663513barEv,_ZTv0_n16_N7ee663513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663513fooEv,_ZTv0_n12_N7ee663513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee66351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee66351[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee66351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee66351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee66351[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee66351[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee66351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee66351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee66351[] = {
+ {&(_ZTV7ee66351[4]), 4,15},
+ {&(_tg__ZTV6dd6351__7ee66351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee66351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee66351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee66351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee66351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee66351[3]), 3,4},
+ {&(_ZTV7ee66351[10]), 10,15},
+ {&(_ZTV7ee66351[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee66351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee66351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66351[];
+extern VTBL_ENTRY _ZTV7ee66351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66351[];
+static VTBL_ENTRY alt_thunk_names688[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63513fooEv,_ZThn24_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63513barEv,_ZThn16_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3513fooEv,_ZThn24_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663513fooEv,_ZTv0_n12_N7ee663513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee663513fooEv,_ZThn24_N7ee663513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663513barEv,_ZTv0_n16_N7ee663513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663513barEv,_ZThn16_N7ee663513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66351 = { "ee66351", // class name
+ bases_ee66351, 4,
+ &(vtc_ee66351[0]), // expected_vtbl_contents
+ &(vtt_ee66351[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66351),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66351),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names688,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76351 : virtual dd6351 {
+ int e;
+ virtual void foo(); // _ZN7ee763513fooEv
+ virtual void bar(); // _ZN7ee763513barEv
+ ~ee76351(); // tgen
+ ee76351(); // tgen
+};
+//SIG(1 ee76351) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76351 ::foo(){vfunc_called(this, "_ZN7ee763513fooEv");}
+void ee76351 ::bar(){vfunc_called(this, "_ZN7ee763513barEv");}
+ee76351 ::~ee76351(){ note_dtor("ee76351", this);} // tgen
+ee76351 ::ee76351(){ note_ctor("ee76351", this);} // tgen
+
+static void Test_ee76351()
+{
+ extern Class_Descriptor cd_ee76351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76351, buf);
+ ee76351 *dp, &lv = *(dp=new (buf) ee76351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee76351");
+ check_base_class_offset(lv, (bb51*)(cc351*)(dd6351*), ABISELECT(32,20), "ee76351");
+ check_base_class_offset(lv, (cc351*)(dd6351*), ABISELECT(16,8), "ee76351");
+ check_base_class_offset(lv, (dd6351*), ABISELECT(16,8), "ee76351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76351.e");
+ test_class_info(&lv, &cd_ee76351);
+ dp->~ee76351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76351(Test_ee76351, "ee76351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76351C1Ev();
+extern void _ZN7ee76351D1Ev();
+Name_Map name_map_ee76351[] = {
+ NSPAIR(_ZN7ee76351C1Ev),
+ NSPAIR(_ZN7ee76351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd6351;
+extern VTBL_ENTRY _ZTI6dd6351[];
+extern VTBL_ENTRY _ZTV6dd6351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6351[];
+static Base_Class bases_ee76351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76351[];
+extern void _ZN7ee763513fooEv();
+extern void _ZN7ee763513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee763513fooEv,_ZTv0_n20_N7ee763513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763513fooEv,_ZThn8_N7ee763513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee763513barEv,_ZTv0_n24_N7ee763513barEv)();
+extern void ABISELECT(_ZThn16_N7ee763513barEv,_ZThn8_N7ee763513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763513barEv,_ZTv0_n16_N7ee763513barEv)();
+extern void ABISELECT(_ZThn32_N7ee763513barEv,_ZThn20_N7ee763513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763513fooEv,_ZTv0_n12_N7ee763513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee763513fooEv,_ZThn28_N7ee763513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76351[0]),
+ (VTBL_ENTRY)&_ZN7ee763513fooEv,
+ (VTBL_ENTRY)&_ZN7ee763513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763513fooEv,_ZTv0_n20_N7ee763513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee763513barEv,_ZTv0_n24_N7ee763513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763513barEv,_ZTv0_n16_N7ee763513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763513fooEv,_ZTv0_n12_N7ee763513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76351[];
+extern void _ZN6dd63513fooEv();
+extern void _ZN6dd63513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6351__7ee76351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&_ZN6dd63513fooEv,
+ (VTBL_ENTRY)&_ZN6dd63513barEv,
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3516dd6351__7ee76351[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc3516dd6351__7ee76351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc3516dd6351__7ee76351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv)();
+extern void ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6351__7ee76351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6351__7ee76351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee76351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee76351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee76351[] = {
+ {&(_ZTV7ee76351[5]), 5,24},
+ {&(_ZTV7ee76351[13]), 13,24},
+ {&(_ZTV7ee76351[19]), 19,24},
+ {&(_ZTV7ee76351[23]), 23,24},
+ {&(_tg__ZTV6dd6351__7ee76351[4]), 4,6},
+ {&(_tg__ZTV5cc3516dd6351__7ee76351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc3516dd6351__7ee76351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc3516dd6351__7ee76351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6351__7ee76351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6351__7ee76351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee76351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee76351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76351[];
+extern VTBL_ENTRY _ZTV7ee76351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76351[];
+static VTBL_ENTRY alt_thunk_names689[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63513fooEv,_ZTv0_n12_N6dd63513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63513fooEv,_ZThn20_N6dd63513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63513barEv,_ZTv0_n16_N6dd63513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63513barEv,_ZThn12_N6dd63513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn20_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763513fooEv,_ZTv0_n12_N7ee763513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee763513fooEv,_ZThn28_N7ee763513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763513barEv,_ZTv0_n16_N7ee763513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763513barEv,_ZThn20_N7ee763513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee763513barEv,_ZTv0_n24_N7ee763513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763513barEv,_ZThn8_N7ee763513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763513fooEv,_ZTv0_n20_N7ee763513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763513fooEv,_ZThn8_N7ee763513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76351 = { "ee76351", // class name
+ bases_ee76351, 4,
+ &(vtc_ee76351[0]), // expected_vtbl_contents
+ &(vtt_ee76351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76351),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76351),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names689,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7351 : virtual cc351 {
+ int d;
+ virtual void bar(); // _ZN6dd73513barEv
+ virtual void foo(); // _ZN6dd73513fooEv
+ ~dd7351(); // tgen
+ dd7351(); // tgen
+};
+//SIG(-1 dd7351) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7351 ::bar(){vfunc_called(this, "_ZN6dd73513barEv");}
+void dd7351 ::foo(){vfunc_called(this, "_ZN6dd73513fooEv");}
+dd7351 ::~dd7351(){ note_dtor("dd7351", this);} // tgen
+dd7351 ::dd7351(){ note_ctor("dd7351", this);} // tgen
+
+static void Test_dd7351()
+{
+ extern Class_Descriptor cd_dd7351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7351, buf);
+ dd7351 *dp, &lv = *(dp=new (buf) dd7351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd7351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,16), "dd7351");
+ check_base_class_offset(lv, (cc351*), ABISELECT(16,8), "dd7351");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7351.d");
+ test_class_info(&lv, &cd_dd7351);
+ dp->~dd7351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7351(Test_dd7351, "dd7351", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7351C1Ev();
+extern void _ZN6dd7351D1Ev();
+Name_Map name_map_dd7351[] = {
+ NSPAIR(_ZN6dd7351C1Ev),
+ NSPAIR(_ZN6dd7351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+static Base_Class bases_dd7351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__6dd7351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__6dd7351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd7351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7351[] = {
+ {&(_ZTV6dd7351[5]), 5,22},
+ {&(_ZTV6dd7351[12]), 12,22},
+ {&(_ZTV6dd7351[17]), 17,22},
+ {&(_ZTV6dd7351[21]), 21,22},
+ {&(_tg__ZTV5cc351__6dd7351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__6dd7351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__6dd7351[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd7351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd7351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static VTBL_ENTRY alt_thunk_names690[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7351 = { "dd7351", // class name
+ bases_dd7351, 3,
+ &(vtc_dd7351[0]), // expected_vtbl_contents
+ &(vtt_dd7351[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7351),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names690,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07351 : dd7351 {
+ int e;
+ ~ee07351(); // tgen
+ ee07351(); // tgen
+};
+//SIG(1 ee07351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07351 ::~ee07351(){ note_dtor("ee07351", this);} // tgen
+ee07351 ::ee07351(){ note_ctor("ee07351", this);} // tgen
+
+static void Test_ee07351()
+{
+ extern Class_Descriptor cd_ee07351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07351, buf);
+ ee07351 *dp, &lv = *(dp=new (buf) ee07351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee07351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee07351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(16,12), "ee07351");
+ check_base_class_offset(lv, (dd7351*), 0, "ee07351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07351.e");
+ test_class_info(&lv, &cd_ee07351);
+ dp->~ee07351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07351(Test_ee07351, "ee07351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07351C1Ev();
+extern void _ZN7ee07351D1Ev();
+Name_Map name_map_ee07351[] = {
+ NSPAIR(_ZN7ee07351C1Ev),
+ NSPAIR(_ZN7ee07351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee07351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee07351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee07351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee07351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee07351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee07351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee07351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee07351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee07351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee07351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07351[] = {
+ {&(_ZTV7ee07351[5]), 5,22},
+ {&(_tg__ZTV6dd7351__7ee07351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee07351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee07351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee07351[3]), 3,4},
+ {&(_ZTV7ee07351[12]), 12,22},
+ {&(_ZTV7ee07351[17]), 17,22},
+ {&(_ZTV7ee07351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee07351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee07351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee07351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee07351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee07351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07351[];
+extern VTBL_ENTRY _ZTV7ee07351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07351[];
+static VTBL_ENTRY alt_thunk_names691[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07351 = { "ee07351", // class name
+ bases_ee07351, 4,
+ &(vtc_ee07351[0]), // expected_vtbl_contents
+ &(vtt_ee07351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names691,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17351 : virtual dd7351 {
+ int e;
+ ~ee17351(); // tgen
+ ee17351(); // tgen
+};
+//SIG(1 ee17351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17351 ::~ee17351(){ note_dtor("ee17351", this);} // tgen
+ee17351 ::ee17351(){ note_ctor("ee17351", this);} // tgen
+
+static void Test_ee17351()
+{
+ extern Class_Descriptor cd_ee17351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17351, buf);
+ ee17351 *dp, &lv = *(dp=new (buf) ee17351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee17351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee17351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(32,16), "ee17351");
+ check_base_class_offset(lv, (dd7351*), ABISELECT(16,8), "ee17351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17351.e");
+ test_class_info(&lv, &cd_ee17351);
+ dp->~ee17351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17351(Test_ee17351, "ee17351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17351C1Ev();
+extern void _ZN7ee17351D1Ev();
+Name_Map name_map_ee17351[] = {
+ NSPAIR(_ZN7ee17351C1Ev),
+ NSPAIR(_ZN7ee17351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee17351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17351[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee17351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee17351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee17351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee17351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee17351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee17351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee17351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee17351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee17351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17351[] = {
+ {&(_ZTV7ee17351[6]), 6,30},
+ {&(_ZTV7ee17351[13]), 13,30},
+ {&(_ZTV7ee17351[20]), 20,30},
+ {&(_ZTV7ee17351[25]), 25,30},
+ {&(_ZTV7ee17351[29]), 29,30},
+ {&(_tg__ZTV6dd7351__7ee17351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee17351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee17351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee17351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee17351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee17351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee17351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee17351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee17351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17351[];
+extern VTBL_ENTRY _ZTV7ee17351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17351[];
+static VTBL_ENTRY alt_thunk_names692[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17351 = { "ee17351", // class name
+ bases_ee17351, 4,
+ &(vtc_ee17351[0]), // expected_vtbl_contents
+ &(vtt_ee17351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17351),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names692,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27351 : dd7351 {
+ int e;
+ virtual void foo(); // _ZN7ee273513fooEv
+ ~ee27351(); // tgen
+ ee27351(); // tgen
+};
+//SIG(1 ee27351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27351 ::foo(){vfunc_called(this, "_ZN7ee273513fooEv");}
+ee27351 ::~ee27351(){ note_dtor("ee27351", this);} // tgen
+ee27351 ::ee27351(){ note_ctor("ee27351", this);} // tgen
+
+static void Test_ee27351()
+{
+ extern Class_Descriptor cd_ee27351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27351, buf);
+ ee27351 *dp, &lv = *(dp=new (buf) ee27351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee27351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee27351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(16,12), "ee27351");
+ check_base_class_offset(lv, (dd7351*), 0, "ee27351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27351.e");
+ test_class_info(&lv, &cd_ee27351);
+ dp->~ee27351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27351(Test_ee27351, "ee27351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27351C1Ev();
+extern void _ZN7ee27351D1Ev();
+Name_Map name_map_ee27351[] = {
+ NSPAIR(_ZN7ee27351C1Ev),
+ NSPAIR(_ZN7ee27351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee27351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN7ee273513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee273513fooEv,_ZTv0_n20_N7ee273513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273513fooEv,_ZThn12_N7ee273513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273513fooEv,_ZTv0_n12_N7ee273513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee273513fooEv,_ZThn28_N7ee273513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN7ee273513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee273513fooEv,_ZTv0_n20_N7ee273513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273513fooEv,_ZTv0_n12_N7ee273513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee27351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee27351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee27351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee27351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee27351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee27351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee27351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee27351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee27351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27351[] = {
+ {&(_ZTV7ee27351[5]), 5,22},
+ {&(_tg__ZTV6dd7351__7ee27351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee27351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee27351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee27351[3]), 3,4},
+ {&(_ZTV7ee27351[12]), 12,22},
+ {&(_ZTV7ee27351[17]), 17,22},
+ {&(_ZTV7ee27351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee27351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee27351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee27351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee27351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee27351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27351[];
+extern VTBL_ENTRY _ZTV7ee27351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27351[];
+static VTBL_ENTRY alt_thunk_names693[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273513fooEv,_ZTv0_n12_N7ee273513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee273513fooEv,_ZThn28_N7ee273513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee273513fooEv,_ZTv0_n20_N7ee273513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273513fooEv,_ZThn12_N7ee273513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27351 = { "ee27351", // class name
+ bases_ee27351, 4,
+ &(vtc_ee27351[0]), // expected_vtbl_contents
+ &(vtt_ee27351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names693,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37351 : virtual dd7351 {
+ int e;
+ virtual void foo(); // _ZN7ee373513fooEv
+ ~ee37351(); // tgen
+ ee37351(); // tgen
+};
+//SIG(1 ee37351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37351 ::foo(){vfunc_called(this, "_ZN7ee373513fooEv");}
+ee37351 ::~ee37351(){ note_dtor("ee37351", this);} // tgen
+ee37351 ::ee37351(){ note_ctor("ee37351", this);} // tgen
+
+static void Test_ee37351()
+{
+ extern Class_Descriptor cd_ee37351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37351, buf);
+ ee37351 *dp, &lv = *(dp=new (buf) ee37351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee37351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee37351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(32,16), "ee37351");
+ check_base_class_offset(lv, (dd7351*), ABISELECT(16,8), "ee37351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37351.e");
+ test_class_info(&lv, &cd_ee37351);
+ dp->~ee37351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37351(Test_ee37351, "ee37351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37351C1Ev();
+extern void _ZN7ee37351D1Ev();
+Name_Map name_map_ee37351[] = {
+ NSPAIR(_ZN7ee37351C1Ev),
+ NSPAIR(_ZN7ee37351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee37351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37351[];
+extern void _ZN7ee373513fooEv();
+extern void _ZN6dd73513barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee373513fooEv,_ZTv0_n28_N7ee373513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373513fooEv,_ZThn8_N7ee373513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee373513fooEv,_ZTv0_n20_N7ee373513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373513fooEv,_ZThn16_N7ee373513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373513fooEv,_ZTv0_n12_N7ee373513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee373513fooEv,_ZThn32_N7ee373513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37351[0]),
+ (VTBL_ENTRY)&_ZN7ee373513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee373513fooEv,_ZTv0_n28_N7ee373513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee373513fooEv,_ZTv0_n20_N7ee373513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373513fooEv,_ZTv0_n12_N7ee373513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee37351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee37351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee37351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee37351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee37351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee37351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee37351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee37351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee37351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37351[] = {
+ {&(_ZTV7ee37351[6]), 6,31},
+ {&(_ZTV7ee37351[14]), 14,31},
+ {&(_ZTV7ee37351[21]), 21,31},
+ {&(_ZTV7ee37351[26]), 26,31},
+ {&(_ZTV7ee37351[30]), 30,31},
+ {&(_tg__ZTV6dd7351__7ee37351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee37351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee37351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee37351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee37351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee37351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee37351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee37351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee37351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37351[];
+extern VTBL_ENTRY _ZTV7ee37351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37351[];
+static VTBL_ENTRY alt_thunk_names694[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373513fooEv,_ZTv0_n12_N7ee373513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee373513fooEv,_ZThn32_N7ee373513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee373513fooEv,_ZTv0_n20_N7ee373513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373513fooEv,_ZThn16_N7ee373513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee373513fooEv,_ZTv0_n28_N7ee373513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373513fooEv,_ZThn8_N7ee373513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37351 = { "ee37351", // class name
+ bases_ee37351, 4,
+ &(vtc_ee37351[0]), // expected_vtbl_contents
+ &(vtt_ee37351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37351),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names694,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47351 : dd7351 {
+ int e;
+ virtual void bar(); // _ZN7ee473513barEv
+ ~ee47351(); // tgen
+ ee47351(); // tgen
+};
+//SIG(1 ee47351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47351 ::bar(){vfunc_called(this, "_ZN7ee473513barEv");}
+ee47351 ::~ee47351(){ note_dtor("ee47351", this);} // tgen
+ee47351 ::ee47351(){ note_ctor("ee47351", this);} // tgen
+
+static void Test_ee47351()
+{
+ extern Class_Descriptor cd_ee47351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47351, buf);
+ ee47351 *dp, &lv = *(dp=new (buf) ee47351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee47351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee47351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(16,12), "ee47351");
+ check_base_class_offset(lv, (dd7351*), 0, "ee47351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47351.e");
+ test_class_info(&lv, &cd_ee47351);
+ dp->~ee47351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47351(Test_ee47351, "ee47351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47351C1Ev();
+extern void _ZN7ee47351D1Ev();
+Name_Map name_map_ee47351[] = {
+ NSPAIR(_ZN7ee47351C1Ev),
+ NSPAIR(_ZN7ee47351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee47351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47351[];
+extern void _ZN7ee473513barEv();
+extern void _ZN6dd73513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473513barEv,_ZTv0_n16_N7ee473513barEv)();
+extern void ABISELECT(_ZThn32_N7ee473513barEv,_ZThn20_N7ee473513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47351[0]),
+ (VTBL_ENTRY)&_ZN7ee473513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473513barEv,_ZTv0_n16_N7ee473513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee47351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee47351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee47351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee47351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee47351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee47351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee47351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee47351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee47351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47351[] = {
+ {&(_ZTV7ee47351[5]), 5,22},
+ {&(_tg__ZTV6dd7351__7ee47351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee47351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee47351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee47351[3]), 3,4},
+ {&(_ZTV7ee47351[12]), 12,22},
+ {&(_ZTV7ee47351[17]), 17,22},
+ {&(_ZTV7ee47351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee47351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee47351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee47351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee47351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee47351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47351[];
+extern VTBL_ENTRY _ZTV7ee47351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47351[];
+static VTBL_ENTRY alt_thunk_names695[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473513barEv,_ZTv0_n16_N7ee473513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473513barEv,_ZThn20_N7ee473513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47351 = { "ee47351", // class name
+ bases_ee47351, 4,
+ &(vtc_ee47351[0]), // expected_vtbl_contents
+ &(vtt_ee47351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names695,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57351 : virtual dd7351 {
+ int e;
+ virtual void bar(); // _ZN7ee573513barEv
+ ~ee57351(); // tgen
+ ee57351(); // tgen
+};
+//SIG(1 ee57351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57351 ::bar(){vfunc_called(this, "_ZN7ee573513barEv");}
+ee57351 ::~ee57351(){ note_dtor("ee57351", this);} // tgen
+ee57351 ::ee57351(){ note_ctor("ee57351", this);} // tgen
+
+static void Test_ee57351()
+{
+ extern Class_Descriptor cd_ee57351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57351, buf);
+ ee57351 *dp, &lv = *(dp=new (buf) ee57351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee57351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee57351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(32,16), "ee57351");
+ check_base_class_offset(lv, (dd7351*), ABISELECT(16,8), "ee57351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57351.e");
+ test_class_info(&lv, &cd_ee57351);
+ dp->~ee57351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57351(Test_ee57351, "ee57351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57351C1Ev();
+extern void _ZN7ee57351D1Ev();
+Name_Map name_map_ee57351[] = {
+ NSPAIR(_ZN7ee57351C1Ev),
+ NSPAIR(_ZN7ee57351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee57351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57351[];
+extern void _ZN7ee573513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee573513barEv,_ZTv0_n24_N7ee573513barEv)();
+extern void ABISELECT(_ZThn16_N7ee573513barEv,_ZThn8_N7ee573513barEv)() __attribute__((weak));
+extern void _ZN6dd73513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573513barEv,_ZTv0_n16_N7ee573513barEv)();
+extern void ABISELECT(_ZThn48_N7ee573513barEv,_ZThn24_N7ee573513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57351[0]),
+ (VTBL_ENTRY)&_ZN7ee573513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee573513barEv,_ZTv0_n24_N7ee573513barEv),
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573513barEv,_ZTv0_n16_N7ee573513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee57351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee57351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee57351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee57351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee57351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee57351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee57351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee57351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee57351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57351[] = {
+ {&(_ZTV7ee57351[6]), 6,31},
+ {&(_ZTV7ee57351[14]), 14,31},
+ {&(_ZTV7ee57351[21]), 21,31},
+ {&(_ZTV7ee57351[26]), 26,31},
+ {&(_ZTV7ee57351[30]), 30,31},
+ {&(_tg__ZTV6dd7351__7ee57351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee57351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee57351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee57351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee57351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee57351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee57351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee57351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee57351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57351[];
+extern VTBL_ENTRY _ZTV7ee57351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57351[];
+static VTBL_ENTRY alt_thunk_names696[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573513barEv,_ZTv0_n16_N7ee573513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573513barEv,_ZThn24_N7ee573513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee573513barEv,_ZTv0_n24_N7ee573513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573513barEv,_ZThn8_N7ee573513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57351 = { "ee57351", // class name
+ bases_ee57351, 4,
+ &(vtc_ee57351[0]), // expected_vtbl_contents
+ &(vtt_ee57351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57351),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names696,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67351 : dd7351 {
+ int e;
+ virtual void foo(); // _ZN7ee673513fooEv
+ virtual void bar(); // _ZN7ee673513barEv
+ ~ee67351(); // tgen
+ ee67351(); // tgen
+};
+//SIG(1 ee67351) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67351 ::foo(){vfunc_called(this, "_ZN7ee673513fooEv");}
+void ee67351 ::bar(){vfunc_called(this, "_ZN7ee673513barEv");}
+ee67351 ::~ee67351(){ note_dtor("ee67351", this);} // tgen
+ee67351 ::ee67351(){ note_ctor("ee67351", this);} // tgen
+
+static void Test_ee67351()
+{
+ extern Class_Descriptor cd_ee67351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67351, buf);
+ ee67351 *dp, &lv = *(dp=new (buf) ee67351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee67351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(32,20), "ee67351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(16,12), "ee67351");
+ check_base_class_offset(lv, (dd7351*), 0, "ee67351");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67351.e");
+ test_class_info(&lv, &cd_ee67351);
+ dp->~ee67351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67351(Test_ee67351, "ee67351", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67351C1Ev();
+extern void _ZN7ee67351D1Ev();
+Name_Map name_map_ee67351[] = {
+ NSPAIR(_ZN7ee67351C1Ev),
+ NSPAIR(_ZN7ee67351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee67351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67351[];
+extern void _ZN7ee673513barEv();
+extern void _ZN7ee673513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee673513fooEv,_ZTv0_n20_N7ee673513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673513fooEv,_ZThn12_N7ee673513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673513barEv,_ZTv0_n16_N7ee673513barEv)();
+extern void ABISELECT(_ZThn32_N7ee673513barEv,_ZThn20_N7ee673513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673513fooEv,_ZTv0_n12_N7ee673513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee673513fooEv,_ZThn28_N7ee673513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67351[0]),
+ (VTBL_ENTRY)&_ZN7ee673513barEv,
+ (VTBL_ENTRY)&_ZN7ee673513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee673513fooEv,_ZTv0_n20_N7ee673513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673513barEv,_ZTv0_n16_N7ee673513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673513fooEv,_ZTv0_n12_N7ee673513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee67351[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee67351[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee67351[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee67351[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee67351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee67351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee67351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee67351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee67351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67351[] = {
+ {&(_ZTV7ee67351[5]), 5,22},
+ {&(_tg__ZTV6dd7351__7ee67351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee67351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee67351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee67351[3]), 3,4},
+ {&(_ZTV7ee67351[12]), 12,22},
+ {&(_ZTV7ee67351[17]), 17,22},
+ {&(_ZTV7ee67351[21]), 21,22},
+ {&(_tg__ZTV5cc351__7ee67351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee67351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee67351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee67351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee67351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67351[];
+extern VTBL_ENTRY _ZTV7ee67351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67351[];
+static VTBL_ENTRY alt_thunk_names697[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn28_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn20_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn12_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673513fooEv,_ZTv0_n12_N7ee673513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee673513fooEv,_ZThn28_N7ee673513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673513barEv,_ZTv0_n16_N7ee673513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673513barEv,_ZThn20_N7ee673513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee673513fooEv,_ZTv0_n20_N7ee673513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673513fooEv,_ZThn12_N7ee673513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67351 = { "ee67351", // class name
+ bases_ee67351, 4,
+ &(vtc_ee67351[0]), // expected_vtbl_contents
+ &(vtt_ee67351[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67351),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67351),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67351),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names697,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77351 : virtual dd7351 {
+ int e;
+ virtual void foo(); // _ZN7ee773513fooEv
+ virtual void bar(); // _ZN7ee773513barEv
+ ~ee77351(); // tgen
+ ee77351(); // tgen
+};
+//SIG(1 ee77351) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77351 ::foo(){vfunc_called(this, "_ZN7ee773513fooEv");}
+void ee77351 ::bar(){vfunc_called(this, "_ZN7ee773513barEv");}
+ee77351 ::~ee77351(){ note_dtor("ee77351", this);} // tgen
+ee77351 ::ee77351(){ note_ctor("ee77351", this);} // tgen
+
+static void Test_ee77351()
+{
+ extern Class_Descriptor cd_ee77351;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77351, buf);
+ ee77351 *dp, &lv = *(dp=new (buf) ee77351());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77351)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77351)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee77351");
+ check_base_class_offset(lv, (bb51*)(cc351*), ABISELECT(48,24), "ee77351");
+ check_base_class_offset(lv, (cc351*)(dd7351*), ABISELECT(32,16), "ee77351");
+ check_base_class_offset(lv, (dd7351*), ABISELECT(16,8), "ee77351");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77351.e");
+ test_class_info(&lv, &cd_ee77351);
+ dp->~ee77351();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77351(Test_ee77351, "ee77351", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77351C1Ev();
+extern void _ZN7ee77351D1Ev();
+Name_Map name_map_ee77351[] = {
+ NSPAIR(_ZN7ee77351C1Ev),
+ NSPAIR(_ZN7ee77351D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc351;
+extern VTBL_ENTRY _ZTI5cc351[];
+extern VTBL_ENTRY _ZTV5cc351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc351[];
+extern Class_Descriptor cd_dd7351;
+extern VTBL_ENTRY _ZTI6dd7351[];
+extern VTBL_ENTRY _ZTV6dd7351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7351[];
+static Base_Class bases_ee77351[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 28, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc351, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7351, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77351[];
+extern void _ZN7ee773513fooEv();
+extern void _ZN7ee773513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee773513barEv,_ZTv0_n24_N7ee773513barEv)();
+extern void ABISELECT(_ZThn16_N7ee773513barEv,_ZThn8_N7ee773513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee773513fooEv,_ZTv0_n28_N7ee773513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773513fooEv,_ZThn8_N7ee773513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee773513fooEv,_ZTv0_n20_N7ee773513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773513fooEv,_ZThn16_N7ee773513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773513barEv,_ZTv0_n16_N7ee773513barEv)();
+extern void ABISELECT(_ZThn48_N7ee773513barEv,_ZThn24_N7ee773513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773513fooEv,_ZTv0_n12_N7ee773513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee773513fooEv,_ZThn32_N7ee773513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77351[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77351[0]),
+ (VTBL_ENTRY)&_ZN7ee773513fooEv,
+ (VTBL_ENTRY)&_ZN7ee773513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773513barEv,_ZTv0_n24_N7ee773513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee773513fooEv,_ZTv0_n28_N7ee773513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773513fooEv,_ZTv0_n20_N7ee773513fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773513barEv,_ZTv0_n16_N7ee773513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773513fooEv,_ZTv0_n12_N7ee773513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77351[];
+extern void _ZN6dd73513barEv();
+extern void _ZN6dd73513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7351__7ee77351[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&_ZN6dd73513barEv,
+ (VTBL_ENTRY)&_ZN6dd73513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc351__6dd7351__7ee77351[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv)();
+extern void ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7351__7ee77351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7351__7ee77351[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv),
+};
+extern void _ZN5cc3513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc351__7ee77351[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN5cc3513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc351__7ee77351[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc351__7ee77351[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc351[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee77351[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee77351[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77351[] = {
+ {&(_ZTV7ee77351[6]), 6,32},
+ {&(_ZTV7ee77351[15]), 15,32},
+ {&(_ZTV7ee77351[22]), 22,32},
+ {&(_ZTV7ee77351[27]), 27,32},
+ {&(_ZTV7ee77351[31]), 31,32},
+ {&(_tg__ZTV6dd7351__7ee77351[5]), 5,7},
+ {&(_tg__ZTV5cc351__6dd7351__7ee77351[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7351__7ee77351[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7351__7ee77351[3]), 3,4},
+ {&(_tg__ZTV5cc351__7ee77351[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc351__7ee77351[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc351__7ee77351[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee77351[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee77351[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77351[];
+extern VTBL_ENTRY _ZTV7ee77351[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77351[];
+static VTBL_ENTRY alt_thunk_names698[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3513fooEv,_ZTv0_n12_N5cc3513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3513fooEv,_ZThn16_N5cc3513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73513fooEv,_ZTv0_n12_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73513fooEv,_ZThn24_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73513barEv,_ZTv0_n16_N6dd73513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73513barEv,_ZThn16_N6dd73513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73513fooEv,_ZTv0_n20_N6dd73513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73513fooEv,_ZThn8_N6dd73513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773513fooEv,_ZTv0_n12_N7ee773513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee773513fooEv,_ZThn32_N7ee773513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773513barEv,_ZTv0_n16_N7ee773513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773513barEv,_ZThn24_N7ee773513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773513fooEv,_ZTv0_n20_N7ee773513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773513fooEv,_ZThn16_N7ee773513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee773513fooEv,_ZTv0_n28_N7ee773513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773513fooEv,_ZThn8_N7ee773513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773513barEv,_ZTv0_n24_N7ee773513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773513barEv,_ZThn8_N7ee773513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77351 = { "ee77351", // class name
+ bases_ee77351, 4,
+ &(vtc_ee77351[0]), // expected_vtbl_contents
+ &(vtt_ee77351[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77351),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77351),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77351),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names698,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc451 : bb51 {
+ int c;
+ virtual void bar(); // _ZN5cc4513barEv
+ ~cc451(); // tgen
+ cc451(); // tgen
+};
+//SIG(-1 cc451) C1{ BC2{ VBC3{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void cc451 ::bar(){vfunc_called(this, "_ZN5cc4513barEv");}
+cc451 ::~cc451(){ note_dtor("cc451", this);} // tgen
+cc451 ::cc451(){ note_ctor("cc451", this);} // tgen
+
+static void Test_cc451()
+{
+ extern Class_Descriptor cd_cc451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc451, buf);
+ cc451 *dp, &lv = *(dp=new (buf) cc451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc451)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(16,12), "cc451");
+ check_base_class_offset(lv, (bb51*), 0, "cc451");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc451.c");
+ test_class_info(&lv, &cd_cc451);
+ dp->~cc451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc451(Test_cc451, "cc451", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc451C1Ev();
+extern void _ZN5cc451D1Ev();
+Name_Map name_map_cc451[] = {
+ NSPAIR(_ZN5cc451C1Ev),
+ NSPAIR(_ZN5cc451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc451[] = {
+ // 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)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc451[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc451[] = {
+ {&(_ZTV5cc451[3]), 3,8},
+ {&(_tg__ZTV4bb51__5cc451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc451[3]), 3,4},
+ {&(_ZTV5cc451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+Class_Descriptor cd_cc451 = { "cc451", // class name
+ bases_cc451, 2,
+ &(vtc_cc451[0]), // expected_vtbl_contents
+ &(vtt_cc451[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc451),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0451 : cc451 {
+ int d;
+ ~dd0451(); // tgen
+ dd0451(); // tgen
+};
+//SIG(-1 dd0451) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0451 ::~dd0451(){ note_dtor("dd0451", this);} // tgen
+dd0451 ::dd0451(){ note_ctor("dd0451", this);} // tgen
+
+static void Test_dd0451()
+{
+ extern Class_Descriptor cd_dd0451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0451, buf);
+ dd0451 *dp, &lv = *(dp=new (buf) dd0451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(24,16), "dd0451");
+ check_base_class_offset(lv, (bb51*)(cc451*), 0, "dd0451");
+ check_base_class_offset(lv, (cc451*), 0, "dd0451");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0451.d");
+ test_class_info(&lv, &cd_dd0451);
+ dp->~dd0451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0451(Test_dd0451, "dd0451", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0451C1Ev();
+extern void _ZN6dd0451D1Ev();
+Name_Map name_map_dd0451[] = {
+ NSPAIR(_ZN6dd0451C1Ev),
+ NSPAIR(_ZN6dd0451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd0451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd0451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd0451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd0451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd0451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0451[] = {
+ {&(_ZTV6dd0451[3]), 3,8},
+ {&(_tg__ZTV5cc451__6dd0451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd0451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd0451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd0451[3]), 3,4},
+ {&(_ZTV6dd0451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+Class_Descriptor cd_dd0451 = { "dd0451", // class name
+ bases_dd0451, 3,
+ &(vtc_dd0451[0]), // expected_vtbl_contents
+ &(vtt_dd0451[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0451),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00451 : dd0451 {
+ int e;
+ ~ee00451(); // tgen
+ ee00451(); // tgen
+};
+//SIG(1 ee00451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00451 ::~ee00451(){ note_dtor("ee00451", this);} // tgen
+ee00451 ::ee00451(){ note_ctor("ee00451", this);} // tgen
+
+static void Test_ee00451()
+{
+ extern Class_Descriptor cd_ee00451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00451, buf);
+ ee00451 *dp, &lv = *(dp=new (buf) ee00451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(24,20), "ee00451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), 0, "ee00451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), 0, "ee00451");
+ check_base_class_offset(lv, (dd0451*), 0, "ee00451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00451.e");
+ test_class_info(&lv, &cd_ee00451);
+ dp->~ee00451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00451(Test_ee00451, "ee00451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00451C1Ev();
+extern void _ZN7ee00451D1Ev();
+Name_Map name_map_ee00451[] = {
+ NSPAIR(_ZN7ee00451C1Ev),
+ NSPAIR(_ZN7ee00451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee00451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee00451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee00451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee00451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee00451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee00451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee00451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00451[] = {
+ {&(_ZTV7ee00451[3]), 3,8},
+ {&(_tg__ZTV6dd0451__7ee00451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee00451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee00451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee00451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee00451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee00451[3]), 3,4},
+ {&(_ZTV7ee00451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee00451[];
+extern VTBL_ENTRY _ZTV7ee00451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00451[];
+Class_Descriptor cd_ee00451 = { "ee00451", // class name
+ bases_ee00451, 4,
+ &(vtc_ee00451[0]), // expected_vtbl_contents
+ &(vtt_ee00451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10451 : virtual dd0451 {
+ int e;
+ ~ee10451(); // tgen
+ ee10451(); // tgen
+};
+//SIG(1 ee10451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10451 ::~ee10451(){ note_dtor("ee10451", this);} // tgen
+ee10451 ::ee10451(){ note_ctor("ee10451", this);} // tgen
+
+static void Test_ee10451()
+{
+ extern Class_Descriptor cd_ee10451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10451, buf);
+ ee10451 *dp, &lv = *(dp=new (buf) ee10451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(40,24), "ee10451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), ABISELECT(16,8), "ee10451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), ABISELECT(16,8), "ee10451");
+ check_base_class_offset(lv, (dd0451*), ABISELECT(16,8), "ee10451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10451.e");
+ test_class_info(&lv, &cd_ee10451);
+ dp->~ee10451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10451(Test_ee10451, "ee10451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10451C1Ev();
+extern void _ZN7ee10451D1Ev();
+Name_Map name_map_ee10451[] = {
+ NSPAIR(_ZN7ee10451C1Ev),
+ NSPAIR(_ZN7ee10451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee10451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10451[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee10451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee10451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee10451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee10451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee10451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee10451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10451[] = {
+ {&(_ZTV7ee10451[4]), 4,13},
+ {&(_ZTV7ee10451[8]), 8,13},
+ {&(_ZTV7ee10451[12]), 12,13},
+ {&(_tg__ZTV6dd0451__7ee10451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee10451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee10451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee10451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee10451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee10451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10451[];
+extern VTBL_ENTRY _ZTV7ee10451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10451[];
+Class_Descriptor cd_ee10451 = { "ee10451", // class name
+ bases_ee10451, 4,
+ &(vtc_ee10451[0]), // expected_vtbl_contents
+ &(vtt_ee10451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10451),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20451 : dd0451 {
+ int e;
+ virtual void foo(); // _ZN7ee204513fooEv
+ ~ee20451(); // tgen
+ ee20451(); // tgen
+};
+//SIG(1 ee20451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20451 ::foo(){vfunc_called(this, "_ZN7ee204513fooEv");}
+ee20451 ::~ee20451(){ note_dtor("ee20451", this);} // tgen
+ee20451 ::ee20451(){ note_ctor("ee20451", this);} // tgen
+
+static void Test_ee20451()
+{
+ extern Class_Descriptor cd_ee20451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20451, buf);
+ ee20451 *dp, &lv = *(dp=new (buf) ee20451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(24,20), "ee20451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), 0, "ee20451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), 0, "ee20451");
+ check_base_class_offset(lv, (dd0451*), 0, "ee20451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20451.e");
+ test_class_info(&lv, &cd_ee20451);
+ dp->~ee20451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20451(Test_ee20451, "ee20451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20451C1Ev();
+extern void _ZN7ee20451D1Ev();
+Name_Map name_map_ee20451[] = {
+ NSPAIR(_ZN7ee20451C1Ev),
+ NSPAIR(_ZN7ee20451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee20451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN7ee204513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee204513fooEv,_ZTv0_n12_N7ee204513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee204513fooEv,_ZThn20_N7ee204513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN7ee204513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee204513fooEv,_ZTv0_n12_N7ee204513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee20451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee20451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee20451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee20451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee20451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee20451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20451[] = {
+ {&(_ZTV7ee20451[3]), 3,9},
+ {&(_tg__ZTV6dd0451__7ee20451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee20451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee20451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee20451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee20451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee20451[3]), 3,4},
+ {&(_ZTV7ee20451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20451[];
+extern VTBL_ENTRY _ZTV7ee20451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20451[];
+static VTBL_ENTRY alt_thunk_names699[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee204513fooEv,_ZTv0_n12_N7ee204513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee204513fooEv,_ZThn20_N7ee204513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20451 = { "ee20451", // class name
+ bases_ee20451, 4,
+ &(vtc_ee20451[0]), // expected_vtbl_contents
+ &(vtt_ee20451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names699,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30451 : virtual dd0451 {
+ int e;
+ virtual void foo(); // _ZN7ee304513fooEv
+ ~ee30451(); // tgen
+ ee30451(); // tgen
+};
+//SIG(1 ee30451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30451 ::foo(){vfunc_called(this, "_ZN7ee304513fooEv");}
+ee30451 ::~ee30451(){ note_dtor("ee30451", this);} // tgen
+ee30451 ::ee30451(){ note_ctor("ee30451", this);} // tgen
+
+static void Test_ee30451()
+{
+ extern Class_Descriptor cd_ee30451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30451, buf);
+ ee30451 *dp, &lv = *(dp=new (buf) ee30451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(40,24), "ee30451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), ABISELECT(16,8), "ee30451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), ABISELECT(16,8), "ee30451");
+ check_base_class_offset(lv, (dd0451*), ABISELECT(16,8), "ee30451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30451.e");
+ test_class_info(&lv, &cd_ee30451);
+ dp->~ee30451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30451(Test_ee30451, "ee30451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30451C1Ev();
+extern void _ZN7ee30451D1Ev();
+Name_Map name_map_ee30451[] = {
+ NSPAIR(_ZN7ee30451C1Ev),
+ NSPAIR(_ZN7ee30451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee30451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30451[];
+extern void _ZN7ee304513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304513fooEv,_ZTv0_n12_N7ee304513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee304513fooEv,_ZThn24_N7ee304513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30451[0]),
+ (VTBL_ENTRY)&_ZN7ee304513fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304513fooEv,_ZTv0_n12_N7ee304513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee30451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee30451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee30451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee30451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee30451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee30451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30451[] = {
+ {&(_ZTV7ee30451[4]), 4,14},
+ {&(_ZTV7ee30451[9]), 9,14},
+ {&(_ZTV7ee30451[13]), 13,14},
+ {&(_tg__ZTV6dd0451__7ee30451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee30451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee30451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee30451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee30451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee30451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30451[];
+extern VTBL_ENTRY _ZTV7ee30451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30451[];
+static VTBL_ENTRY alt_thunk_names700[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304513fooEv,_ZTv0_n12_N7ee304513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee304513fooEv,_ZThn24_N7ee304513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30451 = { "ee30451", // class name
+ bases_ee30451, 4,
+ &(vtc_ee30451[0]), // expected_vtbl_contents
+ &(vtt_ee30451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names700,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40451 : dd0451 {
+ int e;
+ virtual void bar(); // _ZN7ee404513barEv
+ ~ee40451(); // tgen
+ ee40451(); // tgen
+};
+//SIG(1 ee40451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40451 ::bar(){vfunc_called(this, "_ZN7ee404513barEv");}
+ee40451 ::~ee40451(){ note_dtor("ee40451", this);} // tgen
+ee40451 ::ee40451(){ note_ctor("ee40451", this);} // tgen
+
+static void Test_ee40451()
+{
+ extern Class_Descriptor cd_ee40451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40451, buf);
+ ee40451 *dp, &lv = *(dp=new (buf) ee40451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(24,20), "ee40451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), 0, "ee40451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), 0, "ee40451");
+ check_base_class_offset(lv, (dd0451*), 0, "ee40451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40451.e");
+ test_class_info(&lv, &cd_ee40451);
+ dp->~ee40451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40451(Test_ee40451, "ee40451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40451C1Ev();
+extern void _ZN7ee40451D1Ev();
+Name_Map name_map_ee40451[] = {
+ NSPAIR(_ZN7ee40451C1Ev),
+ NSPAIR(_ZN7ee40451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee40451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40451[];
+extern void _ZN7ee404513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40451[0]),
+ (VTBL_ENTRY)&_ZN7ee404513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee40451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee40451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee40451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee40451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee40451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee40451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40451[] = {
+ {&(_ZTV7ee40451[3]), 3,8},
+ {&(_tg__ZTV6dd0451__7ee40451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee40451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee40451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee40451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee40451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee40451[3]), 3,4},
+ {&(_ZTV7ee40451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee40451[];
+extern VTBL_ENTRY _ZTV7ee40451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40451[];
+Class_Descriptor cd_ee40451 = { "ee40451", // class name
+ bases_ee40451, 4,
+ &(vtc_ee40451[0]), // expected_vtbl_contents
+ &(vtt_ee40451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50451 : virtual dd0451 {
+ int e;
+ virtual void bar(); // _ZN7ee504513barEv
+ ~ee50451(); // tgen
+ ee50451(); // tgen
+};
+//SIG(1 ee50451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50451 ::bar(){vfunc_called(this, "_ZN7ee504513barEv");}
+ee50451 ::~ee50451(){ note_dtor("ee50451", this);} // tgen
+ee50451 ::ee50451(){ note_ctor("ee50451", this);} // tgen
+
+static void Test_ee50451()
+{
+ extern Class_Descriptor cd_ee50451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50451, buf);
+ ee50451 *dp, &lv = *(dp=new (buf) ee50451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(40,24), "ee50451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), ABISELECT(16,8), "ee50451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), ABISELECT(16,8), "ee50451");
+ check_base_class_offset(lv, (dd0451*), ABISELECT(16,8), "ee50451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50451.e");
+ test_class_info(&lv, &cd_ee50451);
+ dp->~ee50451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50451(Test_ee50451, "ee50451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50451C1Ev();
+extern void _ZN7ee50451D1Ev();
+Name_Map name_map_ee50451[] = {
+ NSPAIR(_ZN7ee50451C1Ev),
+ NSPAIR(_ZN7ee50451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee50451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50451[];
+extern void _ZN7ee504513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504513barEv,_ZTv0_n16_N7ee504513barEv)();
+extern void ABISELECT(_ZThn16_N7ee504513barEv,_ZThn8_N7ee504513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50451[0]),
+ (VTBL_ENTRY)&_ZN7ee504513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504513barEv,_ZTv0_n16_N7ee504513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee50451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee50451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee50451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee50451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee50451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee50451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50451[] = {
+ {&(_ZTV7ee50451[4]), 4,14},
+ {&(_ZTV7ee50451[9]), 9,14},
+ {&(_ZTV7ee50451[13]), 13,14},
+ {&(_tg__ZTV6dd0451__7ee50451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee50451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee50451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee50451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee50451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee50451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50451[];
+extern VTBL_ENTRY _ZTV7ee50451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50451[];
+static VTBL_ENTRY alt_thunk_names701[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504513barEv,_ZTv0_n16_N7ee504513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504513barEv,_ZThn8_N7ee504513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50451 = { "ee50451", // class name
+ bases_ee50451, 4,
+ &(vtc_ee50451[0]), // expected_vtbl_contents
+ &(vtt_ee50451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names701,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60451 : dd0451 {
+ int e;
+ virtual void foo(); // _ZN7ee604513fooEv
+ virtual void bar(); // _ZN7ee604513barEv
+ ~ee60451(); // tgen
+ ee60451(); // tgen
+};
+//SIG(1 ee60451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60451 ::foo(){vfunc_called(this, "_ZN7ee604513fooEv");}
+void ee60451 ::bar(){vfunc_called(this, "_ZN7ee604513barEv");}
+ee60451 ::~ee60451(){ note_dtor("ee60451", this);} // tgen
+ee60451 ::ee60451(){ note_ctor("ee60451", this);} // tgen
+
+static void Test_ee60451()
+{
+ extern Class_Descriptor cd_ee60451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60451, buf);
+ ee60451 *dp, &lv = *(dp=new (buf) ee60451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(24,20), "ee60451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), 0, "ee60451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), 0, "ee60451");
+ check_base_class_offset(lv, (dd0451*), 0, "ee60451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60451.e");
+ test_class_info(&lv, &cd_ee60451);
+ dp->~ee60451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60451(Test_ee60451, "ee60451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60451C1Ev();
+extern void _ZN7ee60451D1Ev();
+Name_Map name_map_ee60451[] = {
+ NSPAIR(_ZN7ee60451C1Ev),
+ NSPAIR(_ZN7ee60451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee60451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60451[];
+extern void _ZN7ee604513barEv();
+extern void _ZN7ee604513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee604513fooEv,_ZTv0_n12_N7ee604513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee604513fooEv,_ZThn20_N7ee604513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60451[0]),
+ (VTBL_ENTRY)&_ZN7ee604513barEv,
+ (VTBL_ENTRY)&_ZN7ee604513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee604513fooEv,_ZTv0_n12_N7ee604513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee60451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee60451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee60451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee60451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee60451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee60451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60451[] = {
+ {&(_ZTV7ee60451[3]), 3,9},
+ {&(_tg__ZTV6dd0451__7ee60451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee60451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee60451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee60451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee60451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee60451[3]), 3,4},
+ {&(_ZTV7ee60451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60451[];
+extern VTBL_ENTRY _ZTV7ee60451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60451[];
+static VTBL_ENTRY alt_thunk_names702[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee604513fooEv,_ZTv0_n12_N7ee604513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee604513fooEv,_ZThn20_N7ee604513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60451 = { "ee60451", // class name
+ bases_ee60451, 4,
+ &(vtc_ee60451[0]), // expected_vtbl_contents
+ &(vtt_ee60451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names702,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70451 : virtual dd0451 {
+ int e;
+ virtual void foo(); // _ZN7ee704513fooEv
+ virtual void bar(); // _ZN7ee704513barEv
+ ~ee70451(); // tgen
+ ee70451(); // tgen
+};
+//SIG(1 ee70451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70451 ::foo(){vfunc_called(this, "_ZN7ee704513fooEv");}
+void ee70451 ::bar(){vfunc_called(this, "_ZN7ee704513barEv");}
+ee70451 ::~ee70451(){ note_dtor("ee70451", this);} // tgen
+ee70451 ::ee70451(){ note_ctor("ee70451", this);} // tgen
+
+static void Test_ee70451()
+{
+ extern Class_Descriptor cd_ee70451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70451, buf);
+ ee70451 *dp, &lv = *(dp=new (buf) ee70451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd0451*), ABISELECT(40,24), "ee70451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd0451*), ABISELECT(16,8), "ee70451");
+ check_base_class_offset(lv, (cc451*)(dd0451*), ABISELECT(16,8), "ee70451");
+ check_base_class_offset(lv, (dd0451*), ABISELECT(16,8), "ee70451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70451.e");
+ test_class_info(&lv, &cd_ee70451);
+ dp->~ee70451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70451(Test_ee70451, "ee70451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70451C1Ev();
+extern void _ZN7ee70451D1Ev();
+Name_Map name_map_ee70451[] = {
+ NSPAIR(_ZN7ee70451C1Ev),
+ NSPAIR(_ZN7ee70451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd0451;
+extern VTBL_ENTRY _ZTI6dd0451[];
+extern VTBL_ENTRY _ZTV6dd0451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0451[];
+static Base_Class bases_ee70451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0451, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70451[];
+extern void _ZN7ee704513fooEv();
+extern void _ZN7ee704513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee704513barEv,_ZTv0_n16_N7ee704513barEv)();
+extern void ABISELECT(_ZThn16_N7ee704513barEv,_ZThn8_N7ee704513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee704513fooEv,_ZTv0_n12_N7ee704513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee704513fooEv,_ZThn24_N7ee704513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70451[0]),
+ (VTBL_ENTRY)&_ZN7ee704513fooEv,
+ (VTBL_ENTRY)&_ZN7ee704513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704513barEv,_ZTv0_n16_N7ee704513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704513fooEv,_ZTv0_n12_N7ee704513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0451__7ee70451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd0451__7ee70451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd0451__7ee70451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd0451__7ee70451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd0451__7ee70451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0451__7ee70451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70451[] = {
+ {&(_ZTV7ee70451[4]), 4,15},
+ {&(_ZTV7ee70451[10]), 10,15},
+ {&(_ZTV7ee70451[14]), 14,15},
+ {&(_tg__ZTV6dd0451__7ee70451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd0451__7ee70451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd0451__7ee70451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd0451__7ee70451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd0451__7ee70451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0451__7ee70451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70451[];
+extern VTBL_ENTRY _ZTV7ee70451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70451[];
+static VTBL_ENTRY alt_thunk_names703[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704513fooEv,_ZTv0_n12_N7ee704513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee704513fooEv,_ZThn24_N7ee704513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704513barEv,_ZTv0_n16_N7ee704513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704513barEv,_ZThn8_N7ee704513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70451 = { "ee70451", // class name
+ bases_ee70451, 4,
+ &(vtc_ee70451[0]), // expected_vtbl_contents
+ &(vtt_ee70451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names703,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1451 : virtual cc451 {
+ int d;
+ ~dd1451(); // tgen
+ dd1451(); // tgen
+};
+//SIG(-1 dd1451) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1451 ::~dd1451(){ note_dtor("dd1451", this);} // tgen
+dd1451 ::dd1451(){ note_ctor("dd1451", this);} // tgen
+
+static void Test_dd1451()
+{
+ extern Class_Descriptor cd_dd1451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1451, buf);
+ dd1451 *dp, &lv = *(dp=new (buf) dd1451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,20), "dd1451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,8), "dd1451");
+ check_base_class_offset(lv, (cc451*), ABISELECT(16,8), "dd1451");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1451.d");
+ test_class_info(&lv, &cd_dd1451);
+ dp->~dd1451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1451(Test_dd1451, "dd1451", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1451C1Ev();
+extern void _ZN6dd1451D1Ev();
+Name_Map name_map_dd1451[] = {
+ NSPAIR(_ZN6dd1451C1Ev),
+ NSPAIR(_ZN6dd1451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd1451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ 4, //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 _ZTI6dd1451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd1451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd1451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd1451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1451[] = {
+ {&(_ZTV6dd1451[4]), 4,13},
+ {&(_ZTV6dd1451[8]), 8,13},
+ {&(_ZTV6dd1451[12]), 12,13},
+ {&(_tg__ZTV5cc451__6dd1451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd1451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd1451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd1451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+Class_Descriptor cd_dd1451 = { "dd1451", // class name
+ bases_dd1451, 3,
+ &(vtc_dd1451[0]), // expected_vtbl_contents
+ &(vtt_dd1451[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1451),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1451),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01451 : dd1451 {
+ int e;
+ ~ee01451(); // tgen
+ ee01451(); // tgen
+};
+//SIG(1 ee01451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01451 ::~ee01451(){ note_dtor("ee01451", this);} // tgen
+ee01451 ::ee01451(){ note_ctor("ee01451", this);} // tgen
+
+static void Test_ee01451()
+{
+ extern Class_Descriptor cd_ee01451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01451, buf);
+ ee01451 *dp, &lv = *(dp=new (buf) ee01451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee01451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee01451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(16,12), "ee01451");
+ check_base_class_offset(lv, (dd1451*), 0, "ee01451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01451.e");
+ test_class_info(&lv, &cd_ee01451);
+ dp->~ee01451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01451(Test_ee01451, "ee01451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01451C1Ev();
+extern void _ZN7ee01451D1Ev();
+Name_Map name_map_ee01451[] = {
+ NSPAIR(_ZN7ee01451C1Ev),
+ NSPAIR(_ZN7ee01451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee01451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01451[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee01451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee01451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee01451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee01451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee01451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee01451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee01451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01451[] = {
+ {&(_ZTV7ee01451[4]), 4,13},
+ {&(_tg__ZTV6dd1451__7ee01451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee01451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee01451[3]), 3,4},
+ {&(_ZTV7ee01451[8]), 8,13},
+ {&(_ZTV7ee01451[12]), 12,13},
+ {&(_tg__ZTV5cc451__7ee01451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee01451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee01451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee01451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01451[];
+extern VTBL_ENTRY _ZTV7ee01451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01451[];
+Class_Descriptor cd_ee01451 = { "ee01451", // class name
+ bases_ee01451, 4,
+ &(vtc_ee01451[0]), // expected_vtbl_contents
+ &(vtt_ee01451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01451),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11451 : virtual dd1451 {
+ int e;
+ ~ee11451(); // tgen
+ ee11451(); // tgen
+};
+//SIG(1 ee11451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11451 ::~ee11451(){ note_dtor("ee11451", this);} // tgen
+ee11451 ::ee11451(){ note_ctor("ee11451", this);} // tgen
+
+static void Test_ee11451()
+{
+ extern Class_Descriptor cd_ee11451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11451, buf);
+ ee11451 *dp, &lv = *(dp=new (buf) ee11451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee11451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee11451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(32,16), "ee11451");
+ check_base_class_offset(lv, (dd1451*), ABISELECT(16,8), "ee11451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11451.e");
+ test_class_info(&lv, &cd_ee11451);
+ dp->~ee11451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11451(Test_ee11451, "ee11451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11451C1Ev();
+extern void _ZN7ee11451D1Ev();
+Name_Map name_map_ee11451[] = {
+ NSPAIR(_ZN7ee11451C1Ev),
+ NSPAIR(_ZN7ee11451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee11451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 14, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11451[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11451[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee11451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee11451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee11451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee11451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee11451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee11451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee11451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11451[] = {
+ {&(_ZTV7ee11451[5]), 5,18},
+ {&(_ZTV7ee11451[9]), 9,18},
+ {&(_ZTV7ee11451[13]), 13,18},
+ {&(_ZTV7ee11451[17]), 17,18},
+ {&(_tg__ZTV6dd1451__7ee11451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee11451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee11451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee11451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee11451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee11451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee11451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11451[];
+extern VTBL_ENTRY _ZTV7ee11451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11451[];
+Class_Descriptor cd_ee11451 = { "ee11451", // class name
+ bases_ee11451, 4,
+ &(vtc_ee11451[0]), // expected_vtbl_contents
+ &(vtt_ee11451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11451),18, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21451 : dd1451 {
+ int e;
+ virtual void foo(); // _ZN7ee214513fooEv
+ ~ee21451(); // tgen
+ ee21451(); // tgen
+};
+//SIG(1 ee21451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21451 ::foo(){vfunc_called(this, "_ZN7ee214513fooEv");}
+ee21451 ::~ee21451(){ note_dtor("ee21451", this);} // tgen
+ee21451 ::ee21451(){ note_ctor("ee21451", this);} // tgen
+
+static void Test_ee21451()
+{
+ extern Class_Descriptor cd_ee21451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21451, buf);
+ ee21451 *dp, &lv = *(dp=new (buf) ee21451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee21451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee21451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(16,12), "ee21451");
+ check_base_class_offset(lv, (dd1451*), 0, "ee21451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21451.e");
+ test_class_info(&lv, &cd_ee21451);
+ dp->~ee21451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21451(Test_ee21451, "ee21451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21451C1Ev();
+extern void _ZN7ee21451D1Ev();
+Name_Map name_map_ee21451[] = {
+ NSPAIR(_ZN7ee21451C1Ev),
+ NSPAIR(_ZN7ee21451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee21451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21451[];
+extern void _ZN7ee214513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214513fooEv,_ZTv0_n12_N7ee214513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee214513fooEv,_ZThn24_N7ee214513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21451[0]),
+ (VTBL_ENTRY)&_ZN7ee214513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214513fooEv,_ZTv0_n12_N7ee214513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee21451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee21451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee21451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee21451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee21451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee21451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee21451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21451[] = {
+ {&(_ZTV7ee21451[4]), 4,14},
+ {&(_tg__ZTV6dd1451__7ee21451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee21451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee21451[3]), 3,4},
+ {&(_ZTV7ee21451[9]), 9,14},
+ {&(_ZTV7ee21451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee21451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee21451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee21451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee21451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21451[];
+extern VTBL_ENTRY _ZTV7ee21451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21451[];
+static VTBL_ENTRY alt_thunk_names704[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214513fooEv,_ZTv0_n12_N7ee214513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee214513fooEv,_ZThn24_N7ee214513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21451 = { "ee21451", // class name
+ bases_ee21451, 4,
+ &(vtc_ee21451[0]), // expected_vtbl_contents
+ &(vtt_ee21451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names704,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31451 : virtual dd1451 {
+ int e;
+ virtual void foo(); // _ZN7ee314513fooEv
+ ~ee31451(); // tgen
+ ee31451(); // tgen
+};
+//SIG(1 ee31451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31451 ::foo(){vfunc_called(this, "_ZN7ee314513fooEv");}
+ee31451 ::~ee31451(){ note_dtor("ee31451", this);} // tgen
+ee31451 ::ee31451(){ note_ctor("ee31451", this);} // tgen
+
+static void Test_ee31451()
+{
+ extern Class_Descriptor cd_ee31451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31451, buf);
+ ee31451 *dp, &lv = *(dp=new (buf) ee31451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee31451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee31451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(32,16), "ee31451");
+ check_base_class_offset(lv, (dd1451*), ABISELECT(16,8), "ee31451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31451.e");
+ test_class_info(&lv, &cd_ee31451);
+ dp->~ee31451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31451(Test_ee31451, "ee31451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31451C1Ev();
+extern void _ZN7ee31451D1Ev();
+Name_Map name_map_ee31451[] = {
+ NSPAIR(_ZN7ee31451C1Ev),
+ NSPAIR(_ZN7ee31451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee31451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31451[];
+extern void _ZN7ee314513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314513fooEv,_ZTv0_n12_N7ee314513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee314513fooEv,_ZThn28_N7ee314513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31451[0]),
+ (VTBL_ENTRY)&_ZN7ee314513fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31451[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314513fooEv,_ZTv0_n12_N7ee314513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee31451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee31451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee31451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee31451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee31451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee31451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee31451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31451[] = {
+ {&(_ZTV7ee31451[5]), 5,19},
+ {&(_ZTV7ee31451[10]), 10,19},
+ {&(_ZTV7ee31451[14]), 14,19},
+ {&(_ZTV7ee31451[18]), 18,19},
+ {&(_tg__ZTV6dd1451__7ee31451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee31451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee31451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee31451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee31451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee31451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee31451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31451[];
+extern VTBL_ENTRY _ZTV7ee31451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31451[];
+static VTBL_ENTRY alt_thunk_names705[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314513fooEv,_ZTv0_n12_N7ee314513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee314513fooEv,_ZThn28_N7ee314513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31451 = { "ee31451", // class name
+ bases_ee31451, 4,
+ &(vtc_ee31451[0]), // expected_vtbl_contents
+ &(vtt_ee31451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31451),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names705,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41451 : dd1451 {
+ int e;
+ virtual void bar(); // _ZN7ee414513barEv
+ ~ee41451(); // tgen
+ ee41451(); // tgen
+};
+//SIG(1 ee41451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41451 ::bar(){vfunc_called(this, "_ZN7ee414513barEv");}
+ee41451 ::~ee41451(){ note_dtor("ee41451", this);} // tgen
+ee41451 ::ee41451(){ note_ctor("ee41451", this);} // tgen
+
+static void Test_ee41451()
+{
+ extern Class_Descriptor cd_ee41451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41451, buf);
+ ee41451 *dp, &lv = *(dp=new (buf) ee41451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee41451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee41451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(16,12), "ee41451");
+ check_base_class_offset(lv, (dd1451*), 0, "ee41451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41451.e");
+ test_class_info(&lv, &cd_ee41451);
+ dp->~ee41451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41451(Test_ee41451, "ee41451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41451C1Ev();
+extern void _ZN7ee41451D1Ev();
+Name_Map name_map_ee41451[] = {
+ NSPAIR(_ZN7ee41451C1Ev),
+ NSPAIR(_ZN7ee41451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee41451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41451[];
+extern void _ZN7ee414513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414513barEv,_ZTv0_n16_N7ee414513barEv)();
+extern void ABISELECT(_ZThn16_N7ee414513barEv,_ZThn12_N7ee414513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41451[0]),
+ (VTBL_ENTRY)&_ZN7ee414513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414513barEv,_ZTv0_n16_N7ee414513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee41451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee41451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee41451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee41451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee41451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee41451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee41451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41451[] = {
+ {&(_ZTV7ee41451[4]), 4,14},
+ {&(_tg__ZTV6dd1451__7ee41451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee41451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee41451[3]), 3,4},
+ {&(_ZTV7ee41451[9]), 9,14},
+ {&(_ZTV7ee41451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee41451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee41451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee41451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee41451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41451[];
+extern VTBL_ENTRY _ZTV7ee41451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41451[];
+static VTBL_ENTRY alt_thunk_names706[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414513barEv,_ZTv0_n16_N7ee414513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414513barEv,_ZThn12_N7ee414513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41451 = { "ee41451", // class name
+ bases_ee41451, 4,
+ &(vtc_ee41451[0]), // expected_vtbl_contents
+ &(vtt_ee41451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names706,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51451 : virtual dd1451 {
+ int e;
+ virtual void bar(); // _ZN7ee514513barEv
+ ~ee51451(); // tgen
+ ee51451(); // tgen
+};
+//SIG(1 ee51451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51451 ::bar(){vfunc_called(this, "_ZN7ee514513barEv");}
+ee51451 ::~ee51451(){ note_dtor("ee51451", this);} // tgen
+ee51451 ::ee51451(){ note_ctor("ee51451", this);} // tgen
+
+static void Test_ee51451()
+{
+ extern Class_Descriptor cd_ee51451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51451, buf);
+ ee51451 *dp, &lv = *(dp=new (buf) ee51451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee51451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee51451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(32,16), "ee51451");
+ check_base_class_offset(lv, (dd1451*), ABISELECT(16,8), "ee51451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51451.e");
+ test_class_info(&lv, &cd_ee51451);
+ dp->~ee51451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51451(Test_ee51451, "ee51451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51451C1Ev();
+extern void _ZN7ee51451D1Ev();
+Name_Map name_map_ee51451[] = {
+ NSPAIR(_ZN7ee51451C1Ev),
+ NSPAIR(_ZN7ee51451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee51451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51451[];
+extern void _ZN7ee514513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514513barEv,_ZTv0_n16_N7ee514513barEv)();
+extern void ABISELECT(_ZThn32_N7ee514513barEv,_ZThn16_N7ee514513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51451[0]),
+ (VTBL_ENTRY)&_ZN7ee514513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51451[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514513barEv,_ZTv0_n16_N7ee514513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee51451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee51451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee51451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee51451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee51451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee51451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee51451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51451[] = {
+ {&(_ZTV7ee51451[5]), 5,19},
+ {&(_ZTV7ee51451[10]), 10,19},
+ {&(_ZTV7ee51451[14]), 14,19},
+ {&(_ZTV7ee51451[18]), 18,19},
+ {&(_tg__ZTV6dd1451__7ee51451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee51451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee51451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee51451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee51451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee51451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee51451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51451[];
+extern VTBL_ENTRY _ZTV7ee51451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51451[];
+static VTBL_ENTRY alt_thunk_names707[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514513barEv,_ZTv0_n16_N7ee514513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514513barEv,_ZThn16_N7ee514513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51451 = { "ee51451", // class name
+ bases_ee51451, 4,
+ &(vtc_ee51451[0]), // expected_vtbl_contents
+ &(vtt_ee51451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51451),19, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names707,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61451 : dd1451 {
+ int e;
+ virtual void foo(); // _ZN7ee614513fooEv
+ virtual void bar(); // _ZN7ee614513barEv
+ ~ee61451(); // tgen
+ ee61451(); // tgen
+};
+//SIG(1 ee61451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61451 ::foo(){vfunc_called(this, "_ZN7ee614513fooEv");}
+void ee61451 ::bar(){vfunc_called(this, "_ZN7ee614513barEv");}
+ee61451 ::~ee61451(){ note_dtor("ee61451", this);} // tgen
+ee61451 ::ee61451(){ note_ctor("ee61451", this);} // tgen
+
+static void Test_ee61451()
+{
+ extern Class_Descriptor cd_ee61451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61451, buf);
+ ee61451 *dp, &lv = *(dp=new (buf) ee61451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee61451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee61451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(16,12), "ee61451");
+ check_base_class_offset(lv, (dd1451*), 0, "ee61451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61451.e");
+ test_class_info(&lv, &cd_ee61451);
+ dp->~ee61451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61451(Test_ee61451, "ee61451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61451C1Ev();
+extern void _ZN7ee61451D1Ev();
+Name_Map name_map_ee61451[] = {
+ NSPAIR(_ZN7ee61451C1Ev),
+ NSPAIR(_ZN7ee61451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee61451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61451[];
+extern void _ZN7ee614513fooEv();
+extern void _ZN7ee614513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee614513barEv,_ZTv0_n16_N7ee614513barEv)();
+extern void ABISELECT(_ZThn16_N7ee614513barEv,_ZThn12_N7ee614513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee614513fooEv,_ZTv0_n12_N7ee614513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee614513fooEv,_ZThn24_N7ee614513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61451[0]),
+ (VTBL_ENTRY)&_ZN7ee614513fooEv,
+ (VTBL_ENTRY)&_ZN7ee614513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614513barEv,_ZTv0_n16_N7ee614513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614513fooEv,_ZTv0_n12_N7ee614513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee61451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee61451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee61451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee61451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee61451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee61451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee61451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61451[] = {
+ {&(_ZTV7ee61451[4]), 4,15},
+ {&(_tg__ZTV6dd1451__7ee61451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee61451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee61451[3]), 3,4},
+ {&(_ZTV7ee61451[10]), 10,15},
+ {&(_ZTV7ee61451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee61451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee61451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee61451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee61451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61451[];
+extern VTBL_ENTRY _ZTV7ee61451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61451[];
+static VTBL_ENTRY alt_thunk_names708[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614513fooEv,_ZTv0_n12_N7ee614513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee614513fooEv,_ZThn24_N7ee614513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614513barEv,_ZTv0_n16_N7ee614513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614513barEv,_ZThn12_N7ee614513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61451 = { "ee61451", // class name
+ bases_ee61451, 4,
+ &(vtc_ee61451[0]), // expected_vtbl_contents
+ &(vtt_ee61451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names708,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71451 : virtual dd1451 {
+ int e;
+ virtual void foo(); // _ZN7ee714513fooEv
+ virtual void bar(); // _ZN7ee714513barEv
+ ~ee71451(); // tgen
+ ee71451(); // tgen
+};
+//SIG(1 ee71451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71451 ::foo(){vfunc_called(this, "_ZN7ee714513fooEv");}
+void ee71451 ::bar(){vfunc_called(this, "_ZN7ee714513barEv");}
+ee71451 ::~ee71451(){ note_dtor("ee71451", this);} // tgen
+ee71451 ::ee71451(){ note_ctor("ee71451", this);} // tgen
+
+static void Test_ee71451()
+{
+ extern Class_Descriptor cd_ee71451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71451, buf);
+ ee71451 *dp, &lv = *(dp=new (buf) ee71451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee71451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee71451");
+ check_base_class_offset(lv, (cc451*)(dd1451*), ABISELECT(32,16), "ee71451");
+ check_base_class_offset(lv, (dd1451*), ABISELECT(16,8), "ee71451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71451.e");
+ test_class_info(&lv, &cd_ee71451);
+ dp->~ee71451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71451(Test_ee71451, "ee71451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71451C1Ev();
+extern void _ZN7ee71451D1Ev();
+Name_Map name_map_ee71451[] = {
+ NSPAIR(_ZN7ee71451C1Ev),
+ NSPAIR(_ZN7ee71451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd1451;
+extern VTBL_ENTRY _ZTI6dd1451[];
+extern VTBL_ENTRY _ZTV6dd1451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1451[];
+static Base_Class bases_ee71451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1451, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71451[];
+extern void _ZN7ee714513fooEv();
+extern void _ZN7ee714513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee714513barEv,_ZTv0_n16_N7ee714513barEv)();
+extern void ABISELECT(_ZThn32_N7ee714513barEv,_ZThn16_N7ee714513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee714513fooEv,_ZTv0_n12_N7ee714513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee714513fooEv,_ZThn28_N7ee714513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71451[0]),
+ (VTBL_ENTRY)&_ZN7ee714513fooEv,
+ (VTBL_ENTRY)&_ZN7ee714513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71451[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714513barEv,_ZTv0_n16_N7ee714513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714513fooEv,_ZTv0_n12_N7ee714513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71451[];
+static VTBL_ENTRY _tg__ZTV6dd1451__7ee71451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd1451__7ee71451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1451__7ee71451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee71451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee71451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee71451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee71451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71451[] = {
+ {&(_ZTV7ee71451[5]), 5,20},
+ {&(_ZTV7ee71451[11]), 11,20},
+ {&(_ZTV7ee71451[15]), 15,20},
+ {&(_ZTV7ee71451[19]), 19,20},
+ {&(_tg__ZTV6dd1451__7ee71451[4]), 4,4},
+ {&(_tg__ZTV5cc451__6dd1451__7ee71451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1451__7ee71451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee71451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee71451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee71451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee71451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71451[];
+extern VTBL_ENTRY _ZTV7ee71451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71451[];
+static VTBL_ENTRY alt_thunk_names709[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714513fooEv,_ZTv0_n12_N7ee714513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee714513fooEv,_ZThn28_N7ee714513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714513barEv,_ZTv0_n16_N7ee714513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714513barEv,_ZThn16_N7ee714513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71451 = { "ee71451", // class name
+ bases_ee71451, 4,
+ &(vtc_ee71451[0]), // expected_vtbl_contents
+ &(vtt_ee71451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71451),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names709,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2451 : cc451 {
+ int d;
+ virtual void foo(); // _ZN6dd24513fooEv
+ ~dd2451(); // tgen
+ dd2451(); // tgen
+};
+//SIG(-1 dd2451) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2451 ::foo(){vfunc_called(this, "_ZN6dd24513fooEv");}
+dd2451 ::~dd2451(){ note_dtor("dd2451", this);} // tgen
+dd2451 ::dd2451(){ note_ctor("dd2451", this);} // tgen
+
+static void Test_dd2451()
+{
+ extern Class_Descriptor cd_dd2451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2451, buf);
+ dd2451 *dp, &lv = *(dp=new (buf) dd2451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(24,16), "dd2451");
+ check_base_class_offset(lv, (bb51*)(cc451*), 0, "dd2451");
+ check_base_class_offset(lv, (cc451*), 0, "dd2451");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2451.d");
+ test_class_info(&lv, &cd_dd2451);
+ dp->~dd2451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2451(Test_dd2451, "dd2451", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2451C1Ev();
+extern void _ZN6dd2451D1Ev();
+Name_Map name_map_dd2451[] = {
+ NSPAIR(_ZN6dd2451C1Ev),
+ NSPAIR(_ZN6dd2451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd2451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd2451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd2451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd2451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd2451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2451[] = {
+ {&(_ZTV6dd2451[3]), 3,9},
+ {&(_tg__ZTV5cc451__6dd2451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd2451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd2451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd2451[3]), 3,4},
+ {&(_ZTV6dd2451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static VTBL_ENTRY alt_thunk_names710[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2451 = { "dd2451", // class name
+ bases_dd2451, 3,
+ &(vtc_dd2451[0]), // expected_vtbl_contents
+ &(vtt_dd2451[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2451),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names710,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02451 : dd2451 {
+ int e;
+ ~ee02451(); // tgen
+ ee02451(); // tgen
+};
+//SIG(1 ee02451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02451 ::~ee02451(){ note_dtor("ee02451", this);} // tgen
+ee02451 ::ee02451(){ note_ctor("ee02451", this);} // tgen
+
+static void Test_ee02451()
+{
+ extern Class_Descriptor cd_ee02451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02451, buf);
+ ee02451 *dp, &lv = *(dp=new (buf) ee02451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(24,20), "ee02451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), 0, "ee02451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), 0, "ee02451");
+ check_base_class_offset(lv, (dd2451*), 0, "ee02451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02451.e");
+ test_class_info(&lv, &cd_ee02451);
+ dp->~ee02451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02451(Test_ee02451, "ee02451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02451C1Ev();
+extern void _ZN7ee02451D1Ev();
+Name_Map name_map_ee02451[] = {
+ NSPAIR(_ZN7ee02451C1Ev),
+ NSPAIR(_ZN7ee02451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee02451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee02451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee02451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee02451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee02451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee02451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee02451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee02451[] = {
+ {&(_ZTV7ee02451[3]), 3,9},
+ {&(_tg__ZTV6dd2451__7ee02451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee02451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee02451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee02451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee02451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee02451[3]), 3,4},
+ {&(_ZTV7ee02451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02451[];
+extern VTBL_ENTRY _ZTV7ee02451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02451[];
+static VTBL_ENTRY alt_thunk_names711[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02451 = { "ee02451", // class name
+ bases_ee02451, 4,
+ &(vtc_ee02451[0]), // expected_vtbl_contents
+ &(vtt_ee02451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names711,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12451 : virtual dd2451 {
+ int e;
+ ~ee12451(); // tgen
+ ee12451(); // tgen
+};
+//SIG(1 ee12451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12451 ::~ee12451(){ note_dtor("ee12451", this);} // tgen
+ee12451 ::ee12451(){ note_ctor("ee12451", this);} // tgen
+
+static void Test_ee12451()
+{
+ extern Class_Descriptor cd_ee12451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12451, buf);
+ ee12451 *dp, &lv = *(dp=new (buf) ee12451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(40,24), "ee12451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), ABISELECT(16,8), "ee12451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), ABISELECT(16,8), "ee12451");
+ check_base_class_offset(lv, (dd2451*), ABISELECT(16,8), "ee12451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12451.e");
+ test_class_info(&lv, &cd_ee12451);
+ dp->~ee12451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12451(Test_ee12451, "ee12451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12451C1Ev();
+extern void _ZN7ee12451D1Ev();
+Name_Map name_map_ee12451[] = {
+ NSPAIR(_ZN7ee12451C1Ev),
+ NSPAIR(_ZN7ee12451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee12451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12451[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee12451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee12451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee12451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee12451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee12451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee12451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee12451[] = {
+ {&(_ZTV7ee12451[4]), 4,15},
+ {&(_ZTV7ee12451[9]), 9,15},
+ {&(_ZTV7ee12451[14]), 14,15},
+ {&(_tg__ZTV6dd2451__7ee12451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee12451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee12451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee12451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee12451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee12451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12451[];
+extern VTBL_ENTRY _ZTV7ee12451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12451[];
+static VTBL_ENTRY alt_thunk_names712[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12451 = { "ee12451", // class name
+ bases_ee12451, 4,
+ &(vtc_ee12451[0]), // expected_vtbl_contents
+ &(vtt_ee12451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names712,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22451 : dd2451 {
+ int e;
+ virtual void foo(); // _ZN7ee224513fooEv
+ ~ee22451(); // tgen
+ ee22451(); // tgen
+};
+//SIG(1 ee22451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22451 ::foo(){vfunc_called(this, "_ZN7ee224513fooEv");}
+ee22451 ::~ee22451(){ note_dtor("ee22451", this);} // tgen
+ee22451 ::ee22451(){ note_ctor("ee22451", this);} // tgen
+
+static void Test_ee22451()
+{
+ extern Class_Descriptor cd_ee22451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22451, buf);
+ ee22451 *dp, &lv = *(dp=new (buf) ee22451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(24,20), "ee22451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), 0, "ee22451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), 0, "ee22451");
+ check_base_class_offset(lv, (dd2451*), 0, "ee22451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22451.e");
+ test_class_info(&lv, &cd_ee22451);
+ dp->~ee22451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22451(Test_ee22451, "ee22451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22451C1Ev();
+extern void _ZN7ee22451D1Ev();
+Name_Map name_map_ee22451[] = {
+ NSPAIR(_ZN7ee22451C1Ev),
+ NSPAIR(_ZN7ee22451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee22451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN7ee224513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee224513fooEv,_ZTv0_n12_N7ee224513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee224513fooEv,_ZThn20_N7ee224513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN7ee224513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee224513fooEv,_ZTv0_n12_N7ee224513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee22451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee22451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee22451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee22451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee22451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee22451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee22451[] = {
+ {&(_ZTV7ee22451[3]), 3,9},
+ {&(_tg__ZTV6dd2451__7ee22451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee22451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee22451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee22451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee22451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee22451[3]), 3,4},
+ {&(_ZTV7ee22451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22451[];
+extern VTBL_ENTRY _ZTV7ee22451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22451[];
+static VTBL_ENTRY alt_thunk_names713[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee224513fooEv,_ZTv0_n12_N7ee224513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee224513fooEv,_ZThn20_N7ee224513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22451 = { "ee22451", // class name
+ bases_ee22451, 4,
+ &(vtc_ee22451[0]), // expected_vtbl_contents
+ &(vtt_ee22451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names713,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32451 : virtual dd2451 {
+ int e;
+ virtual void foo(); // _ZN7ee324513fooEv
+ ~ee32451(); // tgen
+ ee32451(); // tgen
+};
+//SIG(1 ee32451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32451 ::foo(){vfunc_called(this, "_ZN7ee324513fooEv");}
+ee32451 ::~ee32451(){ note_dtor("ee32451", this);} // tgen
+ee32451 ::ee32451(){ note_ctor("ee32451", this);} // tgen
+
+static void Test_ee32451()
+{
+ extern Class_Descriptor cd_ee32451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32451, buf);
+ ee32451 *dp, &lv = *(dp=new (buf) ee32451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(40,24), "ee32451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), ABISELECT(16,8), "ee32451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), ABISELECT(16,8), "ee32451");
+ check_base_class_offset(lv, (dd2451*), ABISELECT(16,8), "ee32451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32451.e");
+ test_class_info(&lv, &cd_ee32451);
+ dp->~ee32451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32451(Test_ee32451, "ee32451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32451C1Ev();
+extern void _ZN7ee32451D1Ev();
+Name_Map name_map_ee32451[] = {
+ NSPAIR(_ZN7ee32451C1Ev),
+ NSPAIR(_ZN7ee32451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee32451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32451[];
+extern void _ZN7ee324513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee324513fooEv,_ZTv0_n20_N7ee324513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324513fooEv,_ZThn8_N7ee324513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee324513fooEv,_ZTv0_n12_N7ee324513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee324513fooEv,_ZThn24_N7ee324513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32451[0]),
+ (VTBL_ENTRY)&_ZN7ee324513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee324513fooEv,_ZTv0_n20_N7ee324513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324513fooEv,_ZTv0_n12_N7ee324513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee32451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee32451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee32451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee32451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee32451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee32451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee32451[] = {
+ {&(_ZTV7ee32451[4]), 4,16},
+ {&(_ZTV7ee32451[10]), 10,16},
+ {&(_ZTV7ee32451[15]), 15,16},
+ {&(_tg__ZTV6dd2451__7ee32451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee32451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee32451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee32451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee32451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee32451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32451[];
+extern VTBL_ENTRY _ZTV7ee32451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32451[];
+static VTBL_ENTRY alt_thunk_names714[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324513fooEv,_ZTv0_n12_N7ee324513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee324513fooEv,_ZThn24_N7ee324513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee324513fooEv,_ZTv0_n20_N7ee324513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324513fooEv,_ZThn8_N7ee324513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32451 = { "ee32451", // class name
+ bases_ee32451, 4,
+ &(vtc_ee32451[0]), // expected_vtbl_contents
+ &(vtt_ee32451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32451),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names714,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42451 : dd2451 {
+ int e;
+ virtual void bar(); // _ZN7ee424513barEv
+ ~ee42451(); // tgen
+ ee42451(); // tgen
+};
+//SIG(1 ee42451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42451 ::bar(){vfunc_called(this, "_ZN7ee424513barEv");}
+ee42451 ::~ee42451(){ note_dtor("ee42451", this);} // tgen
+ee42451 ::ee42451(){ note_ctor("ee42451", this);} // tgen
+
+static void Test_ee42451()
+{
+ extern Class_Descriptor cd_ee42451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42451, buf);
+ ee42451 *dp, &lv = *(dp=new (buf) ee42451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(24,20), "ee42451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), 0, "ee42451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), 0, "ee42451");
+ check_base_class_offset(lv, (dd2451*), 0, "ee42451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42451.e");
+ test_class_info(&lv, &cd_ee42451);
+ dp->~ee42451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42451(Test_ee42451, "ee42451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42451C1Ev();
+extern void _ZN7ee42451D1Ev();
+Name_Map name_map_ee42451[] = {
+ NSPAIR(_ZN7ee42451C1Ev),
+ NSPAIR(_ZN7ee42451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee42451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42451[];
+extern void _ZN7ee424513barEv();
+extern void _ZN6dd24513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42451[0]),
+ (VTBL_ENTRY)&_ZN7ee424513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee42451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee42451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee42451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee42451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee42451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee42451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee42451[] = {
+ {&(_ZTV7ee42451[3]), 3,9},
+ {&(_tg__ZTV6dd2451__7ee42451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee42451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee42451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee42451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee42451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee42451[3]), 3,4},
+ {&(_ZTV7ee42451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42451[];
+extern VTBL_ENTRY _ZTV7ee42451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42451[];
+static VTBL_ENTRY alt_thunk_names715[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42451 = { "ee42451", // class name
+ bases_ee42451, 4,
+ &(vtc_ee42451[0]), // expected_vtbl_contents
+ &(vtt_ee42451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names715,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52451 : virtual dd2451 {
+ int e;
+ virtual void bar(); // _ZN7ee524513barEv
+ ~ee52451(); // tgen
+ ee52451(); // tgen
+};
+//SIG(1 ee52451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52451 ::bar(){vfunc_called(this, "_ZN7ee524513barEv");}
+ee52451 ::~ee52451(){ note_dtor("ee52451", this);} // tgen
+ee52451 ::ee52451(){ note_ctor("ee52451", this);} // tgen
+
+static void Test_ee52451()
+{
+ extern Class_Descriptor cd_ee52451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52451, buf);
+ ee52451 *dp, &lv = *(dp=new (buf) ee52451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(40,24), "ee52451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), ABISELECT(16,8), "ee52451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), ABISELECT(16,8), "ee52451");
+ check_base_class_offset(lv, (dd2451*), ABISELECT(16,8), "ee52451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52451.e");
+ test_class_info(&lv, &cd_ee52451);
+ dp->~ee52451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52451(Test_ee52451, "ee52451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52451C1Ev();
+extern void _ZN7ee52451D1Ev();
+Name_Map name_map_ee52451[] = {
+ NSPAIR(_ZN7ee52451C1Ev),
+ NSPAIR(_ZN7ee52451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee52451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52451[];
+extern void _ZN7ee524513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524513barEv,_ZTv0_n16_N7ee524513barEv)();
+extern void ABISELECT(_ZThn16_N7ee524513barEv,_ZThn8_N7ee524513barEv)() __attribute__((weak));
+extern void _ZN6dd24513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52451[0]),
+ (VTBL_ENTRY)&_ZN7ee524513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524513barEv,_ZTv0_n16_N7ee524513barEv),
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee52451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee52451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee52451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee52451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee52451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee52451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee52451[] = {
+ {&(_ZTV7ee52451[4]), 4,16},
+ {&(_ZTV7ee52451[10]), 10,16},
+ {&(_ZTV7ee52451[15]), 15,16},
+ {&(_tg__ZTV6dd2451__7ee52451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee52451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee52451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee52451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee52451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee52451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52451[];
+extern VTBL_ENTRY _ZTV7ee52451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52451[];
+static VTBL_ENTRY alt_thunk_names716[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524513barEv,_ZTv0_n16_N7ee524513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524513barEv,_ZThn8_N7ee524513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52451 = { "ee52451", // class name
+ bases_ee52451, 4,
+ &(vtc_ee52451[0]), // expected_vtbl_contents
+ &(vtt_ee52451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52451),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names716,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62451 : dd2451 {
+ int e;
+ virtual void foo(); // _ZN7ee624513fooEv
+ virtual void bar(); // _ZN7ee624513barEv
+ ~ee62451(); // tgen
+ ee62451(); // tgen
+};
+//SIG(1 ee62451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62451 ::foo(){vfunc_called(this, "_ZN7ee624513fooEv");}
+void ee62451 ::bar(){vfunc_called(this, "_ZN7ee624513barEv");}
+ee62451 ::~ee62451(){ note_dtor("ee62451", this);} // tgen
+ee62451 ::ee62451(){ note_ctor("ee62451", this);} // tgen
+
+static void Test_ee62451()
+{
+ extern Class_Descriptor cd_ee62451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62451, buf);
+ ee62451 *dp, &lv = *(dp=new (buf) ee62451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(24,20), "ee62451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), 0, "ee62451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), 0, "ee62451");
+ check_base_class_offset(lv, (dd2451*), 0, "ee62451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62451.e");
+ test_class_info(&lv, &cd_ee62451);
+ dp->~ee62451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62451(Test_ee62451, "ee62451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62451C1Ev();
+extern void _ZN7ee62451D1Ev();
+Name_Map name_map_ee62451[] = {
+ NSPAIR(_ZN7ee62451C1Ev),
+ NSPAIR(_ZN7ee62451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee62451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62451[];
+extern void _ZN7ee624513barEv();
+extern void _ZN7ee624513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee624513fooEv,_ZTv0_n12_N7ee624513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee624513fooEv,_ZThn20_N7ee624513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62451[0]),
+ (VTBL_ENTRY)&_ZN7ee624513barEv,
+ (VTBL_ENTRY)&_ZN7ee624513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee624513fooEv,_ZTv0_n12_N7ee624513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee62451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee62451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee62451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee62451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee62451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee62451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee62451[] = {
+ {&(_ZTV7ee62451[3]), 3,9},
+ {&(_tg__ZTV6dd2451__7ee62451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee62451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee62451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee62451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee62451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee62451[3]), 3,4},
+ {&(_ZTV7ee62451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62451[];
+extern VTBL_ENTRY _ZTV7ee62451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62451[];
+static VTBL_ENTRY alt_thunk_names717[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn20_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee624513fooEv,_ZTv0_n12_N7ee624513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee624513fooEv,_ZThn20_N7ee624513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62451 = { "ee62451", // class name
+ bases_ee62451, 4,
+ &(vtc_ee62451[0]), // expected_vtbl_contents
+ &(vtt_ee62451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names717,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72451 : virtual dd2451 {
+ int e;
+ virtual void foo(); // _ZN7ee724513fooEv
+ virtual void bar(); // _ZN7ee724513barEv
+ ~ee72451(); // tgen
+ ee72451(); // tgen
+};
+//SIG(1 ee72451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72451 ::foo(){vfunc_called(this, "_ZN7ee724513fooEv");}
+void ee72451 ::bar(){vfunc_called(this, "_ZN7ee724513barEv");}
+ee72451 ::~ee72451(){ note_dtor("ee72451", this);} // tgen
+ee72451 ::ee72451(){ note_ctor("ee72451", this);} // tgen
+
+static void Test_ee72451()
+{
+ extern Class_Descriptor cd_ee72451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72451, buf);
+ ee72451 *dp, &lv = *(dp=new (buf) ee72451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd2451*), ABISELECT(40,24), "ee72451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd2451*), ABISELECT(16,8), "ee72451");
+ check_base_class_offset(lv, (cc451*)(dd2451*), ABISELECT(16,8), "ee72451");
+ check_base_class_offset(lv, (dd2451*), ABISELECT(16,8), "ee72451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72451.e");
+ test_class_info(&lv, &cd_ee72451);
+ dp->~ee72451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72451(Test_ee72451, "ee72451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72451C1Ev();
+extern void _ZN7ee72451D1Ev();
+Name_Map name_map_ee72451[] = {
+ NSPAIR(_ZN7ee72451C1Ev),
+ NSPAIR(_ZN7ee72451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd2451;
+extern VTBL_ENTRY _ZTI6dd2451[];
+extern VTBL_ENTRY _ZTV6dd2451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2451[];
+static Base_Class bases_ee72451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2451, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72451[];
+extern void _ZN7ee724513fooEv();
+extern void _ZN7ee724513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee724513barEv,_ZTv0_n16_N7ee724513barEv)();
+extern void ABISELECT(_ZThn16_N7ee724513barEv,_ZThn8_N7ee724513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee724513fooEv,_ZTv0_n20_N7ee724513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724513fooEv,_ZThn8_N7ee724513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee724513fooEv,_ZTv0_n12_N7ee724513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee724513fooEv,_ZThn24_N7ee724513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72451[0]),
+ (VTBL_ENTRY)&_ZN7ee724513fooEv,
+ (VTBL_ENTRY)&_ZN7ee724513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724513barEv,_ZTv0_n16_N7ee724513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee724513fooEv,_ZTv0_n20_N7ee724513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724513fooEv,_ZTv0_n12_N7ee724513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72451[];
+extern void _ZN5cc4513barEv();
+extern void _ZN6dd24513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2451__7ee72451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ (VTBL_ENTRY)&_ZN6dd24513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd2451__7ee72451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd2451__7ee72451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd2451__7ee72451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd2451__7ee72451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2451__7ee72451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv),
+};
+static VTT_ENTRY vtt_ee72451[] = {
+ {&(_ZTV7ee72451[4]), 4,17},
+ {&(_ZTV7ee72451[11]), 11,17},
+ {&(_ZTV7ee72451[16]), 16,17},
+ {&(_tg__ZTV6dd2451__7ee72451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd2451__7ee72451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd2451__7ee72451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd2451__7ee72451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd2451__7ee72451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2451__7ee72451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72451[];
+extern VTBL_ENTRY _ZTV7ee72451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72451[];
+static VTBL_ENTRY alt_thunk_names718[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24513fooEv,_ZTv0_n12_N6dd24513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24513fooEv,_ZThn16_N6dd24513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724513fooEv,_ZTv0_n12_N7ee724513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee724513fooEv,_ZThn24_N7ee724513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee724513fooEv,_ZTv0_n20_N7ee724513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724513fooEv,_ZThn8_N7ee724513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724513barEv,_ZTv0_n16_N7ee724513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724513barEv,_ZThn8_N7ee724513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72451 = { "ee72451", // class name
+ bases_ee72451, 4,
+ &(vtc_ee72451[0]), // expected_vtbl_contents
+ &(vtt_ee72451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72451),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names718,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3451 : virtual cc451 {
+ int d;
+ virtual void foo(); // _ZN6dd34513fooEv
+ ~dd3451(); // tgen
+ dd3451(); // tgen
+};
+//SIG(-1 dd3451) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3451 ::foo(){vfunc_called(this, "_ZN6dd34513fooEv");}
+dd3451 ::~dd3451(){ note_dtor("dd3451", this);} // tgen
+dd3451 ::dd3451(){ note_ctor("dd3451", this);} // tgen
+
+static void Test_dd3451()
+{
+ extern Class_Descriptor cd_dd3451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3451, buf);
+ dd3451 *dp, &lv = *(dp=new (buf) dd3451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,20), "dd3451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,8), "dd3451");
+ check_base_class_offset(lv, (cc451*), ABISELECT(16,8), "dd3451");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3451.d");
+ test_class_info(&lv, &cd_dd3451);
+ dp->~dd3451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3451(Test_dd3451, "dd3451", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3451C1Ev();
+extern void _ZN6dd3451D1Ev();
+Name_Map name_map_dd3451[] = {
+ NSPAIR(_ZN6dd3451C1Ev),
+ NSPAIR(_ZN6dd3451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd3451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd3451[];
+extern void _ZN6dd34513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd3451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd3451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd3451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3451[] = {
+ {&(_ZTV6dd3451[4]), 4,14},
+ {&(_ZTV6dd3451[9]), 9,14},
+ {&(_ZTV6dd3451[13]), 13,14},
+ {&(_tg__ZTV5cc451__6dd3451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd3451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd3451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd3451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static VTBL_ENTRY alt_thunk_names719[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3451 = { "dd3451", // class name
+ bases_dd3451, 3,
+ &(vtc_dd3451[0]), // expected_vtbl_contents
+ &(vtt_dd3451[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3451),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names719,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03451 : dd3451 {
+ int e;
+ ~ee03451(); // tgen
+ ee03451(); // tgen
+};
+//SIG(1 ee03451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03451 ::~ee03451(){ note_dtor("ee03451", this);} // tgen
+ee03451 ::ee03451(){ note_ctor("ee03451", this);} // tgen
+
+static void Test_ee03451()
+{
+ extern Class_Descriptor cd_ee03451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03451, buf);
+ ee03451 *dp, &lv = *(dp=new (buf) ee03451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee03451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee03451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(16,12), "ee03451");
+ check_base_class_offset(lv, (dd3451*), 0, "ee03451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03451.e");
+ test_class_info(&lv, &cd_ee03451);
+ dp->~ee03451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03451(Test_ee03451, "ee03451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03451C1Ev();
+extern void _ZN7ee03451D1Ev();
+Name_Map name_map_ee03451[] = {
+ NSPAIR(_ZN7ee03451C1Ev),
+ NSPAIR(_ZN7ee03451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee03451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03451[];
+extern void _ZN6dd34513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee03451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee03451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee03451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee03451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee03451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee03451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee03451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03451[] = {
+ {&(_ZTV7ee03451[4]), 4,14},
+ {&(_tg__ZTV6dd3451__7ee03451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee03451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee03451[3]), 3,4},
+ {&(_ZTV7ee03451[9]), 9,14},
+ {&(_ZTV7ee03451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee03451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee03451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee03451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee03451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03451[];
+extern VTBL_ENTRY _ZTV7ee03451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03451[];
+static VTBL_ENTRY alt_thunk_names720[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03451 = { "ee03451", // class name
+ bases_ee03451, 4,
+ &(vtc_ee03451[0]), // expected_vtbl_contents
+ &(vtt_ee03451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names720,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13451 : virtual dd3451 {
+ int e;
+ ~ee13451(); // tgen
+ ee13451(); // tgen
+};
+//SIG(1 ee13451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13451 ::~ee13451(){ note_dtor("ee13451", this);} // tgen
+ee13451 ::ee13451(){ note_ctor("ee13451", this);} // tgen
+
+static void Test_ee13451()
+{
+ extern Class_Descriptor cd_ee13451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13451, buf);
+ ee13451 *dp, &lv = *(dp=new (buf) ee13451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee13451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee13451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(32,16), "ee13451");
+ check_base_class_offset(lv, (dd3451*), ABISELECT(16,8), "ee13451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13451.e");
+ test_class_info(&lv, &cd_ee13451);
+ dp->~ee13451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13451(Test_ee13451, "ee13451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13451C1Ev();
+extern void _ZN7ee13451D1Ev();
+Name_Map name_map_ee13451[] = {
+ NSPAIR(_ZN7ee13451C1Ev),
+ NSPAIR(_ZN7ee13451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee13451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13451[];
+extern void _ZN6dd34513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13451[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee13451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee13451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee13451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee13451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee13451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee13451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee13451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13451[] = {
+ {&(_ZTV7ee13451[5]), 5,20},
+ {&(_ZTV7ee13451[10]), 10,20},
+ {&(_ZTV7ee13451[15]), 15,20},
+ {&(_ZTV7ee13451[19]), 19,20},
+ {&(_tg__ZTV6dd3451__7ee13451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee13451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee13451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee13451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee13451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee13451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee13451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13451[];
+extern VTBL_ENTRY _ZTV7ee13451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13451[];
+static VTBL_ENTRY alt_thunk_names721[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13451 = { "ee13451", // class name
+ bases_ee13451, 4,
+ &(vtc_ee13451[0]), // expected_vtbl_contents
+ &(vtt_ee13451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13451),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names721,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23451 : dd3451 {
+ int e;
+ virtual void foo(); // _ZN7ee234513fooEv
+ ~ee23451(); // tgen
+ ee23451(); // tgen
+};
+//SIG(1 ee23451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23451 ::foo(){vfunc_called(this, "_ZN7ee234513fooEv");}
+ee23451 ::~ee23451(){ note_dtor("ee23451", this);} // tgen
+ee23451 ::ee23451(){ note_ctor("ee23451", this);} // tgen
+
+static void Test_ee23451()
+{
+ extern Class_Descriptor cd_ee23451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23451, buf);
+ ee23451 *dp, &lv = *(dp=new (buf) ee23451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee23451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee23451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(16,12), "ee23451");
+ check_base_class_offset(lv, (dd3451*), 0, "ee23451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23451.e");
+ test_class_info(&lv, &cd_ee23451);
+ dp->~ee23451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23451(Test_ee23451, "ee23451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23451C1Ev();
+extern void _ZN7ee23451D1Ev();
+Name_Map name_map_ee23451[] = {
+ NSPAIR(_ZN7ee23451C1Ev),
+ NSPAIR(_ZN7ee23451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee23451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23451[];
+extern void _ZN7ee234513fooEv();
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234513fooEv,_ZTv0_n12_N7ee234513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee234513fooEv,_ZThn24_N7ee234513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23451[0]),
+ (VTBL_ENTRY)&_ZN7ee234513fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234513fooEv,_ZTv0_n12_N7ee234513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee23451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee23451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee23451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee23451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee23451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee23451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee23451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23451[] = {
+ {&(_ZTV7ee23451[4]), 4,14},
+ {&(_tg__ZTV6dd3451__7ee23451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee23451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee23451[3]), 3,4},
+ {&(_ZTV7ee23451[9]), 9,14},
+ {&(_ZTV7ee23451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee23451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee23451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee23451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee23451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23451[];
+extern VTBL_ENTRY _ZTV7ee23451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23451[];
+static VTBL_ENTRY alt_thunk_names722[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234513fooEv,_ZTv0_n12_N7ee234513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee234513fooEv,_ZThn24_N7ee234513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23451 = { "ee23451", // class name
+ bases_ee23451, 4,
+ &(vtc_ee23451[0]), // expected_vtbl_contents
+ &(vtt_ee23451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names722,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33451 : virtual dd3451 {
+ int e;
+ virtual void foo(); // _ZN7ee334513fooEv
+ ~ee33451(); // tgen
+ ee33451(); // tgen
+};
+//SIG(1 ee33451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33451 ::foo(){vfunc_called(this, "_ZN7ee334513fooEv");}
+ee33451 ::~ee33451(){ note_dtor("ee33451", this);} // tgen
+ee33451 ::ee33451(){ note_ctor("ee33451", this);} // tgen
+
+static void Test_ee33451()
+{
+ extern Class_Descriptor cd_ee33451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33451, buf);
+ ee33451 *dp, &lv = *(dp=new (buf) ee33451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee33451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee33451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(32,16), "ee33451");
+ check_base_class_offset(lv, (dd3451*), ABISELECT(16,8), "ee33451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33451.e");
+ test_class_info(&lv, &cd_ee33451);
+ dp->~ee33451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33451(Test_ee33451, "ee33451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33451C1Ev();
+extern void _ZN7ee33451D1Ev();
+Name_Map name_map_ee33451[] = {
+ NSPAIR(_ZN7ee33451C1Ev),
+ NSPAIR(_ZN7ee33451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee33451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33451[];
+extern void _ZN7ee334513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee334513fooEv,_ZTv0_n20_N7ee334513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334513fooEv,_ZThn8_N7ee334513fooEv)() __attribute__((weak));
+extern void _ZN5cc4513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee334513fooEv,_ZTv0_n12_N7ee334513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee334513fooEv,_ZThn28_N7ee334513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33451[0]),
+ (VTBL_ENTRY)&_ZN7ee334513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee334513fooEv,_ZTv0_n20_N7ee334513fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334513fooEv,_ZTv0_n12_N7ee334513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee33451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee33451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee33451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee33451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee33451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee33451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee33451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33451[] = {
+ {&(_ZTV7ee33451[5]), 5,21},
+ {&(_ZTV7ee33451[11]), 11,21},
+ {&(_ZTV7ee33451[16]), 16,21},
+ {&(_ZTV7ee33451[20]), 20,21},
+ {&(_tg__ZTV6dd3451__7ee33451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee33451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee33451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee33451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee33451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee33451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee33451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33451[];
+extern VTBL_ENTRY _ZTV7ee33451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33451[];
+static VTBL_ENTRY alt_thunk_names723[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334513fooEv,_ZTv0_n12_N7ee334513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee334513fooEv,_ZThn28_N7ee334513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee334513fooEv,_ZTv0_n20_N7ee334513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334513fooEv,_ZThn8_N7ee334513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33451 = { "ee33451", // class name
+ bases_ee33451, 4,
+ &(vtc_ee33451[0]), // expected_vtbl_contents
+ &(vtt_ee33451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33451),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names723,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43451 : dd3451 {
+ int e;
+ virtual void bar(); // _ZN7ee434513barEv
+ ~ee43451(); // tgen
+ ee43451(); // tgen
+};
+//SIG(1 ee43451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43451 ::bar(){vfunc_called(this, "_ZN7ee434513barEv");}
+ee43451 ::~ee43451(){ note_dtor("ee43451", this);} // tgen
+ee43451 ::ee43451(){ note_ctor("ee43451", this);} // tgen
+
+static void Test_ee43451()
+{
+ extern Class_Descriptor cd_ee43451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43451, buf);
+ ee43451 *dp, &lv = *(dp=new (buf) ee43451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee43451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee43451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(16,12), "ee43451");
+ check_base_class_offset(lv, (dd3451*), 0, "ee43451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43451.e");
+ test_class_info(&lv, &cd_ee43451);
+ dp->~ee43451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43451(Test_ee43451, "ee43451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43451C1Ev();
+extern void _ZN7ee43451D1Ev();
+Name_Map name_map_ee43451[] = {
+ NSPAIR(_ZN7ee43451C1Ev),
+ NSPAIR(_ZN7ee43451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee43451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43451[];
+extern void _ZN6dd34513fooEv();
+extern void _ZN7ee434513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee434513barEv,_ZTv0_n16_N7ee434513barEv)();
+extern void ABISELECT(_ZThn16_N7ee434513barEv,_ZThn12_N7ee434513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+ (VTBL_ENTRY)&_ZN7ee434513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434513barEv,_ZTv0_n16_N7ee434513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee43451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee43451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee43451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee43451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee43451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee43451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee43451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43451[] = {
+ {&(_ZTV7ee43451[4]), 4,15},
+ {&(_tg__ZTV6dd3451__7ee43451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee43451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee43451[3]), 3,4},
+ {&(_ZTV7ee43451[10]), 10,15},
+ {&(_ZTV7ee43451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee43451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee43451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee43451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee43451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43451[];
+extern VTBL_ENTRY _ZTV7ee43451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43451[];
+static VTBL_ENTRY alt_thunk_names724[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434513barEv,_ZTv0_n16_N7ee434513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434513barEv,_ZThn12_N7ee434513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43451 = { "ee43451", // class name
+ bases_ee43451, 4,
+ &(vtc_ee43451[0]), // expected_vtbl_contents
+ &(vtt_ee43451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names724,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53451 : virtual dd3451 {
+ int e;
+ virtual void bar(); // _ZN7ee534513barEv
+ ~ee53451(); // tgen
+ ee53451(); // tgen
+};
+//SIG(1 ee53451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53451 ::bar(){vfunc_called(this, "_ZN7ee534513barEv");}
+ee53451 ::~ee53451(){ note_dtor("ee53451", this);} // tgen
+ee53451 ::ee53451(){ note_ctor("ee53451", this);} // tgen
+
+static void Test_ee53451()
+{
+ extern Class_Descriptor cd_ee53451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53451, buf);
+ ee53451 *dp, &lv = *(dp=new (buf) ee53451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee53451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee53451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(32,16), "ee53451");
+ check_base_class_offset(lv, (dd3451*), ABISELECT(16,8), "ee53451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53451.e");
+ test_class_info(&lv, &cd_ee53451);
+ dp->~ee53451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53451(Test_ee53451, "ee53451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53451C1Ev();
+extern void _ZN7ee53451D1Ev();
+Name_Map name_map_ee53451[] = {
+ NSPAIR(_ZN7ee53451C1Ev),
+ NSPAIR(_ZN7ee53451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee53451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53451[];
+extern void _ZN7ee534513barEv();
+extern void _ZN6dd34513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee534513barEv,_ZTv0_n16_N7ee534513barEv)();
+extern void ABISELECT(_ZThn32_N7ee534513barEv,_ZThn16_N7ee534513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53451[0]),
+ (VTBL_ENTRY)&_ZN7ee534513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534513barEv,_ZTv0_n16_N7ee534513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee53451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee53451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee53451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee53451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee53451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee53451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee53451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53451[] = {
+ {&(_ZTV7ee53451[5]), 5,21},
+ {&(_ZTV7ee53451[11]), 11,21},
+ {&(_ZTV7ee53451[16]), 16,21},
+ {&(_ZTV7ee53451[20]), 20,21},
+ {&(_tg__ZTV6dd3451__7ee53451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee53451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee53451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee53451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee53451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee53451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee53451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53451[];
+extern VTBL_ENTRY _ZTV7ee53451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53451[];
+static VTBL_ENTRY alt_thunk_names725[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534513barEv,_ZTv0_n16_N7ee534513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534513barEv,_ZThn16_N7ee534513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53451 = { "ee53451", // class name
+ bases_ee53451, 4,
+ &(vtc_ee53451[0]), // expected_vtbl_contents
+ &(vtt_ee53451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53451),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names725,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63451 : dd3451 {
+ int e;
+ virtual void foo(); // _ZN7ee634513fooEv
+ virtual void bar(); // _ZN7ee634513barEv
+ ~ee63451(); // tgen
+ ee63451(); // tgen
+};
+//SIG(1 ee63451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63451 ::foo(){vfunc_called(this, "_ZN7ee634513fooEv");}
+void ee63451 ::bar(){vfunc_called(this, "_ZN7ee634513barEv");}
+ee63451 ::~ee63451(){ note_dtor("ee63451", this);} // tgen
+ee63451 ::ee63451(){ note_ctor("ee63451", this);} // tgen
+
+static void Test_ee63451()
+{
+ extern Class_Descriptor cd_ee63451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63451, buf);
+ ee63451 *dp, &lv = *(dp=new (buf) ee63451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee63451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee63451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(16,12), "ee63451");
+ check_base_class_offset(lv, (dd3451*), 0, "ee63451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63451.e");
+ test_class_info(&lv, &cd_ee63451);
+ dp->~ee63451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63451(Test_ee63451, "ee63451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63451C1Ev();
+extern void _ZN7ee63451D1Ev();
+Name_Map name_map_ee63451[] = {
+ NSPAIR(_ZN7ee63451C1Ev),
+ NSPAIR(_ZN7ee63451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee63451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63451[];
+extern void _ZN7ee634513fooEv();
+extern void _ZN7ee634513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee634513barEv,_ZTv0_n16_N7ee634513barEv)();
+extern void ABISELECT(_ZThn16_N7ee634513barEv,_ZThn12_N7ee634513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee634513fooEv,_ZTv0_n12_N7ee634513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee634513fooEv,_ZThn24_N7ee634513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63451[0]),
+ (VTBL_ENTRY)&_ZN7ee634513fooEv,
+ (VTBL_ENTRY)&_ZN7ee634513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634513barEv,_ZTv0_n16_N7ee634513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634513fooEv,_ZTv0_n12_N7ee634513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee63451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee63451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee63451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee63451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee63451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee63451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee63451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63451[] = {
+ {&(_ZTV7ee63451[4]), 4,15},
+ {&(_tg__ZTV6dd3451__7ee63451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee63451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee63451[3]), 3,4},
+ {&(_ZTV7ee63451[10]), 10,15},
+ {&(_ZTV7ee63451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee63451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee63451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee63451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee63451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63451[];
+extern VTBL_ENTRY _ZTV7ee63451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63451[];
+static VTBL_ENTRY alt_thunk_names726[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn24_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634513fooEv,_ZTv0_n12_N7ee634513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee634513fooEv,_ZThn24_N7ee634513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634513barEv,_ZTv0_n16_N7ee634513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634513barEv,_ZThn12_N7ee634513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63451 = { "ee63451", // class name
+ bases_ee63451, 4,
+ &(vtc_ee63451[0]), // expected_vtbl_contents
+ &(vtt_ee63451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names726,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73451 : virtual dd3451 {
+ int e;
+ virtual void foo(); // _ZN7ee734513fooEv
+ virtual void bar(); // _ZN7ee734513barEv
+ ~ee73451(); // tgen
+ ee73451(); // tgen
+};
+//SIG(1 ee73451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73451 ::foo(){vfunc_called(this, "_ZN7ee734513fooEv");}
+void ee73451 ::bar(){vfunc_called(this, "_ZN7ee734513barEv");}
+ee73451 ::~ee73451(){ note_dtor("ee73451", this);} // tgen
+ee73451 ::ee73451(){ note_ctor("ee73451", this);} // tgen
+
+static void Test_ee73451()
+{
+ extern Class_Descriptor cd_ee73451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73451, buf);
+ ee73451 *dp, &lv = *(dp=new (buf) ee73451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee73451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee73451");
+ check_base_class_offset(lv, (cc451*)(dd3451*), ABISELECT(32,16), "ee73451");
+ check_base_class_offset(lv, (dd3451*), ABISELECT(16,8), "ee73451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73451.e");
+ test_class_info(&lv, &cd_ee73451);
+ dp->~ee73451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73451(Test_ee73451, "ee73451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73451C1Ev();
+extern void _ZN7ee73451D1Ev();
+Name_Map name_map_ee73451[] = {
+ NSPAIR(_ZN7ee73451C1Ev),
+ NSPAIR(_ZN7ee73451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd3451;
+extern VTBL_ENTRY _ZTI6dd3451[];
+extern VTBL_ENTRY _ZTV6dd3451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3451[];
+static Base_Class bases_ee73451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3451, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73451[];
+extern void _ZN7ee734513fooEv();
+extern void _ZN7ee734513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee734513fooEv,_ZTv0_n20_N7ee734513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734513fooEv,_ZThn8_N7ee734513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734513barEv,_ZTv0_n16_N7ee734513barEv)();
+extern void ABISELECT(_ZThn32_N7ee734513barEv,_ZThn16_N7ee734513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734513fooEv,_ZTv0_n12_N7ee734513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee734513fooEv,_ZThn28_N7ee734513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73451[0]),
+ (VTBL_ENTRY)&_ZN7ee734513fooEv,
+ (VTBL_ENTRY)&_ZN7ee734513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee734513fooEv,_ZTv0_n20_N7ee734513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734513barEv,_ZTv0_n16_N7ee734513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734513fooEv,_ZTv0_n12_N7ee734513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73451[];
+extern void _ZN6dd34513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3451__7ee73451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN6dd34513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd3451__7ee73451[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3451__7ee73451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee73451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee73451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee73451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee73451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73451[] = {
+ {&(_ZTV7ee73451[5]), 5,22},
+ {&(_ZTV7ee73451[12]), 12,22},
+ {&(_ZTV7ee73451[17]), 17,22},
+ {&(_ZTV7ee73451[21]), 21,22},
+ {&(_tg__ZTV6dd3451__7ee73451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd3451__7ee73451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3451__7ee73451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee73451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee73451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee73451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee73451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73451[];
+extern VTBL_ENTRY _ZTV7ee73451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73451[];
+static VTBL_ENTRY alt_thunk_names727[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34513fooEv,_ZTv0_n12_N6dd34513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34513fooEv,_ZThn20_N6dd34513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734513fooEv,_ZTv0_n12_N7ee734513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee734513fooEv,_ZThn28_N7ee734513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734513barEv,_ZTv0_n16_N7ee734513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734513barEv,_ZThn16_N7ee734513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee734513fooEv,_ZTv0_n20_N7ee734513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734513fooEv,_ZThn8_N7ee734513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73451 = { "ee73451", // class name
+ bases_ee73451, 4,
+ &(vtc_ee73451[0]), // expected_vtbl_contents
+ &(vtt_ee73451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73451),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names727,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4451 : cc451 {
+ int d;
+ virtual void bar(); // _ZN6dd44513barEv
+ ~dd4451(); // tgen
+ dd4451(); // tgen
+};
+//SIG(-1 dd4451) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4451 ::bar(){vfunc_called(this, "_ZN6dd44513barEv");}
+dd4451 ::~dd4451(){ note_dtor("dd4451", this);} // tgen
+dd4451 ::dd4451(){ note_ctor("dd4451", this);} // tgen
+
+static void Test_dd4451()
+{
+ extern Class_Descriptor cd_dd4451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4451, buf);
+ dd4451 *dp, &lv = *(dp=new (buf) dd4451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(24,16), "dd4451");
+ check_base_class_offset(lv, (bb51*)(cc451*), 0, "dd4451");
+ check_base_class_offset(lv, (cc451*), 0, "dd4451");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4451.d");
+ test_class_info(&lv, &cd_dd4451);
+ dp->~dd4451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4451(Test_dd4451, "dd4451", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4451C1Ev();
+extern void _ZN6dd4451D1Ev();
+Name_Map name_map_dd4451[] = {
+ NSPAIR(_ZN6dd4451C1Ev),
+ NSPAIR(_ZN6dd4451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd4451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern void _ZN6dd44513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd4451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd4451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd4451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd4451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4451[] = {
+ {&(_ZTV6dd4451[3]), 3,8},
+ {&(_tg__ZTV5cc451__6dd4451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd4451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd4451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd4451[3]), 3,4},
+ {&(_ZTV6dd4451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+Class_Descriptor cd_dd4451 = { "dd4451", // class name
+ bases_dd4451, 3,
+ &(vtc_dd4451[0]), // expected_vtbl_contents
+ &(vtt_dd4451[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4451),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04451 : dd4451 {
+ int e;
+ ~ee04451(); // tgen
+ ee04451(); // tgen
+};
+//SIG(1 ee04451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04451 ::~ee04451(){ note_dtor("ee04451", this);} // tgen
+ee04451 ::ee04451(){ note_ctor("ee04451", this);} // tgen
+
+static void Test_ee04451()
+{
+ extern Class_Descriptor cd_ee04451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04451, buf);
+ ee04451 *dp, &lv = *(dp=new (buf) ee04451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(24,20), "ee04451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), 0, "ee04451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), 0, "ee04451");
+ check_base_class_offset(lv, (dd4451*), 0, "ee04451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04451.e");
+ test_class_info(&lv, &cd_ee04451);
+ dp->~ee04451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04451(Test_ee04451, "ee04451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04451C1Ev();
+extern void _ZN7ee04451D1Ev();
+Name_Map name_map_ee04451[] = {
+ NSPAIR(_ZN7ee04451C1Ev),
+ NSPAIR(_ZN7ee04451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee04451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04451[];
+extern void _ZN6dd44513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee04451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee04451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee04451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee04451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee04451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee04451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04451[] = {
+ {&(_ZTV7ee04451[3]), 3,8},
+ {&(_tg__ZTV6dd4451__7ee04451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee04451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee04451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee04451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee04451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee04451[3]), 3,4},
+ {&(_ZTV7ee04451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee04451[];
+extern VTBL_ENTRY _ZTV7ee04451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04451[];
+Class_Descriptor cd_ee04451 = { "ee04451", // class name
+ bases_ee04451, 4,
+ &(vtc_ee04451[0]), // expected_vtbl_contents
+ &(vtt_ee04451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14451 : virtual dd4451 {
+ int e;
+ ~ee14451(); // tgen
+ ee14451(); // tgen
+};
+//SIG(1 ee14451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14451 ::~ee14451(){ note_dtor("ee14451", this);} // tgen
+ee14451 ::ee14451(){ note_ctor("ee14451", this);} // tgen
+
+static void Test_ee14451()
+{
+ extern Class_Descriptor cd_ee14451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14451, buf);
+ ee14451 *dp, &lv = *(dp=new (buf) ee14451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(40,24), "ee14451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), ABISELECT(16,8), "ee14451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), ABISELECT(16,8), "ee14451");
+ check_base_class_offset(lv, (dd4451*), ABISELECT(16,8), "ee14451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14451.e");
+ test_class_info(&lv, &cd_ee14451);
+ dp->~ee14451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14451(Test_ee14451, "ee14451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14451C1Ev();
+extern void _ZN7ee14451D1Ev();
+Name_Map name_map_ee14451[] = {
+ NSPAIR(_ZN7ee14451C1Ev),
+ NSPAIR(_ZN7ee14451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee14451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14451[];
+extern void _ZN6dd44513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14451[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee14451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee14451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee14451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee14451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee14451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee14451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14451[] = {
+ {&(_ZTV7ee14451[4]), 4,13},
+ {&(_ZTV7ee14451[8]), 8,13},
+ {&(_ZTV7ee14451[12]), 12,13},
+ {&(_tg__ZTV6dd4451__7ee14451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee14451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee14451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee14451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee14451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee14451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14451[];
+extern VTBL_ENTRY _ZTV7ee14451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14451[];
+Class_Descriptor cd_ee14451 = { "ee14451", // class name
+ bases_ee14451, 4,
+ &(vtc_ee14451[0]), // expected_vtbl_contents
+ &(vtt_ee14451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14451),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24451 : dd4451 {
+ int e;
+ virtual void foo(); // _ZN7ee244513fooEv
+ ~ee24451(); // tgen
+ ee24451(); // tgen
+};
+//SIG(1 ee24451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24451 ::foo(){vfunc_called(this, "_ZN7ee244513fooEv");}
+ee24451 ::~ee24451(){ note_dtor("ee24451", this);} // tgen
+ee24451 ::ee24451(){ note_ctor("ee24451", this);} // tgen
+
+static void Test_ee24451()
+{
+ extern Class_Descriptor cd_ee24451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24451, buf);
+ ee24451 *dp, &lv = *(dp=new (buf) ee24451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(24,20), "ee24451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), 0, "ee24451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), 0, "ee24451");
+ check_base_class_offset(lv, (dd4451*), 0, "ee24451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24451.e");
+ test_class_info(&lv, &cd_ee24451);
+ dp->~ee24451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24451(Test_ee24451, "ee24451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24451C1Ev();
+extern void _ZN7ee24451D1Ev();
+Name_Map name_map_ee24451[] = {
+ NSPAIR(_ZN7ee24451C1Ev),
+ NSPAIR(_ZN7ee24451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee24451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24451[];
+extern void _ZN6dd44513barEv();
+extern void _ZN7ee244513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee244513fooEv,_ZTv0_n12_N7ee244513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee244513fooEv,_ZThn20_N7ee244513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+ (VTBL_ENTRY)&_ZN7ee244513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee244513fooEv,_ZTv0_n12_N7ee244513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee24451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee24451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee24451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee24451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee24451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee24451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24451[] = {
+ {&(_ZTV7ee24451[3]), 3,9},
+ {&(_tg__ZTV6dd4451__7ee24451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee24451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee24451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee24451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee24451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee24451[3]), 3,4},
+ {&(_ZTV7ee24451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24451[];
+extern VTBL_ENTRY _ZTV7ee24451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24451[];
+static VTBL_ENTRY alt_thunk_names728[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee244513fooEv,_ZTv0_n12_N7ee244513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee244513fooEv,_ZThn20_N7ee244513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24451 = { "ee24451", // class name
+ bases_ee24451, 4,
+ &(vtc_ee24451[0]), // expected_vtbl_contents
+ &(vtt_ee24451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names728,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34451 : virtual dd4451 {
+ int e;
+ virtual void foo(); // _ZN7ee344513fooEv
+ ~ee34451(); // tgen
+ ee34451(); // tgen
+};
+//SIG(1 ee34451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34451 ::foo(){vfunc_called(this, "_ZN7ee344513fooEv");}
+ee34451 ::~ee34451(){ note_dtor("ee34451", this);} // tgen
+ee34451 ::ee34451(){ note_ctor("ee34451", this);} // tgen
+
+static void Test_ee34451()
+{
+ extern Class_Descriptor cd_ee34451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34451, buf);
+ ee34451 *dp, &lv = *(dp=new (buf) ee34451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(40,24), "ee34451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), ABISELECT(16,8), "ee34451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), ABISELECT(16,8), "ee34451");
+ check_base_class_offset(lv, (dd4451*), ABISELECT(16,8), "ee34451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34451.e");
+ test_class_info(&lv, &cd_ee34451);
+ dp->~ee34451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34451(Test_ee34451, "ee34451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34451C1Ev();
+extern void _ZN7ee34451D1Ev();
+Name_Map name_map_ee34451[] = {
+ NSPAIR(_ZN7ee34451C1Ev),
+ NSPAIR(_ZN7ee34451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee34451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34451[];
+extern void _ZN7ee344513fooEv();
+extern void _ZN6dd44513barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344513fooEv,_ZTv0_n12_N7ee344513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee344513fooEv,_ZThn24_N7ee344513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34451[0]),
+ (VTBL_ENTRY)&_ZN7ee344513fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344513fooEv,_ZTv0_n12_N7ee344513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee34451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee34451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee34451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee34451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee34451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee34451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34451[] = {
+ {&(_ZTV7ee34451[4]), 4,14},
+ {&(_ZTV7ee34451[9]), 9,14},
+ {&(_ZTV7ee34451[13]), 13,14},
+ {&(_tg__ZTV6dd4451__7ee34451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee34451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee34451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee34451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee34451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee34451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34451[];
+extern VTBL_ENTRY _ZTV7ee34451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34451[];
+static VTBL_ENTRY alt_thunk_names729[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344513fooEv,_ZTv0_n12_N7ee344513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee344513fooEv,_ZThn24_N7ee344513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34451 = { "ee34451", // class name
+ bases_ee34451, 4,
+ &(vtc_ee34451[0]), // expected_vtbl_contents
+ &(vtt_ee34451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names729,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44451 : dd4451 {
+ int e;
+ virtual void bar(); // _ZN7ee444513barEv
+ ~ee44451(); // tgen
+ ee44451(); // tgen
+};
+//SIG(1 ee44451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44451 ::bar(){vfunc_called(this, "_ZN7ee444513barEv");}
+ee44451 ::~ee44451(){ note_dtor("ee44451", this);} // tgen
+ee44451 ::ee44451(){ note_ctor("ee44451", this);} // tgen
+
+static void Test_ee44451()
+{
+ extern Class_Descriptor cd_ee44451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44451, buf);
+ ee44451 *dp, &lv = *(dp=new (buf) ee44451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(24,20), "ee44451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), 0, "ee44451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), 0, "ee44451");
+ check_base_class_offset(lv, (dd4451*), 0, "ee44451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44451.e");
+ test_class_info(&lv, &cd_ee44451);
+ dp->~ee44451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44451(Test_ee44451, "ee44451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44451C1Ev();
+extern void _ZN7ee44451D1Ev();
+Name_Map name_map_ee44451[] = {
+ NSPAIR(_ZN7ee44451C1Ev),
+ NSPAIR(_ZN7ee44451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee44451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44451[];
+extern void _ZN7ee444513barEv();
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44451[0]),
+ (VTBL_ENTRY)&_ZN7ee444513barEv,
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee44451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee44451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee44451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee44451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee44451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee44451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44451[] = {
+ {&(_ZTV7ee44451[3]), 3,8},
+ {&(_tg__ZTV6dd4451__7ee44451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee44451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee44451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee44451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee44451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee44451[3]), 3,4},
+ {&(_ZTV7ee44451[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI7ee44451[];
+extern VTBL_ENTRY _ZTV7ee44451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44451[];
+Class_Descriptor cd_ee44451 = { "ee44451", // class name
+ bases_ee44451, 4,
+ &(vtc_ee44451[0]), // expected_vtbl_contents
+ &(vtt_ee44451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44451),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54451 : virtual dd4451 {
+ int e;
+ virtual void bar(); // _ZN7ee544513barEv
+ ~ee54451(); // tgen
+ ee54451(); // tgen
+};
+//SIG(1 ee54451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54451 ::bar(){vfunc_called(this, "_ZN7ee544513barEv");}
+ee54451 ::~ee54451(){ note_dtor("ee54451", this);} // tgen
+ee54451 ::ee54451(){ note_ctor("ee54451", this);} // tgen
+
+static void Test_ee54451()
+{
+ extern Class_Descriptor cd_ee54451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54451, buf);
+ ee54451 *dp, &lv = *(dp=new (buf) ee54451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(40,24), "ee54451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), ABISELECT(16,8), "ee54451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), ABISELECT(16,8), "ee54451");
+ check_base_class_offset(lv, (dd4451*), ABISELECT(16,8), "ee54451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54451.e");
+ test_class_info(&lv, &cd_ee54451);
+ dp->~ee54451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54451(Test_ee54451, "ee54451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54451C1Ev();
+extern void _ZN7ee54451D1Ev();
+Name_Map name_map_ee54451[] = {
+ NSPAIR(_ZN7ee54451C1Ev),
+ NSPAIR(_ZN7ee54451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee54451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54451[];
+extern void _ZN7ee544513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544513barEv,_ZTv0_n16_N7ee544513barEv)();
+extern void ABISELECT(_ZThn16_N7ee544513barEv,_ZThn8_N7ee544513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54451[0]),
+ (VTBL_ENTRY)&_ZN7ee544513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544513barEv,_ZTv0_n16_N7ee544513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee54451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee54451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee54451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee54451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee54451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee54451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54451[] = {
+ {&(_ZTV7ee54451[4]), 4,14},
+ {&(_ZTV7ee54451[9]), 9,14},
+ {&(_ZTV7ee54451[13]), 13,14},
+ {&(_tg__ZTV6dd4451__7ee54451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee54451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee54451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee54451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee54451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee54451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54451[];
+extern VTBL_ENTRY _ZTV7ee54451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54451[];
+static VTBL_ENTRY alt_thunk_names730[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544513barEv,_ZTv0_n16_N7ee544513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544513barEv,_ZThn8_N7ee544513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54451 = { "ee54451", // class name
+ bases_ee54451, 4,
+ &(vtc_ee54451[0]), // expected_vtbl_contents
+ &(vtt_ee54451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names730,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64451 : dd4451 {
+ int e;
+ virtual void foo(); // _ZN7ee644513fooEv
+ virtual void bar(); // _ZN7ee644513barEv
+ ~ee64451(); // tgen
+ ee64451(); // tgen
+};
+//SIG(1 ee64451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64451 ::foo(){vfunc_called(this, "_ZN7ee644513fooEv");}
+void ee64451 ::bar(){vfunc_called(this, "_ZN7ee644513barEv");}
+ee64451 ::~ee64451(){ note_dtor("ee64451", this);} // tgen
+ee64451 ::ee64451(){ note_ctor("ee64451", this);} // tgen
+
+static void Test_ee64451()
+{
+ extern Class_Descriptor cd_ee64451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64451, buf);
+ ee64451 *dp, &lv = *(dp=new (buf) ee64451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(24,20), "ee64451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), 0, "ee64451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), 0, "ee64451");
+ check_base_class_offset(lv, (dd4451*), 0, "ee64451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64451.e");
+ test_class_info(&lv, &cd_ee64451);
+ dp->~ee64451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64451(Test_ee64451, "ee64451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64451C1Ev();
+extern void _ZN7ee64451D1Ev();
+Name_Map name_map_ee64451[] = {
+ NSPAIR(_ZN7ee64451C1Ev),
+ NSPAIR(_ZN7ee64451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee64451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64451[];
+extern void _ZN7ee644513barEv();
+extern void _ZN7ee644513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee644513fooEv,_ZTv0_n12_N7ee644513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee644513fooEv,_ZThn20_N7ee644513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64451[0]),
+ (VTBL_ENTRY)&_ZN7ee644513barEv,
+ (VTBL_ENTRY)&_ZN7ee644513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee644513fooEv,_ZTv0_n12_N7ee644513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee64451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee64451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee64451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee64451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee64451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee64451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64451[] = {
+ {&(_ZTV7ee64451[3]), 3,9},
+ {&(_tg__ZTV6dd4451__7ee64451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee64451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee64451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee64451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee64451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee64451[3]), 3,4},
+ {&(_ZTV7ee64451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64451[];
+extern VTBL_ENTRY _ZTV7ee64451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64451[];
+static VTBL_ENTRY alt_thunk_names731[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee644513fooEv,_ZTv0_n12_N7ee644513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee644513fooEv,_ZThn20_N7ee644513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64451 = { "ee64451", // class name
+ bases_ee64451, 4,
+ &(vtc_ee64451[0]), // expected_vtbl_contents
+ &(vtt_ee64451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names731,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74451 : virtual dd4451 {
+ int e;
+ virtual void foo(); // _ZN7ee744513fooEv
+ virtual void bar(); // _ZN7ee744513barEv
+ ~ee74451(); // tgen
+ ee74451(); // tgen
+};
+//SIG(1 ee74451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74451 ::foo(){vfunc_called(this, "_ZN7ee744513fooEv");}
+void ee74451 ::bar(){vfunc_called(this, "_ZN7ee744513barEv");}
+ee74451 ::~ee74451(){ note_dtor("ee74451", this);} // tgen
+ee74451 ::ee74451(){ note_ctor("ee74451", this);} // tgen
+
+static void Test_ee74451()
+{
+ extern Class_Descriptor cd_ee74451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74451, buf);
+ ee74451 *dp, &lv = *(dp=new (buf) ee74451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd4451*), ABISELECT(40,24), "ee74451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd4451*), ABISELECT(16,8), "ee74451");
+ check_base_class_offset(lv, (cc451*)(dd4451*), ABISELECT(16,8), "ee74451");
+ check_base_class_offset(lv, (dd4451*), ABISELECT(16,8), "ee74451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74451.e");
+ test_class_info(&lv, &cd_ee74451);
+ dp->~ee74451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74451(Test_ee74451, "ee74451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74451C1Ev();
+extern void _ZN7ee74451D1Ev();
+Name_Map name_map_ee74451[] = {
+ NSPAIR(_ZN7ee74451C1Ev),
+ NSPAIR(_ZN7ee74451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd4451;
+extern VTBL_ENTRY _ZTI6dd4451[];
+extern VTBL_ENTRY _ZTV6dd4451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4451[];
+static Base_Class bases_ee74451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4451, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74451[];
+extern void _ZN7ee744513fooEv();
+extern void _ZN7ee744513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee744513barEv,_ZTv0_n16_N7ee744513barEv)();
+extern void ABISELECT(_ZThn16_N7ee744513barEv,_ZThn8_N7ee744513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee744513fooEv,_ZTv0_n12_N7ee744513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee744513fooEv,_ZThn24_N7ee744513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74451[0]),
+ (VTBL_ENTRY)&_ZN7ee744513fooEv,
+ (VTBL_ENTRY)&_ZN7ee744513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744513barEv,_ZTv0_n16_N7ee744513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744513fooEv,_ZTv0_n12_N7ee744513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74451[];
+extern void _ZN6dd44513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4451__7ee74451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN6dd44513barEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd4451__7ee74451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd4451__7ee74451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd4451__7ee74451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd4451__7ee74451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4451__7ee74451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74451[] = {
+ {&(_ZTV7ee74451[4]), 4,15},
+ {&(_ZTV7ee74451[10]), 10,15},
+ {&(_ZTV7ee74451[14]), 14,15},
+ {&(_tg__ZTV6dd4451__7ee74451[3]), 3,4},
+ {&(_tg__ZTV5cc4516dd4451__7ee74451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd4451__7ee74451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd4451__7ee74451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd4451__7ee74451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4451__7ee74451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74451[];
+extern VTBL_ENTRY _ZTV7ee74451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74451[];
+static VTBL_ENTRY alt_thunk_names732[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744513fooEv,_ZTv0_n12_N7ee744513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee744513fooEv,_ZThn24_N7ee744513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744513barEv,_ZTv0_n16_N7ee744513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744513barEv,_ZThn8_N7ee744513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74451 = { "ee74451", // class name
+ bases_ee74451, 4,
+ &(vtc_ee74451[0]), // expected_vtbl_contents
+ &(vtt_ee74451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names732,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5451 : virtual cc451 {
+ int d;
+ virtual void bar(); // _ZN6dd54513barEv
+ ~dd5451(); // tgen
+ dd5451(); // tgen
+};
+//SIG(-1 dd5451) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5451 ::bar(){vfunc_called(this, "_ZN6dd54513barEv");}
+dd5451 ::~dd5451(){ note_dtor("dd5451", this);} // tgen
+dd5451 ::dd5451(){ note_ctor("dd5451", this);} // tgen
+
+static void Test_dd5451()
+{
+ extern Class_Descriptor cd_dd5451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5451, buf);
+ dd5451 *dp, &lv = *(dp=new (buf) dd5451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,20), "dd5451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,8), "dd5451");
+ check_base_class_offset(lv, (cc451*), ABISELECT(16,8), "dd5451");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5451.d");
+ test_class_info(&lv, &cd_dd5451);
+ dp->~dd5451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5451(Test_dd5451, "dd5451", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5451C1Ev();
+extern void _ZN6dd5451D1Ev();
+Name_Map name_map_dd5451[] = {
+ NSPAIR(_ZN6dd5451C1Ev),
+ NSPAIR(_ZN6dd5451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd5451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,20), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd5451[];
+extern void _ZN6dd54513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd5451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd5451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd5451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5451[] = {
+ {&(_ZTV6dd5451[4]), 4,14},
+ {&(_ZTV6dd5451[9]), 9,14},
+ {&(_ZTV6dd5451[13]), 13,14},
+ {&(_tg__ZTV5cc451__6dd5451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd5451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd5451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd5451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static VTBL_ENTRY alt_thunk_names733[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5451 = { "dd5451", // class name
+ bases_dd5451, 3,
+ &(vtc_dd5451[0]), // expected_vtbl_contents
+ &(vtt_dd5451[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5451),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names733,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05451 : dd5451 {
+ int e;
+ ~ee05451(); // tgen
+ ee05451(); // tgen
+};
+//SIG(1 ee05451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05451 ::~ee05451(){ note_dtor("ee05451", this);} // tgen
+ee05451 ::ee05451(){ note_ctor("ee05451", this);} // tgen
+
+static void Test_ee05451()
+{
+ extern Class_Descriptor cd_ee05451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05451, buf);
+ ee05451 *dp, &lv = *(dp=new (buf) ee05451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee05451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee05451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(16,12), "ee05451");
+ check_base_class_offset(lv, (dd5451*), 0, "ee05451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05451.e");
+ test_class_info(&lv, &cd_ee05451);
+ dp->~ee05451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05451(Test_ee05451, "ee05451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05451C1Ev();
+extern void _ZN7ee05451D1Ev();
+Name_Map name_map_ee05451[] = {
+ NSPAIR(_ZN7ee05451C1Ev),
+ NSPAIR(_ZN7ee05451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee05451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05451[];
+extern void _ZN6dd54513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee05451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee05451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee05451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee05451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee05451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee05451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee05451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05451[] = {
+ {&(_ZTV7ee05451[4]), 4,14},
+ {&(_tg__ZTV6dd5451__7ee05451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee05451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee05451[3]), 3,4},
+ {&(_ZTV7ee05451[9]), 9,14},
+ {&(_ZTV7ee05451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee05451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee05451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee05451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee05451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05451[];
+extern VTBL_ENTRY _ZTV7ee05451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05451[];
+static VTBL_ENTRY alt_thunk_names734[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05451 = { "ee05451", // class name
+ bases_ee05451, 4,
+ &(vtc_ee05451[0]), // expected_vtbl_contents
+ &(vtt_ee05451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names734,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15451 : virtual dd5451 {
+ int e;
+ ~ee15451(); // tgen
+ ee15451(); // tgen
+};
+//SIG(1 ee15451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15451 ::~ee15451(){ note_dtor("ee15451", this);} // tgen
+ee15451 ::ee15451(){ note_ctor("ee15451", this);} // tgen
+
+static void Test_ee15451()
+{
+ extern Class_Descriptor cd_ee15451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15451, buf);
+ ee15451 *dp, &lv = *(dp=new (buf) ee15451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee15451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee15451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(32,16), "ee15451");
+ check_base_class_offset(lv, (dd5451*), ABISELECT(16,8), "ee15451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15451.e");
+ test_class_info(&lv, &cd_ee15451);
+ dp->~ee15451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15451(Test_ee15451, "ee15451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15451C1Ev();
+extern void _ZN7ee15451D1Ev();
+Name_Map name_map_ee15451[] = {
+ NSPAIR(_ZN7ee15451C1Ev),
+ NSPAIR(_ZN7ee15451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee15451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15451[];
+extern void _ZN6dd54513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15451[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee15451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee15451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee15451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee15451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee15451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee15451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee15451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15451[] = {
+ {&(_ZTV7ee15451[5]), 5,20},
+ {&(_ZTV7ee15451[10]), 10,20},
+ {&(_ZTV7ee15451[15]), 15,20},
+ {&(_ZTV7ee15451[19]), 19,20},
+ {&(_tg__ZTV6dd5451__7ee15451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee15451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee15451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee15451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee15451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee15451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee15451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15451[];
+extern VTBL_ENTRY _ZTV7ee15451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15451[];
+static VTBL_ENTRY alt_thunk_names735[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15451 = { "ee15451", // class name
+ bases_ee15451, 4,
+ &(vtc_ee15451[0]), // expected_vtbl_contents
+ &(vtt_ee15451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15451),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names735,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25451 : dd5451 {
+ int e;
+ virtual void foo(); // _ZN7ee254513fooEv
+ ~ee25451(); // tgen
+ ee25451(); // tgen
+};
+//SIG(1 ee25451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25451 ::foo(){vfunc_called(this, "_ZN7ee254513fooEv");}
+ee25451 ::~ee25451(){ note_dtor("ee25451", this);} // tgen
+ee25451 ::ee25451(){ note_ctor("ee25451", this);} // tgen
+
+static void Test_ee25451()
+{
+ extern Class_Descriptor cd_ee25451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25451, buf);
+ ee25451 *dp, &lv = *(dp=new (buf) ee25451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee25451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee25451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(16,12), "ee25451");
+ check_base_class_offset(lv, (dd5451*), 0, "ee25451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25451.e");
+ test_class_info(&lv, &cd_ee25451);
+ dp->~ee25451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25451(Test_ee25451, "ee25451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25451C1Ev();
+extern void _ZN7ee25451D1Ev();
+Name_Map name_map_ee25451[] = {
+ NSPAIR(_ZN7ee25451C1Ev),
+ NSPAIR(_ZN7ee25451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee25451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25451[];
+extern void _ZN6dd54513barEv();
+extern void _ZN7ee254513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee254513fooEv,_ZTv0_n12_N7ee254513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee254513fooEv,_ZThn24_N7ee254513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+ (VTBL_ENTRY)&_ZN7ee254513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254513fooEv,_ZTv0_n12_N7ee254513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee25451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee25451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee25451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee25451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee25451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee25451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee25451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25451[] = {
+ {&(_ZTV7ee25451[4]), 4,15},
+ {&(_tg__ZTV6dd5451__7ee25451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee25451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee25451[3]), 3,4},
+ {&(_ZTV7ee25451[10]), 10,15},
+ {&(_ZTV7ee25451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee25451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee25451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee25451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee25451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25451[];
+extern VTBL_ENTRY _ZTV7ee25451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25451[];
+static VTBL_ENTRY alt_thunk_names736[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254513fooEv,_ZTv0_n12_N7ee254513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee254513fooEv,_ZThn24_N7ee254513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25451 = { "ee25451", // class name
+ bases_ee25451, 4,
+ &(vtc_ee25451[0]), // expected_vtbl_contents
+ &(vtt_ee25451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names736,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35451 : virtual dd5451 {
+ int e;
+ virtual void foo(); // _ZN7ee354513fooEv
+ ~ee35451(); // tgen
+ ee35451(); // tgen
+};
+//SIG(1 ee35451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35451 ::foo(){vfunc_called(this, "_ZN7ee354513fooEv");}
+ee35451 ::~ee35451(){ note_dtor("ee35451", this);} // tgen
+ee35451 ::ee35451(){ note_ctor("ee35451", this);} // tgen
+
+static void Test_ee35451()
+{
+ extern Class_Descriptor cd_ee35451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35451, buf);
+ ee35451 *dp, &lv = *(dp=new (buf) ee35451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee35451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee35451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(32,16), "ee35451");
+ check_base_class_offset(lv, (dd5451*), ABISELECT(16,8), "ee35451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35451.e");
+ test_class_info(&lv, &cd_ee35451);
+ dp->~ee35451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35451(Test_ee35451, "ee35451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35451C1Ev();
+extern void _ZN7ee35451D1Ev();
+Name_Map name_map_ee35451[] = {
+ NSPAIR(_ZN7ee35451C1Ev),
+ NSPAIR(_ZN7ee35451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee35451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35451[];
+extern void _ZN7ee354513fooEv();
+extern void _ZN6dd54513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee354513fooEv,_ZTv0_n12_N7ee354513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee354513fooEv,_ZThn28_N7ee354513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35451[0]),
+ (VTBL_ENTRY)&_ZN7ee354513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354513fooEv,_ZTv0_n12_N7ee354513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee35451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee35451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee35451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee35451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee35451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee35451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee35451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35451[] = {
+ {&(_ZTV7ee35451[5]), 5,21},
+ {&(_ZTV7ee35451[11]), 11,21},
+ {&(_ZTV7ee35451[16]), 16,21},
+ {&(_ZTV7ee35451[20]), 20,21},
+ {&(_tg__ZTV6dd5451__7ee35451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee35451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee35451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee35451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee35451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee35451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee35451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35451[];
+extern VTBL_ENTRY _ZTV7ee35451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35451[];
+static VTBL_ENTRY alt_thunk_names737[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354513fooEv,_ZTv0_n12_N7ee354513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee354513fooEv,_ZThn28_N7ee354513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35451 = { "ee35451", // class name
+ bases_ee35451, 4,
+ &(vtc_ee35451[0]), // expected_vtbl_contents
+ &(vtt_ee35451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35451),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names737,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45451 : dd5451 {
+ int e;
+ virtual void bar(); // _ZN7ee454513barEv
+ ~ee45451(); // tgen
+ ee45451(); // tgen
+};
+//SIG(1 ee45451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45451 ::bar(){vfunc_called(this, "_ZN7ee454513barEv");}
+ee45451 ::~ee45451(){ note_dtor("ee45451", this);} // tgen
+ee45451 ::ee45451(){ note_ctor("ee45451", this);} // tgen
+
+static void Test_ee45451()
+{
+ extern Class_Descriptor cd_ee45451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45451, buf);
+ ee45451 *dp, &lv = *(dp=new (buf) ee45451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee45451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee45451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(16,12), "ee45451");
+ check_base_class_offset(lv, (dd5451*), 0, "ee45451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45451.e");
+ test_class_info(&lv, &cd_ee45451);
+ dp->~ee45451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45451(Test_ee45451, "ee45451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45451C1Ev();
+extern void _ZN7ee45451D1Ev();
+Name_Map name_map_ee45451[] = {
+ NSPAIR(_ZN7ee45451C1Ev),
+ NSPAIR(_ZN7ee45451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee45451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45451[];
+extern void _ZN7ee454513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454513barEv,_ZTv0_n16_N7ee454513barEv)();
+extern void ABISELECT(_ZThn16_N7ee454513barEv,_ZThn12_N7ee454513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45451[0]),
+ (VTBL_ENTRY)&_ZN7ee454513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454513barEv,_ZTv0_n16_N7ee454513barEv),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee45451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee45451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee45451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee45451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee45451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee45451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee45451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45451[] = {
+ {&(_ZTV7ee45451[4]), 4,14},
+ {&(_tg__ZTV6dd5451__7ee45451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee45451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee45451[3]), 3,4},
+ {&(_ZTV7ee45451[9]), 9,14},
+ {&(_ZTV7ee45451[13]), 13,14},
+ {&(_tg__ZTV5cc451__7ee45451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee45451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee45451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee45451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45451[];
+extern VTBL_ENTRY _ZTV7ee45451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45451[];
+static VTBL_ENTRY alt_thunk_names738[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454513barEv,_ZTv0_n16_N7ee454513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454513barEv,_ZThn12_N7ee454513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45451 = { "ee45451", // class name
+ bases_ee45451, 4,
+ &(vtc_ee45451[0]), // expected_vtbl_contents
+ &(vtt_ee45451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45451),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names738,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55451 : virtual dd5451 {
+ int e;
+ virtual void bar(); // _ZN7ee554513barEv
+ ~ee55451(); // tgen
+ ee55451(); // tgen
+};
+//SIG(1 ee55451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55451 ::bar(){vfunc_called(this, "_ZN7ee554513barEv");}
+ee55451 ::~ee55451(){ note_dtor("ee55451", this);} // tgen
+ee55451 ::ee55451(){ note_ctor("ee55451", this);} // tgen
+
+static void Test_ee55451()
+{
+ extern Class_Descriptor cd_ee55451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55451, buf);
+ ee55451 *dp, &lv = *(dp=new (buf) ee55451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee55451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee55451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(32,16), "ee55451");
+ check_base_class_offset(lv, (dd5451*), ABISELECT(16,8), "ee55451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55451.e");
+ test_class_info(&lv, &cd_ee55451);
+ dp->~ee55451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55451(Test_ee55451, "ee55451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55451C1Ev();
+extern void _ZN7ee55451D1Ev();
+Name_Map name_map_ee55451[] = {
+ NSPAIR(_ZN7ee55451C1Ev),
+ NSPAIR(_ZN7ee55451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee55451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55451[];
+extern void _ZN7ee554513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee554513barEv,_ZTv0_n20_N7ee554513barEv)();
+extern void ABISELECT(_ZThn16_N7ee554513barEv,_ZThn8_N7ee554513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee554513barEv,_ZTv0_n16_N7ee554513barEv)();
+extern void ABISELECT(_ZThn32_N7ee554513barEv,_ZThn16_N7ee554513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55451[0]),
+ (VTBL_ENTRY)&_ZN7ee554513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee554513barEv,_ZTv0_n20_N7ee554513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554513barEv,_ZTv0_n16_N7ee554513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee55451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee55451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee55451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee55451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee55451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee55451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee55451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55451[] = {
+ {&(_ZTV7ee55451[5]), 5,21},
+ {&(_ZTV7ee55451[11]), 11,21},
+ {&(_ZTV7ee55451[16]), 16,21},
+ {&(_ZTV7ee55451[20]), 20,21},
+ {&(_tg__ZTV6dd5451__7ee55451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee55451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee55451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee55451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee55451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee55451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee55451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55451[];
+extern VTBL_ENTRY _ZTV7ee55451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55451[];
+static VTBL_ENTRY alt_thunk_names739[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554513barEv,_ZTv0_n16_N7ee554513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554513barEv,_ZThn16_N7ee554513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee554513barEv,_ZTv0_n20_N7ee554513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554513barEv,_ZThn8_N7ee554513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55451 = { "ee55451", // class name
+ bases_ee55451, 4,
+ &(vtc_ee55451[0]), // expected_vtbl_contents
+ &(vtt_ee55451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55451),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names739,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65451 : dd5451 {
+ int e;
+ virtual void foo(); // _ZN7ee654513fooEv
+ virtual void bar(); // _ZN7ee654513barEv
+ ~ee65451(); // tgen
+ ee65451(); // tgen
+};
+//SIG(1 ee65451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65451 ::foo(){vfunc_called(this, "_ZN7ee654513fooEv");}
+void ee65451 ::bar(){vfunc_called(this, "_ZN7ee654513barEv");}
+ee65451 ::~ee65451(){ note_dtor("ee65451", this);} // tgen
+ee65451 ::ee65451(){ note_ctor("ee65451", this);} // tgen
+
+static void Test_ee65451()
+{
+ extern Class_Descriptor cd_ee65451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65451, buf);
+ ee65451 *dp, &lv = *(dp=new (buf) ee65451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee65451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee65451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(16,12), "ee65451");
+ check_base_class_offset(lv, (dd5451*), 0, "ee65451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65451.e");
+ test_class_info(&lv, &cd_ee65451);
+ dp->~ee65451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65451(Test_ee65451, "ee65451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65451C1Ev();
+extern void _ZN7ee65451D1Ev();
+Name_Map name_map_ee65451[] = {
+ NSPAIR(_ZN7ee65451C1Ev),
+ NSPAIR(_ZN7ee65451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee65451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65451[];
+extern void _ZN7ee654513barEv();
+extern void _ZN7ee654513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee654513barEv,_ZTv0_n16_N7ee654513barEv)();
+extern void ABISELECT(_ZThn16_N7ee654513barEv,_ZThn12_N7ee654513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee654513fooEv,_ZTv0_n12_N7ee654513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee654513fooEv,_ZThn24_N7ee654513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65451[0]),
+ (VTBL_ENTRY)&_ZN7ee654513barEv,
+ (VTBL_ENTRY)&_ZN7ee654513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654513barEv,_ZTv0_n16_N7ee654513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654513fooEv,_ZTv0_n12_N7ee654513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee65451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee65451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee65451[] = {
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee65451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee65451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee65451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee65451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65451[] = {
+ {&(_ZTV7ee65451[4]), 4,15},
+ {&(_tg__ZTV6dd5451__7ee65451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee65451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee65451[3]), 3,4},
+ {&(_ZTV7ee65451[10]), 10,15},
+ {&(_ZTV7ee65451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee65451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee65451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee65451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee65451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65451[];
+extern VTBL_ENTRY _ZTV7ee65451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65451[];
+static VTBL_ENTRY alt_thunk_names740[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn12_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654513fooEv,_ZTv0_n12_N7ee654513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee654513fooEv,_ZThn24_N7ee654513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654513barEv,_ZTv0_n16_N7ee654513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654513barEv,_ZThn12_N7ee654513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65451 = { "ee65451", // class name
+ bases_ee65451, 4,
+ &(vtc_ee65451[0]), // expected_vtbl_contents
+ &(vtt_ee65451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names740,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75451 : virtual dd5451 {
+ int e;
+ virtual void foo(); // _ZN7ee754513fooEv
+ virtual void bar(); // _ZN7ee754513barEv
+ ~ee75451(); // tgen
+ ee75451(); // tgen
+};
+//SIG(1 ee75451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75451 ::foo(){vfunc_called(this, "_ZN7ee754513fooEv");}
+void ee75451 ::bar(){vfunc_called(this, "_ZN7ee754513barEv");}
+ee75451 ::~ee75451(){ note_dtor("ee75451", this);} // tgen
+ee75451 ::ee75451(){ note_ctor("ee75451", this);} // tgen
+
+static void Test_ee75451()
+{
+ extern Class_Descriptor cd_ee75451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75451, buf);
+ ee75451 *dp, &lv = *(dp=new (buf) ee75451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee75451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee75451");
+ check_base_class_offset(lv, (cc451*)(dd5451*), ABISELECT(32,16), "ee75451");
+ check_base_class_offset(lv, (dd5451*), ABISELECT(16,8), "ee75451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75451.e");
+ test_class_info(&lv, &cd_ee75451);
+ dp->~ee75451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75451(Test_ee75451, "ee75451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75451C1Ev();
+extern void _ZN7ee75451D1Ev();
+Name_Map name_map_ee75451[] = {
+ NSPAIR(_ZN7ee75451C1Ev),
+ NSPAIR(_ZN7ee75451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd5451;
+extern VTBL_ENTRY _ZTI6dd5451[];
+extern VTBL_ENTRY _ZTV6dd5451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5451[];
+static Base_Class bases_ee75451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5451, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75451[];
+extern void _ZN7ee754513fooEv();
+extern void _ZN7ee754513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee754513barEv,_ZTv0_n20_N7ee754513barEv)();
+extern void ABISELECT(_ZThn16_N7ee754513barEv,_ZThn8_N7ee754513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754513barEv,_ZTv0_n16_N7ee754513barEv)();
+extern void ABISELECT(_ZThn32_N7ee754513barEv,_ZThn16_N7ee754513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754513fooEv,_ZTv0_n12_N7ee754513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee754513fooEv,_ZThn28_N7ee754513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75451[0]),
+ (VTBL_ENTRY)&_ZN7ee754513fooEv,
+ (VTBL_ENTRY)&_ZN7ee754513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee754513barEv,_ZTv0_n20_N7ee754513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754513barEv,_ZTv0_n16_N7ee754513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754513fooEv,_ZTv0_n12_N7ee754513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75451[];
+extern void _ZN6dd54513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5451__7ee75451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN6dd54513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv)();
+extern void ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd5451__7ee75451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5451__7ee75451[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee75451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee75451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee75451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee75451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75451[] = {
+ {&(_ZTV7ee75451[5]), 5,22},
+ {&(_ZTV7ee75451[12]), 12,22},
+ {&(_ZTV7ee75451[17]), 17,22},
+ {&(_ZTV7ee75451[21]), 21,22},
+ {&(_tg__ZTV6dd5451__7ee75451[4]), 4,5},
+ {&(_tg__ZTV5cc451__6dd5451__7ee75451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5451__7ee75451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee75451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee75451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee75451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee75451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75451[];
+extern VTBL_ENTRY _ZTV7ee75451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75451[];
+static VTBL_ENTRY alt_thunk_names741[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54513barEv,_ZTv0_n16_N6dd54513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54513barEv,_ZThn8_N6dd54513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754513fooEv,_ZTv0_n12_N7ee754513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee754513fooEv,_ZThn28_N7ee754513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754513barEv,_ZTv0_n16_N7ee754513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754513barEv,_ZThn16_N7ee754513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee754513barEv,_ZTv0_n20_N7ee754513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754513barEv,_ZThn8_N7ee754513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75451 = { "ee75451", // class name
+ bases_ee75451, 4,
+ &(vtc_ee75451[0]), // expected_vtbl_contents
+ &(vtt_ee75451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75451),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names741,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6451 : cc451 {
+ int d;
+ virtual void bar(); // _ZN6dd64513barEv
+ virtual void foo(); // _ZN6dd64513fooEv
+ ~dd6451(); // tgen
+ dd6451(); // tgen
+};
+//SIG(-1 dd6451) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6451 ::bar(){vfunc_called(this, "_ZN6dd64513barEv");}
+void dd6451 ::foo(){vfunc_called(this, "_ZN6dd64513fooEv");}
+dd6451 ::~dd6451(){ note_dtor("dd6451", this);} // tgen
+dd6451 ::dd6451(){ note_ctor("dd6451", this);} // tgen
+
+static void Test_dd6451()
+{
+ extern Class_Descriptor cd_dd6451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6451, buf);
+ dd6451 *dp, &lv = *(dp=new (buf) dd6451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(24,16), "dd6451");
+ check_base_class_offset(lv, (bb51*)(cc451*), 0, "dd6451");
+ check_base_class_offset(lv, (cc451*), 0, "dd6451");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6451.d");
+ test_class_info(&lv, &cd_dd6451);
+ dp->~dd6451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6451(Test_dd6451, "dd6451", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6451C1Ev();
+extern void _ZN6dd6451D1Ev();
+Name_Map name_map_dd6451[] = {
+ NSPAIR(_ZN6dd6451C1Ev),
+ NSPAIR(_ZN6dd6451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd6451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd6451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd6451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd6451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd6451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6451[] = {
+ {&(_ZTV6dd6451[3]), 3,9},
+ {&(_tg__ZTV5cc451__6dd6451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd6451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd6451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd6451[3]), 3,4},
+ {&(_ZTV6dd6451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static VTBL_ENTRY alt_thunk_names742[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6451 = { "dd6451", // class name
+ bases_dd6451, 3,
+ &(vtc_dd6451[0]), // expected_vtbl_contents
+ &(vtt_dd6451[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6451),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names742,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06451 : dd6451 {
+ int e;
+ ~ee06451(); // tgen
+ ee06451(); // tgen
+};
+//SIG(1 ee06451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06451 ::~ee06451(){ note_dtor("ee06451", this);} // tgen
+ee06451 ::ee06451(){ note_ctor("ee06451", this);} // tgen
+
+static void Test_ee06451()
+{
+ extern Class_Descriptor cd_ee06451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06451, buf);
+ ee06451 *dp, &lv = *(dp=new (buf) ee06451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(24,20), "ee06451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), 0, "ee06451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), 0, "ee06451");
+ check_base_class_offset(lv, (dd6451*), 0, "ee06451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06451.e");
+ test_class_info(&lv, &cd_ee06451);
+ dp->~ee06451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06451(Test_ee06451, "ee06451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06451C1Ev();
+extern void _ZN7ee06451D1Ev();
+Name_Map name_map_ee06451[] = {
+ NSPAIR(_ZN7ee06451C1Ev),
+ NSPAIR(_ZN7ee06451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee06451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee06451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee06451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee06451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee06451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee06451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee06451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee06451[] = {
+ {&(_ZTV7ee06451[3]), 3,9},
+ {&(_tg__ZTV6dd6451__7ee06451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee06451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee06451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee06451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee06451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee06451[3]), 3,4},
+ {&(_ZTV7ee06451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06451[];
+extern VTBL_ENTRY _ZTV7ee06451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06451[];
+static VTBL_ENTRY alt_thunk_names743[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06451 = { "ee06451", // class name
+ bases_ee06451, 4,
+ &(vtc_ee06451[0]), // expected_vtbl_contents
+ &(vtt_ee06451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names743,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16451 : virtual dd6451 {
+ int e;
+ ~ee16451(); // tgen
+ ee16451(); // tgen
+};
+//SIG(1 ee16451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16451 ::~ee16451(){ note_dtor("ee16451", this);} // tgen
+ee16451 ::ee16451(){ note_ctor("ee16451", this);} // tgen
+
+static void Test_ee16451()
+{
+ extern Class_Descriptor cd_ee16451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16451, buf);
+ ee16451 *dp, &lv = *(dp=new (buf) ee16451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(40,24), "ee16451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), ABISELECT(16,8), "ee16451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), ABISELECT(16,8), "ee16451");
+ check_base_class_offset(lv, (dd6451*), ABISELECT(16,8), "ee16451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16451.e");
+ test_class_info(&lv, &cd_ee16451);
+ dp->~ee16451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16451(Test_ee16451, "ee16451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16451C1Ev();
+extern void _ZN7ee16451D1Ev();
+Name_Map name_map_ee16451[] = {
+ NSPAIR(_ZN7ee16451C1Ev),
+ NSPAIR(_ZN7ee16451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee16451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16451[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee16451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee16451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee16451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee16451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee16451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee16451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee16451[] = {
+ {&(_ZTV7ee16451[4]), 4,15},
+ {&(_ZTV7ee16451[9]), 9,15},
+ {&(_ZTV7ee16451[14]), 14,15},
+ {&(_tg__ZTV6dd6451__7ee16451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee16451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee16451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee16451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee16451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee16451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16451[];
+extern VTBL_ENTRY _ZTV7ee16451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16451[];
+static VTBL_ENTRY alt_thunk_names744[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16451 = { "ee16451", // class name
+ bases_ee16451, 4,
+ &(vtc_ee16451[0]), // expected_vtbl_contents
+ &(vtt_ee16451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names744,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26451 : dd6451 {
+ int e;
+ virtual void foo(); // _ZN7ee264513fooEv
+ ~ee26451(); // tgen
+ ee26451(); // tgen
+};
+//SIG(1 ee26451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26451 ::foo(){vfunc_called(this, "_ZN7ee264513fooEv");}
+ee26451 ::~ee26451(){ note_dtor("ee26451", this);} // tgen
+ee26451 ::ee26451(){ note_ctor("ee26451", this);} // tgen
+
+static void Test_ee26451()
+{
+ extern Class_Descriptor cd_ee26451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26451, buf);
+ ee26451 *dp, &lv = *(dp=new (buf) ee26451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(24,20), "ee26451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), 0, "ee26451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), 0, "ee26451");
+ check_base_class_offset(lv, (dd6451*), 0, "ee26451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26451.e");
+ test_class_info(&lv, &cd_ee26451);
+ dp->~ee26451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26451(Test_ee26451, "ee26451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26451C1Ev();
+extern void _ZN7ee26451D1Ev();
+Name_Map name_map_ee26451[] = {
+ NSPAIR(_ZN7ee26451C1Ev),
+ NSPAIR(_ZN7ee26451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee26451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN7ee264513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee264513fooEv,_ZTv0_n12_N7ee264513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee264513fooEv,_ZThn20_N7ee264513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN7ee264513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee264513fooEv,_ZTv0_n12_N7ee264513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee26451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee26451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee26451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee26451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee26451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee26451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee26451[] = {
+ {&(_ZTV7ee26451[3]), 3,9},
+ {&(_tg__ZTV6dd6451__7ee26451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee26451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee26451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee26451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee26451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee26451[3]), 3,4},
+ {&(_ZTV7ee26451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26451[];
+extern VTBL_ENTRY _ZTV7ee26451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26451[];
+static VTBL_ENTRY alt_thunk_names745[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee264513fooEv,_ZTv0_n12_N7ee264513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee264513fooEv,_ZThn20_N7ee264513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26451 = { "ee26451", // class name
+ bases_ee26451, 4,
+ &(vtc_ee26451[0]), // expected_vtbl_contents
+ &(vtt_ee26451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names745,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36451 : virtual dd6451 {
+ int e;
+ virtual void foo(); // _ZN7ee364513fooEv
+ ~ee36451(); // tgen
+ ee36451(); // tgen
+};
+//SIG(1 ee36451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36451 ::foo(){vfunc_called(this, "_ZN7ee364513fooEv");}
+ee36451 ::~ee36451(){ note_dtor("ee36451", this);} // tgen
+ee36451 ::ee36451(){ note_ctor("ee36451", this);} // tgen
+
+static void Test_ee36451()
+{
+ extern Class_Descriptor cd_ee36451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36451, buf);
+ ee36451 *dp, &lv = *(dp=new (buf) ee36451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(40,24), "ee36451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), ABISELECT(16,8), "ee36451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), ABISELECT(16,8), "ee36451");
+ check_base_class_offset(lv, (dd6451*), ABISELECT(16,8), "ee36451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36451.e");
+ test_class_info(&lv, &cd_ee36451);
+ dp->~ee36451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36451(Test_ee36451, "ee36451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36451C1Ev();
+extern void _ZN7ee36451D1Ev();
+Name_Map name_map_ee36451[] = {
+ NSPAIR(_ZN7ee36451C1Ev),
+ NSPAIR(_ZN7ee36451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee36451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36451[];
+extern void _ZN7ee364513fooEv();
+extern void _ZN6dd64513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee364513fooEv,_ZTv0_n20_N7ee364513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364513fooEv,_ZThn8_N7ee364513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee364513fooEv,_ZTv0_n12_N7ee364513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee364513fooEv,_ZThn24_N7ee364513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36451[0]),
+ (VTBL_ENTRY)&_ZN7ee364513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee364513fooEv,_ZTv0_n20_N7ee364513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364513fooEv,_ZTv0_n12_N7ee364513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee36451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee36451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee36451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee36451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee36451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee36451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee36451[] = {
+ {&(_ZTV7ee36451[4]), 4,16},
+ {&(_ZTV7ee36451[10]), 10,16},
+ {&(_ZTV7ee36451[15]), 15,16},
+ {&(_tg__ZTV6dd6451__7ee36451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee36451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee36451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee36451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee36451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee36451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36451[];
+extern VTBL_ENTRY _ZTV7ee36451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36451[];
+static VTBL_ENTRY alt_thunk_names746[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364513fooEv,_ZTv0_n12_N7ee364513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee364513fooEv,_ZThn24_N7ee364513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee364513fooEv,_ZTv0_n20_N7ee364513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364513fooEv,_ZThn8_N7ee364513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36451 = { "ee36451", // class name
+ bases_ee36451, 4,
+ &(vtc_ee36451[0]), // expected_vtbl_contents
+ &(vtt_ee36451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36451),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names746,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46451 : dd6451 {
+ int e;
+ virtual void bar(); // _ZN7ee464513barEv
+ ~ee46451(); // tgen
+ ee46451(); // tgen
+};
+//SIG(1 ee46451) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46451 ::bar(){vfunc_called(this, "_ZN7ee464513barEv");}
+ee46451 ::~ee46451(){ note_dtor("ee46451", this);} // tgen
+ee46451 ::ee46451(){ note_ctor("ee46451", this);} // tgen
+
+static void Test_ee46451()
+{
+ extern Class_Descriptor cd_ee46451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46451, buf);
+ ee46451 *dp, &lv = *(dp=new (buf) ee46451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(24,20), "ee46451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), 0, "ee46451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), 0, "ee46451");
+ check_base_class_offset(lv, (dd6451*), 0, "ee46451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46451.e");
+ test_class_info(&lv, &cd_ee46451);
+ dp->~ee46451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46451(Test_ee46451, "ee46451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46451C1Ev();
+extern void _ZN7ee46451D1Ev();
+Name_Map name_map_ee46451[] = {
+ NSPAIR(_ZN7ee46451C1Ev),
+ NSPAIR(_ZN7ee46451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee46451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46451[];
+extern void _ZN7ee464513barEv();
+extern void _ZN6dd64513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46451[0]),
+ (VTBL_ENTRY)&_ZN7ee464513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee46451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee46451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee46451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee46451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee46451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee46451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee46451[] = {
+ {&(_ZTV7ee46451[3]), 3,9},
+ {&(_tg__ZTV6dd6451__7ee46451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee46451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee46451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee46451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee46451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee46451[3]), 3,4},
+ {&(_ZTV7ee46451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46451[];
+extern VTBL_ENTRY _ZTV7ee46451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46451[];
+static VTBL_ENTRY alt_thunk_names747[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46451 = { "ee46451", // class name
+ bases_ee46451, 4,
+ &(vtc_ee46451[0]), // expected_vtbl_contents
+ &(vtt_ee46451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names747,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56451 : virtual dd6451 {
+ int e;
+ virtual void bar(); // _ZN7ee564513barEv
+ ~ee56451(); // tgen
+ ee56451(); // tgen
+};
+//SIG(1 ee56451) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56451 ::bar(){vfunc_called(this, "_ZN7ee564513barEv");}
+ee56451 ::~ee56451(){ note_dtor("ee56451", this);} // tgen
+ee56451 ::ee56451(){ note_ctor("ee56451", this);} // tgen
+
+static void Test_ee56451()
+{
+ extern Class_Descriptor cd_ee56451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56451, buf);
+ ee56451 *dp, &lv = *(dp=new (buf) ee56451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(40,24), "ee56451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), ABISELECT(16,8), "ee56451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), ABISELECT(16,8), "ee56451");
+ check_base_class_offset(lv, (dd6451*), ABISELECT(16,8), "ee56451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56451.e");
+ test_class_info(&lv, &cd_ee56451);
+ dp->~ee56451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56451(Test_ee56451, "ee56451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56451C1Ev();
+extern void _ZN7ee56451D1Ev();
+Name_Map name_map_ee56451[] = {
+ NSPAIR(_ZN7ee56451C1Ev),
+ NSPAIR(_ZN7ee56451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee56451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56451[];
+extern void _ZN7ee564513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564513barEv,_ZTv0_n16_N7ee564513barEv)();
+extern void ABISELECT(_ZThn16_N7ee564513barEv,_ZThn8_N7ee564513barEv)() __attribute__((weak));
+extern void _ZN6dd64513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56451[0]),
+ (VTBL_ENTRY)&_ZN7ee564513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564513barEv,_ZTv0_n16_N7ee564513barEv),
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee56451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee56451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee56451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee56451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee56451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee56451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee56451[] = {
+ {&(_ZTV7ee56451[4]), 4,16},
+ {&(_ZTV7ee56451[10]), 10,16},
+ {&(_ZTV7ee56451[15]), 15,16},
+ {&(_tg__ZTV6dd6451__7ee56451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee56451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee56451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee56451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee56451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee56451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56451[];
+extern VTBL_ENTRY _ZTV7ee56451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56451[];
+static VTBL_ENTRY alt_thunk_names748[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564513barEv,_ZTv0_n16_N7ee564513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564513barEv,_ZThn8_N7ee564513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56451 = { "ee56451", // class name
+ bases_ee56451, 4,
+ &(vtc_ee56451[0]), // expected_vtbl_contents
+ &(vtt_ee56451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56451),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names748,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66451 : dd6451 {
+ int e;
+ virtual void foo(); // _ZN7ee664513fooEv
+ virtual void bar(); // _ZN7ee664513barEv
+ ~ee66451(); // tgen
+ ee66451(); // tgen
+};
+//SIG(1 ee66451) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66451 ::foo(){vfunc_called(this, "_ZN7ee664513fooEv");}
+void ee66451 ::bar(){vfunc_called(this, "_ZN7ee664513barEv");}
+ee66451 ::~ee66451(){ note_dtor("ee66451", this);} // tgen
+ee66451 ::ee66451(){ note_ctor("ee66451", this);} // tgen
+
+static void Test_ee66451()
+{
+ extern Class_Descriptor cd_ee66451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66451, buf);
+ ee66451 *dp, &lv = *(dp=new (buf) ee66451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(24,20), "ee66451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), 0, "ee66451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), 0, "ee66451");
+ check_base_class_offset(lv, (dd6451*), 0, "ee66451");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66451.e");
+ test_class_info(&lv, &cd_ee66451);
+ dp->~ee66451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66451(Test_ee66451, "ee66451", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66451C1Ev();
+extern void _ZN7ee66451D1Ev();
+Name_Map name_map_ee66451[] = {
+ NSPAIR(_ZN7ee66451C1Ev),
+ NSPAIR(_ZN7ee66451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee66451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66451[];
+extern void _ZN7ee664513barEv();
+extern void _ZN7ee664513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee664513fooEv,_ZTv0_n12_N7ee664513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee664513fooEv,_ZThn20_N7ee664513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66451[0]),
+ (VTBL_ENTRY)&_ZN7ee664513barEv,
+ (VTBL_ENTRY)&_ZN7ee664513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee664513fooEv,_ZTv0_n12_N7ee664513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee66451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee66451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee66451[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee66451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee66451[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee66451[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee66451[] = {
+ {&(_ZTV7ee66451[3]), 3,9},
+ {&(_tg__ZTV6dd6451__7ee66451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee66451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee66451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee66451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee66451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee66451[3]), 3,4},
+ {&(_ZTV7ee66451[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66451[];
+extern VTBL_ENTRY _ZTV7ee66451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66451[];
+static VTBL_ENTRY alt_thunk_names749[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn20_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee664513fooEv,_ZTv0_n12_N7ee664513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee664513fooEv,_ZThn20_N7ee664513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66451 = { "ee66451", // class name
+ bases_ee66451, 4,
+ &(vtc_ee66451[0]), // expected_vtbl_contents
+ &(vtt_ee66451[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66451),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66451),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names749,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76451 : virtual dd6451 {
+ int e;
+ virtual void foo(); // _ZN7ee764513fooEv
+ virtual void bar(); // _ZN7ee764513barEv
+ ~ee76451(); // tgen
+ ee76451(); // tgen
+};
+//SIG(1 ee76451) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76451 ::foo(){vfunc_called(this, "_ZN7ee764513fooEv");}
+void ee76451 ::bar(){vfunc_called(this, "_ZN7ee764513barEv");}
+ee76451 ::~ee76451(){ note_dtor("ee76451", this);} // tgen
+ee76451 ::ee76451(){ note_ctor("ee76451", this);} // tgen
+
+static void Test_ee76451()
+{
+ extern Class_Descriptor cd_ee76451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76451, buf);
+ ee76451 *dp, &lv = *(dp=new (buf) ee76451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*)(dd6451*), ABISELECT(40,24), "ee76451");
+ check_base_class_offset(lv, (bb51*)(cc451*)(dd6451*), ABISELECT(16,8), "ee76451");
+ check_base_class_offset(lv, (cc451*)(dd6451*), ABISELECT(16,8), "ee76451");
+ check_base_class_offset(lv, (dd6451*), ABISELECT(16,8), "ee76451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76451.e");
+ test_class_info(&lv, &cd_ee76451);
+ dp->~ee76451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76451(Test_ee76451, "ee76451", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76451C1Ev();
+extern void _ZN7ee76451D1Ev();
+Name_Map name_map_ee76451[] = {
+ NSPAIR(_ZN7ee76451C1Ev),
+ NSPAIR(_ZN7ee76451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd6451;
+extern VTBL_ENTRY _ZTI6dd6451[];
+extern VTBL_ENTRY _ZTV6dd6451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6451[];
+static Base_Class bases_ee76451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6451, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76451[];
+extern void _ZN7ee764513fooEv();
+extern void _ZN7ee764513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee764513barEv,_ZTv0_n16_N7ee764513barEv)();
+extern void ABISELECT(_ZThn16_N7ee764513barEv,_ZThn8_N7ee764513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee764513fooEv,_ZTv0_n20_N7ee764513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764513fooEv,_ZThn8_N7ee764513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee764513fooEv,_ZTv0_n12_N7ee764513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee764513fooEv,_ZThn24_N7ee764513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76451[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76451[0]),
+ (VTBL_ENTRY)&_ZN7ee764513fooEv,
+ (VTBL_ENTRY)&_ZN7ee764513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764513barEv,_ZTv0_n16_N7ee764513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee764513fooEv,_ZTv0_n20_N7ee764513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764513fooEv,_ZTv0_n12_N7ee764513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76451[];
+extern void _ZN6dd64513barEv();
+extern void _ZN6dd64513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6451__7ee76451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&_ZN6dd64513barEv,
+ (VTBL_ENTRY)&_ZN6dd64513fooEv,
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc4516dd6451__7ee76451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc4516dd6451__7ee76451[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc4516dd6451__7ee76451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc4516dd6451__7ee76451[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6451__7ee76451[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv),
+};
+static VTT_ENTRY vtt_ee76451[] = {
+ {&(_ZTV7ee76451[4]), 4,17},
+ {&(_ZTV7ee76451[11]), 11,17},
+ {&(_ZTV7ee76451[16]), 16,17},
+ {&(_tg__ZTV6dd6451__7ee76451[3]), 3,5},
+ {&(_tg__ZTV5cc4516dd6451__7ee76451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc4516dd6451__7ee76451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc4516dd6451__7ee76451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc4516dd6451__7ee76451[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6451__7ee76451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76451[];
+extern VTBL_ENTRY _ZTV7ee76451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76451[];
+static VTBL_ENTRY alt_thunk_names750[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64513fooEv,_ZTv0_n12_N6dd64513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64513fooEv,_ZThn16_N6dd64513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764513fooEv,_ZTv0_n12_N7ee764513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee764513fooEv,_ZThn24_N7ee764513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee764513fooEv,_ZTv0_n20_N7ee764513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764513fooEv,_ZThn8_N7ee764513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764513barEv,_ZTv0_n16_N7ee764513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764513barEv,_ZThn8_N7ee764513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76451 = { "ee76451", // class name
+ bases_ee76451, 4,
+ &(vtc_ee76451[0]), // expected_vtbl_contents
+ &(vtt_ee76451[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76451),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76451),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names750,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7451 : virtual cc451 {
+ int d;
+ virtual void bar(); // _ZN6dd74513barEv
+ virtual void foo(); // _ZN6dd74513fooEv
+ ~dd7451(); // tgen
+ dd7451(); // tgen
+};
+//SIG(-1 dd7451) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7451 ::bar(){vfunc_called(this, "_ZN6dd74513barEv");}
+void dd7451 ::foo(){vfunc_called(this, "_ZN6dd74513fooEv");}
+dd7451 ::~dd7451(){ note_dtor("dd7451", this);} // tgen
+dd7451 ::dd7451(){ note_ctor("dd7451", this);} // tgen
+
+static void Test_dd7451()
+{
+ extern Class_Descriptor cd_dd7451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7451, buf);
+ dd7451 *dp, &lv = *(dp=new (buf) dd7451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,20), "dd7451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,8), "dd7451");
+ check_base_class_offset(lv, (cc451*), ABISELECT(16,8), "dd7451");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7451.d");
+ test_class_info(&lv, &cd_dd7451);
+ dp->~dd7451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7451(Test_dd7451, "dd7451", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7451C1Ev();
+extern void _ZN6dd7451D1Ev();
+Name_Map name_map_dd7451[] = {
+ NSPAIR(_ZN6dd7451C1Ev),
+ NSPAIR(_ZN6dd7451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+static Base_Class bases_dd7451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__6dd7451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__6dd7451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__6dd7451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7451[] = {
+ {&(_ZTV6dd7451[4]), 4,15},
+ {&(_ZTV6dd7451[10]), 10,15},
+ {&(_ZTV6dd7451[14]), 14,15},
+ {&(_tg__ZTV5cc451__6dd7451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__6dd7451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__6dd7451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__6dd7451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static VTBL_ENTRY alt_thunk_names751[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7451 = { "dd7451", // class name
+ bases_dd7451, 3,
+ &(vtc_dd7451[0]), // expected_vtbl_contents
+ &(vtt_dd7451[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7451),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names751,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07451 : dd7451 {
+ int e;
+ ~ee07451(); // tgen
+ ee07451(); // tgen
+};
+//SIG(1 ee07451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07451 ::~ee07451(){ note_dtor("ee07451", this);} // tgen
+ee07451 ::ee07451(){ note_ctor("ee07451", this);} // tgen
+
+static void Test_ee07451()
+{
+ extern Class_Descriptor cd_ee07451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07451, buf);
+ ee07451 *dp, &lv = *(dp=new (buf) ee07451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee07451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee07451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(16,12), "ee07451");
+ check_base_class_offset(lv, (dd7451*), 0, "ee07451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07451.e");
+ test_class_info(&lv, &cd_ee07451);
+ dp->~ee07451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07451(Test_ee07451, "ee07451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07451C1Ev();
+extern void _ZN7ee07451D1Ev();
+Name_Map name_map_ee07451[] = {
+ NSPAIR(_ZN7ee07451C1Ev),
+ NSPAIR(_ZN7ee07451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee07451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee07451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee07451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee07451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee07451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee07451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee07451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee07451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07451[] = {
+ {&(_ZTV7ee07451[4]), 4,15},
+ {&(_tg__ZTV6dd7451__7ee07451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee07451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee07451[3]), 3,4},
+ {&(_ZTV7ee07451[10]), 10,15},
+ {&(_ZTV7ee07451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee07451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee07451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee07451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee07451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07451[];
+extern VTBL_ENTRY _ZTV7ee07451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07451[];
+static VTBL_ENTRY alt_thunk_names752[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07451 = { "ee07451", // class name
+ bases_ee07451, 4,
+ &(vtc_ee07451[0]), // expected_vtbl_contents
+ &(vtt_ee07451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names752,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17451 : virtual dd7451 {
+ int e;
+ ~ee17451(); // tgen
+ ee17451(); // tgen
+};
+//SIG(1 ee17451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17451 ::~ee17451(){ note_dtor("ee17451", this);} // tgen
+ee17451 ::ee17451(){ note_ctor("ee17451", this);} // tgen
+
+static void Test_ee17451()
+{
+ extern Class_Descriptor cd_ee17451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17451, buf);
+ ee17451 *dp, &lv = *(dp=new (buf) ee17451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee17451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee17451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(32,16), "ee17451");
+ check_base_class_offset(lv, (dd7451*), ABISELECT(16,8), "ee17451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17451.e");
+ test_class_info(&lv, &cd_ee17451);
+ dp->~ee17451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17451(Test_ee17451, "ee17451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17451C1Ev();
+extern void _ZN7ee17451D1Ev();
+Name_Map name_map_ee17451[] = {
+ NSPAIR(_ZN7ee17451C1Ev),
+ NSPAIR(_ZN7ee17451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee17451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17451[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee17451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee17451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee17451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee17451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee17451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee17451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee17451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17451[] = {
+ {&(_ZTV7ee17451[5]), 5,22},
+ {&(_ZTV7ee17451[11]), 11,22},
+ {&(_ZTV7ee17451[17]), 17,22},
+ {&(_ZTV7ee17451[21]), 21,22},
+ {&(_tg__ZTV6dd7451__7ee17451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee17451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee17451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee17451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee17451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee17451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee17451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17451[];
+extern VTBL_ENTRY _ZTV7ee17451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17451[];
+static VTBL_ENTRY alt_thunk_names753[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17451 = { "ee17451", // class name
+ bases_ee17451, 4,
+ &(vtc_ee17451[0]), // expected_vtbl_contents
+ &(vtt_ee17451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17451),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names753,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27451 : dd7451 {
+ int e;
+ virtual void foo(); // _ZN7ee274513fooEv
+ ~ee27451(); // tgen
+ ee27451(); // tgen
+};
+//SIG(1 ee27451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27451 ::foo(){vfunc_called(this, "_ZN7ee274513fooEv");}
+ee27451 ::~ee27451(){ note_dtor("ee27451", this);} // tgen
+ee27451 ::ee27451(){ note_ctor("ee27451", this);} // tgen
+
+static void Test_ee27451()
+{
+ extern Class_Descriptor cd_ee27451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27451, buf);
+ ee27451 *dp, &lv = *(dp=new (buf) ee27451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee27451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee27451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(16,12), "ee27451");
+ check_base_class_offset(lv, (dd7451*), 0, "ee27451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27451.e");
+ test_class_info(&lv, &cd_ee27451);
+ dp->~ee27451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27451(Test_ee27451, "ee27451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27451C1Ev();
+extern void _ZN7ee27451D1Ev();
+Name_Map name_map_ee27451[] = {
+ NSPAIR(_ZN7ee27451C1Ev),
+ NSPAIR(_ZN7ee27451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee27451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN7ee274513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee274513fooEv,_ZTv0_n12_N7ee274513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee274513fooEv,_ZThn24_N7ee274513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN7ee274513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274513fooEv,_ZTv0_n12_N7ee274513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee27451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee27451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee27451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee27451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee27451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee27451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee27451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27451[] = {
+ {&(_ZTV7ee27451[4]), 4,15},
+ {&(_tg__ZTV6dd7451__7ee27451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee27451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee27451[3]), 3,4},
+ {&(_ZTV7ee27451[10]), 10,15},
+ {&(_ZTV7ee27451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee27451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee27451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee27451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee27451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27451[];
+extern VTBL_ENTRY _ZTV7ee27451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27451[];
+static VTBL_ENTRY alt_thunk_names754[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274513fooEv,_ZTv0_n12_N7ee274513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee274513fooEv,_ZThn24_N7ee274513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27451 = { "ee27451", // class name
+ bases_ee27451, 4,
+ &(vtc_ee27451[0]), // expected_vtbl_contents
+ &(vtt_ee27451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names754,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37451 : virtual dd7451 {
+ int e;
+ virtual void foo(); // _ZN7ee374513fooEv
+ ~ee37451(); // tgen
+ ee37451(); // tgen
+};
+//SIG(1 ee37451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37451 ::foo(){vfunc_called(this, "_ZN7ee374513fooEv");}
+ee37451 ::~ee37451(){ note_dtor("ee37451", this);} // tgen
+ee37451 ::ee37451(){ note_ctor("ee37451", this);} // tgen
+
+static void Test_ee37451()
+{
+ extern Class_Descriptor cd_ee37451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37451, buf);
+ ee37451 *dp, &lv = *(dp=new (buf) ee37451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee37451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee37451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(32,16), "ee37451");
+ check_base_class_offset(lv, (dd7451*), ABISELECT(16,8), "ee37451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37451.e");
+ test_class_info(&lv, &cd_ee37451);
+ dp->~ee37451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37451(Test_ee37451, "ee37451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37451C1Ev();
+extern void _ZN7ee37451D1Ev();
+Name_Map name_map_ee37451[] = {
+ NSPAIR(_ZN7ee37451C1Ev),
+ NSPAIR(_ZN7ee37451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee37451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37451[];
+extern void _ZN7ee374513fooEv();
+extern void _ZN6dd74513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee374513fooEv,_ZTv0_n24_N7ee374513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374513fooEv,_ZThn8_N7ee374513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374513fooEv,_ZTv0_n12_N7ee374513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee374513fooEv,_ZThn28_N7ee374513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37451[0]),
+ (VTBL_ENTRY)&_ZN7ee374513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee374513fooEv,_ZTv0_n24_N7ee374513fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374513fooEv,_ZTv0_n12_N7ee374513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee37451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee37451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee37451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee37451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee37451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee37451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee37451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37451[] = {
+ {&(_ZTV7ee37451[5]), 5,23},
+ {&(_ZTV7ee37451[12]), 12,23},
+ {&(_ZTV7ee37451[18]), 18,23},
+ {&(_ZTV7ee37451[22]), 22,23},
+ {&(_tg__ZTV6dd7451__7ee37451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee37451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee37451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee37451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee37451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee37451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee37451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37451[];
+extern VTBL_ENTRY _ZTV7ee37451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37451[];
+static VTBL_ENTRY alt_thunk_names755[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374513fooEv,_ZTv0_n12_N7ee374513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee374513fooEv,_ZThn28_N7ee374513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee374513fooEv,_ZTv0_n24_N7ee374513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374513fooEv,_ZThn8_N7ee374513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37451 = { "ee37451", // class name
+ bases_ee37451, 4,
+ &(vtc_ee37451[0]), // expected_vtbl_contents
+ &(vtt_ee37451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37451),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names755,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47451 : dd7451 {
+ int e;
+ virtual void bar(); // _ZN7ee474513barEv
+ ~ee47451(); // tgen
+ ee47451(); // tgen
+};
+//SIG(1 ee47451) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47451 ::bar(){vfunc_called(this, "_ZN7ee474513barEv");}
+ee47451 ::~ee47451(){ note_dtor("ee47451", this);} // tgen
+ee47451 ::ee47451(){ note_ctor("ee47451", this);} // tgen
+
+static void Test_ee47451()
+{
+ extern Class_Descriptor cd_ee47451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47451, buf);
+ ee47451 *dp, &lv = *(dp=new (buf) ee47451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee47451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee47451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(16,12), "ee47451");
+ check_base_class_offset(lv, (dd7451*), 0, "ee47451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47451.e");
+ test_class_info(&lv, &cd_ee47451);
+ dp->~ee47451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47451(Test_ee47451, "ee47451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47451C1Ev();
+extern void _ZN7ee47451D1Ev();
+Name_Map name_map_ee47451[] = {
+ NSPAIR(_ZN7ee47451C1Ev),
+ NSPAIR(_ZN7ee47451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee47451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47451[];
+extern void _ZN7ee474513barEv();
+extern void _ZN6dd74513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee474513barEv,_ZTv0_n16_N7ee474513barEv)();
+extern void ABISELECT(_ZThn16_N7ee474513barEv,_ZThn12_N7ee474513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47451[0]),
+ (VTBL_ENTRY)&_ZN7ee474513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474513barEv,_ZTv0_n16_N7ee474513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee47451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee47451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee47451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee47451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee47451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee47451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee47451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47451[] = {
+ {&(_ZTV7ee47451[4]), 4,15},
+ {&(_tg__ZTV6dd7451__7ee47451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee47451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee47451[3]), 3,4},
+ {&(_ZTV7ee47451[10]), 10,15},
+ {&(_ZTV7ee47451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee47451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee47451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee47451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee47451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47451[];
+extern VTBL_ENTRY _ZTV7ee47451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47451[];
+static VTBL_ENTRY alt_thunk_names756[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474513barEv,_ZTv0_n16_N7ee474513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474513barEv,_ZThn12_N7ee474513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47451 = { "ee47451", // class name
+ bases_ee47451, 4,
+ &(vtc_ee47451[0]), // expected_vtbl_contents
+ &(vtt_ee47451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names756,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57451 : virtual dd7451 {
+ int e;
+ virtual void bar(); // _ZN7ee574513barEv
+ ~ee57451(); // tgen
+ ee57451(); // tgen
+};
+//SIG(1 ee57451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57451 ::bar(){vfunc_called(this, "_ZN7ee574513barEv");}
+ee57451 ::~ee57451(){ note_dtor("ee57451", this);} // tgen
+ee57451 ::ee57451(){ note_ctor("ee57451", this);} // tgen
+
+static void Test_ee57451()
+{
+ extern Class_Descriptor cd_ee57451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57451, buf);
+ ee57451 *dp, &lv = *(dp=new (buf) ee57451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee57451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee57451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(32,16), "ee57451");
+ check_base_class_offset(lv, (dd7451*), ABISELECT(16,8), "ee57451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57451.e");
+ test_class_info(&lv, &cd_ee57451);
+ dp->~ee57451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57451(Test_ee57451, "ee57451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57451C1Ev();
+extern void _ZN7ee57451D1Ev();
+Name_Map name_map_ee57451[] = {
+ NSPAIR(_ZN7ee57451C1Ev),
+ NSPAIR(_ZN7ee57451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee57451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57451[];
+extern void _ZN7ee574513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee574513barEv,_ZTv0_n20_N7ee574513barEv)();
+extern void ABISELECT(_ZThn16_N7ee574513barEv,_ZThn8_N7ee574513barEv)() __attribute__((weak));
+extern void _ZN6dd74513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574513barEv,_ZTv0_n16_N7ee574513barEv)();
+extern void ABISELECT(_ZThn32_N7ee574513barEv,_ZThn16_N7ee574513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57451[0]),
+ (VTBL_ENTRY)&_ZN7ee574513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee574513barEv,_ZTv0_n20_N7ee574513barEv),
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574513barEv,_ZTv0_n16_N7ee574513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee57451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee57451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee57451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee57451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee57451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee57451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee57451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57451[] = {
+ {&(_ZTV7ee57451[5]), 5,23},
+ {&(_ZTV7ee57451[12]), 12,23},
+ {&(_ZTV7ee57451[18]), 18,23},
+ {&(_ZTV7ee57451[22]), 22,23},
+ {&(_tg__ZTV6dd7451__7ee57451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee57451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee57451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee57451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee57451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee57451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee57451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57451[];
+extern VTBL_ENTRY _ZTV7ee57451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57451[];
+static VTBL_ENTRY alt_thunk_names757[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574513barEv,_ZTv0_n16_N7ee574513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574513barEv,_ZThn16_N7ee574513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee574513barEv,_ZTv0_n20_N7ee574513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574513barEv,_ZThn8_N7ee574513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57451 = { "ee57451", // class name
+ bases_ee57451, 4,
+ &(vtc_ee57451[0]), // expected_vtbl_contents
+ &(vtt_ee57451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57451),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names757,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67451 : dd7451 {
+ int e;
+ virtual void foo(); // _ZN7ee674513fooEv
+ virtual void bar(); // _ZN7ee674513barEv
+ ~ee67451(); // tgen
+ ee67451(); // tgen
+};
+//SIG(1 ee67451) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67451 ::foo(){vfunc_called(this, "_ZN7ee674513fooEv");}
+void ee67451 ::bar(){vfunc_called(this, "_ZN7ee674513barEv");}
+ee67451 ::~ee67451(){ note_dtor("ee67451", this);} // tgen
+ee67451 ::ee67451(){ note_ctor("ee67451", this);} // tgen
+
+static void Test_ee67451()
+{
+ extern Class_Descriptor cd_ee67451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67451, buf);
+ ee67451 *dp, &lv = *(dp=new (buf) ee67451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(32,24), "ee67451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(16,12), "ee67451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(16,12), "ee67451");
+ check_base_class_offset(lv, (dd7451*), 0, "ee67451");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67451.e");
+ test_class_info(&lv, &cd_ee67451);
+ dp->~ee67451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67451(Test_ee67451, "ee67451", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67451C1Ev();
+extern void _ZN7ee67451D1Ev();
+Name_Map name_map_ee67451[] = {
+ NSPAIR(_ZN7ee67451C1Ev),
+ NSPAIR(_ZN7ee67451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee67451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67451[];
+extern void _ZN7ee674513barEv();
+extern void _ZN7ee674513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee674513barEv,_ZTv0_n16_N7ee674513barEv)();
+extern void ABISELECT(_ZThn16_N7ee674513barEv,_ZThn12_N7ee674513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee674513fooEv,_ZTv0_n12_N7ee674513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee674513fooEv,_ZThn24_N7ee674513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67451[0]),
+ (VTBL_ENTRY)&_ZN7ee674513barEv,
+ (VTBL_ENTRY)&_ZN7ee674513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674513barEv,_ZTv0_n16_N7ee674513barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674513fooEv,_ZTv0_n12_N7ee674513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee67451[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee67451[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee67451[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee67451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee67451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee67451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee67451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67451[] = {
+ {&(_ZTV7ee67451[4]), 4,15},
+ {&(_tg__ZTV6dd7451__7ee67451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee67451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee67451[3]), 3,4},
+ {&(_ZTV7ee67451[10]), 10,15},
+ {&(_ZTV7ee67451[14]), 14,15},
+ {&(_tg__ZTV5cc451__7ee67451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee67451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee67451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee67451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67451[];
+extern VTBL_ENTRY _ZTV7ee67451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67451[];
+static VTBL_ENTRY alt_thunk_names758[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn24_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn12_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674513fooEv,_ZTv0_n12_N7ee674513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee674513fooEv,_ZThn24_N7ee674513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674513barEv,_ZTv0_n16_N7ee674513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674513barEv,_ZThn12_N7ee674513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67451 = { "ee67451", // class name
+ bases_ee67451, 4,
+ &(vtc_ee67451[0]), // expected_vtbl_contents
+ &(vtt_ee67451[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67451),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67451),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67451),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names758,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77451 : virtual dd7451 {
+ int e;
+ virtual void foo(); // _ZN7ee774513fooEv
+ virtual void bar(); // _ZN7ee774513barEv
+ ~ee77451(); // tgen
+ ee77451(); // tgen
+};
+//SIG(1 ee77451) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77451 ::foo(){vfunc_called(this, "_ZN7ee774513fooEv");}
+void ee77451 ::bar(){vfunc_called(this, "_ZN7ee774513barEv");}
+ee77451 ::~ee77451(){ note_dtor("ee77451", this);} // tgen
+ee77451 ::ee77451(){ note_ctor("ee77451", this);} // tgen
+
+static void Test_ee77451()
+{
+ extern Class_Descriptor cd_ee77451;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77451, buf);
+ ee77451 *dp, &lv = *(dp=new (buf) ee77451());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77451)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77451)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc451*), ABISELECT(48,28), "ee77451");
+ check_base_class_offset(lv, (bb51*)(cc451*), ABISELECT(32,16), "ee77451");
+ check_base_class_offset(lv, (cc451*)(dd7451*), ABISELECT(32,16), "ee77451");
+ check_base_class_offset(lv, (dd7451*), ABISELECT(16,8), "ee77451");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77451.e");
+ test_class_info(&lv, &cd_ee77451);
+ dp->~ee77451();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77451(Test_ee77451, "ee77451", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77451C1Ev();
+extern void _ZN7ee77451D1Ev();
+Name_Map name_map_ee77451[] = {
+ NSPAIR(_ZN7ee77451C1Ev),
+ NSPAIR(_ZN7ee77451D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc451;
+extern VTBL_ENTRY _ZTI5cc451[];
+extern VTBL_ENTRY _ZTV5cc451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc451[];
+extern Class_Descriptor cd_dd7451;
+extern VTBL_ENTRY _ZTI6dd7451[];
+extern VTBL_ENTRY _ZTV6dd7451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7451[];
+static Base_Class bases_ee77451[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc451, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7451, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77451[];
+extern void _ZN7ee774513fooEv();
+extern void _ZN7ee774513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee774513barEv,_ZTv0_n20_N7ee774513barEv)();
+extern void ABISELECT(_ZThn16_N7ee774513barEv,_ZThn8_N7ee774513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee774513fooEv,_ZTv0_n24_N7ee774513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774513fooEv,_ZThn8_N7ee774513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774513barEv,_ZTv0_n16_N7ee774513barEv)();
+extern void ABISELECT(_ZThn32_N7ee774513barEv,_ZThn16_N7ee774513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774513fooEv,_ZTv0_n12_N7ee774513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee774513fooEv,_ZThn28_N7ee774513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77451[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77451[0]),
+ (VTBL_ENTRY)&_ZN7ee774513fooEv,
+ (VTBL_ENTRY)&_ZN7ee774513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774513barEv,_ZTv0_n20_N7ee774513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee774513fooEv,_ZTv0_n24_N7ee774513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774513barEv,_ZTv0_n16_N7ee774513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774513fooEv,_ZTv0_n12_N7ee774513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77451[];
+extern void _ZN6dd74513barEv();
+extern void _ZN6dd74513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7451__7ee77451[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&_ZN6dd74513barEv,
+ (VTBL_ENTRY)&_ZN6dd74513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv)();
+extern void ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc451__6dd7451__7ee77451[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7451__7ee77451[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7451[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv),
+};
+extern void _ZN5cc4513barEv();
+static VTBL_ENTRY _tg__ZTV5cc451__7ee77451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN5cc4513barEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc451__7ee77451[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc451__7ee77451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc451__7ee77451[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc451[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77451[] = {
+ {&(_ZTV7ee77451[5]), 5,24},
+ {&(_ZTV7ee77451[13]), 13,24},
+ {&(_ZTV7ee77451[19]), 19,24},
+ {&(_ZTV7ee77451[23]), 23,24},
+ {&(_tg__ZTV6dd7451__7ee77451[4]), 4,6},
+ {&(_tg__ZTV5cc451__6dd7451__7ee77451[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7451__7ee77451[3]), 3,4},
+ {&(_tg__ZTV5cc451__7ee77451[3]), 3,4},
+ {&(_tg__ZTV4bb515cc451__7ee77451[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc451__7ee77451[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc451__7ee77451[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77451[];
+extern VTBL_ENTRY _ZTV7ee77451[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77451[];
+static VTBL_ENTRY alt_thunk_names759[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74513fooEv,_ZTv0_n12_N6dd74513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74513fooEv,_ZThn20_N6dd74513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74513barEv,_ZTv0_n16_N6dd74513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74513barEv,_ZThn8_N6dd74513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774513fooEv,_ZTv0_n12_N7ee774513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee774513fooEv,_ZThn28_N7ee774513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774513barEv,_ZTv0_n16_N7ee774513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774513barEv,_ZThn16_N7ee774513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee774513fooEv,_ZTv0_n24_N7ee774513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774513fooEv,_ZThn8_N7ee774513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774513barEv,_ZTv0_n20_N7ee774513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774513barEv,_ZThn8_N7ee774513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77451 = { "ee77451", // class name
+ bases_ee77451, 4,
+ &(vtc_ee77451[0]), // expected_vtbl_contents
+ &(vtt_ee77451[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77451),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77451),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77451),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names759,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc551 : virtual bb51 {
+ int c;
+ virtual void bar(); // _ZN5cc5513barEv
+ ~cc551(); // tgen
+ cc551(); // tgen
+};
+//SIG(-1 cc551) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void cc551 ::bar(){vfunc_called(this, "_ZN5cc5513barEv");}
+cc551 ::~cc551(){ note_dtor("cc551", this);} // tgen
+cc551 ::cc551(){ note_ctor("cc551", this);} // tgen
+
+static void Test_cc551()
+{
+ extern Class_Descriptor cd_cc551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc551, buf);
+ cc551 *dp, &lv = *(dp=new (buf) cc551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,16), "cc551");
+ check_base_class_offset(lv, (bb51*), ABISELECT(16,8), "cc551");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc551.c");
+ test_class_info(&lv, &cd_cc551);
+ dp->~cc551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc551(Test_cc551, "cc551", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc551C1Ev();
+extern void _ZN5cc551D1Ev();
+Name_Map name_map_cc551[] = {
+ NSPAIR(_ZN5cc551C1Ev),
+ NSPAIR(_ZN5cc551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //bcp->offset
+ 10, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_cc551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV5cc551[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc551[] = {
+ {&(_ZTV5cc551[4]), 4,14},
+ {&(_ZTV5cc551[9]), 9,14},
+ {&(_ZTV5cc551[13]), 13,14},
+ {&(_tg__ZTV4bb51__5cc551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static VTBL_ENTRY alt_thunk_names760[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc551 = { "cc551", // class name
+ bases_cc551, 2,
+ &(vtc_cc551[0]), // expected_vtbl_contents
+ &(vtt_cc551[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc551),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names760,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0551 : cc551 {
+ int d;
+ ~dd0551(); // tgen
+ dd0551(); // tgen
+};
+//SIG(-1 dd0551) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0551 ::~dd0551(){ note_dtor("dd0551", this);} // tgen
+dd0551 ::dd0551(){ note_ctor("dd0551", this);} // tgen
+
+static void Test_dd0551()
+{
+ extern Class_Descriptor cd_dd0551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0551, buf);
+ dd0551 *dp, &lv = *(dp=new (buf) dd0551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd0551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(16,12), "dd0551");
+ check_base_class_offset(lv, (cc551*), 0, "dd0551");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0551.d");
+ test_class_info(&lv, &cd_dd0551);
+ dp->~dd0551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0551(Test_dd0551, "dd0551", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0551C1Ev();
+extern void _ZN6dd0551D1Ev();
+Name_Map name_map_dd0551[] = {
+ NSPAIR(_ZN6dd0551C1Ev),
+ NSPAIR(_ZN6dd0551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd0551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd0551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd0551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd0551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd0551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd0551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0551[] = {
+ {&(_ZTV6dd0551[4]), 4,14},
+ {&(_tg__ZTV5cc551__6dd0551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd0551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd0551[3]), 3,4},
+ {&(_ZTV6dd0551[9]), 9,14},
+ {&(_ZTV6dd0551[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd0551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd0551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static VTBL_ENTRY alt_thunk_names761[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0551 = { "dd0551", // class name
+ bases_dd0551, 3,
+ &(vtc_dd0551[0]), // expected_vtbl_contents
+ &(vtt_dd0551[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0551),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names761,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00551 : dd0551 {
+ int e;
+ ~ee00551(); // tgen
+ ee00551(); // tgen
+};
+//SIG(1 ee00551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00551 ::~ee00551(){ note_dtor("ee00551", this);} // tgen
+ee00551 ::ee00551(){ note_ctor("ee00551", this);} // tgen
+
+static void Test_ee00551()
+{
+ extern Class_Descriptor cd_ee00551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00551, buf);
+ ee00551 *dp, &lv = *(dp=new (buf) ee00551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee00551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(24,16), "ee00551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), 0, "ee00551");
+ check_base_class_offset(lv, (dd0551*), 0, "ee00551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00551.e");
+ test_class_info(&lv, &cd_ee00551);
+ dp->~ee00551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00551(Test_ee00551, "ee00551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00551C1Ev();
+extern void _ZN7ee00551D1Ev();
+Name_Map name_map_ee00551[] = {
+ NSPAIR(_ZN7ee00551C1Ev),
+ NSPAIR(_ZN7ee00551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee00551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee00551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee00551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee00551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee00551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee00551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee00551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee00551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee00551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee00551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee00551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00551[] = {
+ {&(_ZTV7ee00551[4]), 4,14},
+ {&(_tg__ZTV6dd0551__7ee00551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee00551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee00551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee00551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee00551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee00551[3]), 3,4},
+ {&(_ZTV7ee00551[9]), 9,14},
+ {&(_ZTV7ee00551[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee00551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee00551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00551[];
+extern VTBL_ENTRY _ZTV7ee00551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00551[];
+static VTBL_ENTRY alt_thunk_names762[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00551 = { "ee00551", // class name
+ bases_ee00551, 4,
+ &(vtc_ee00551[0]), // expected_vtbl_contents
+ &(vtt_ee00551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names762,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10551 : virtual dd0551 {
+ int e;
+ ~ee10551(); // tgen
+ ee10551(); // tgen
+};
+//SIG(1 ee10551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10551 ::~ee10551(){ note_dtor("ee10551", this);} // tgen
+ee10551 ::ee10551(){ note_ctor("ee10551", this);} // tgen
+
+static void Test_ee10551()
+{
+ extern Class_Descriptor cd_ee10551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10551, buf);
+ ee10551 *dp, &lv = *(dp=new (buf) ee10551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee10551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(32,20), "ee10551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), ABISELECT(16,8), "ee10551");
+ check_base_class_offset(lv, (dd0551*), ABISELECT(16,8), "ee10551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10551.e");
+ test_class_info(&lv, &cd_ee10551);
+ dp->~ee10551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10551(Test_ee10551, "ee10551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10551C1Ev();
+extern void _ZN7ee10551D1Ev();
+Name_Map name_map_ee10551[] = {
+ NSPAIR(_ZN7ee10551C1Ev),
+ NSPAIR(_ZN7ee10551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee10551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee10551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10551[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee10551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee10551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee10551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee10551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee10551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee10551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee10551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee10551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee10551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10551[] = {
+ {&(_ZTV7ee10551[5]), 5,20},
+ {&(_ZTV7ee10551[10]), 10,20},
+ {&(_ZTV7ee10551[15]), 15,20},
+ {&(_ZTV7ee10551[19]), 19,20},
+ {&(_tg__ZTV6dd0551__7ee10551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee10551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee10551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee10551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee10551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee10551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee10551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee10551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10551[];
+extern VTBL_ENTRY _ZTV7ee10551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10551[];
+static VTBL_ENTRY alt_thunk_names763[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10551 = { "ee10551", // class name
+ bases_ee10551, 4,
+ &(vtc_ee10551[0]), // expected_vtbl_contents
+ &(vtt_ee10551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10551),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names763,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20551 : dd0551 {
+ int e;
+ virtual void foo(); // _ZN7ee205513fooEv
+ ~ee20551(); // tgen
+ ee20551(); // tgen
+};
+//SIG(1 ee20551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20551 ::foo(){vfunc_called(this, "_ZN7ee205513fooEv");}
+ee20551 ::~ee20551(){ note_dtor("ee20551", this);} // tgen
+ee20551 ::ee20551(){ note_ctor("ee20551", this);} // tgen
+
+static void Test_ee20551()
+{
+ extern Class_Descriptor cd_ee20551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20551, buf);
+ ee20551 *dp, &lv = *(dp=new (buf) ee20551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee20551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(24,16), "ee20551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), 0, "ee20551");
+ check_base_class_offset(lv, (dd0551*), 0, "ee20551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20551.e");
+ test_class_info(&lv, &cd_ee20551);
+ dp->~ee20551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20551(Test_ee20551, "ee20551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20551C1Ev();
+extern void _ZN7ee20551D1Ev();
+Name_Map name_map_ee20551[] = {
+ NSPAIR(_ZN7ee20551C1Ev),
+ NSPAIR(_ZN7ee20551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee20551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN7ee205513fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee205513fooEv,_ZTv0_n12_N7ee205513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee205513fooEv,_ZThn24_N7ee205513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN7ee205513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205513fooEv,_ZTv0_n12_N7ee205513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee20551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee20551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee20551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee20551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee20551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee20551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee20551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee20551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20551[] = {
+ {&(_ZTV7ee20551[4]), 4,15},
+ {&(_tg__ZTV6dd0551__7ee20551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee20551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee20551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee20551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee20551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee20551[3]), 3,4},
+ {&(_ZTV7ee20551[10]), 10,15},
+ {&(_ZTV7ee20551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee20551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee20551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20551[];
+extern VTBL_ENTRY _ZTV7ee20551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20551[];
+static VTBL_ENTRY alt_thunk_names764[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205513fooEv,_ZTv0_n12_N7ee205513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee205513fooEv,_ZThn24_N7ee205513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20551 = { "ee20551", // class name
+ bases_ee20551, 4,
+ &(vtc_ee20551[0]), // expected_vtbl_contents
+ &(vtt_ee20551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names764,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30551 : virtual dd0551 {
+ int e;
+ virtual void foo(); // _ZN7ee305513fooEv
+ ~ee30551(); // tgen
+ ee30551(); // tgen
+};
+//SIG(1 ee30551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30551 ::foo(){vfunc_called(this, "_ZN7ee305513fooEv");}
+ee30551 ::~ee30551(){ note_dtor("ee30551", this);} // tgen
+ee30551 ::ee30551(){ note_ctor("ee30551", this);} // tgen
+
+static void Test_ee30551()
+{
+ extern Class_Descriptor cd_ee30551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30551, buf);
+ ee30551 *dp, &lv = *(dp=new (buf) ee30551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee30551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(32,20), "ee30551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), ABISELECT(16,8), "ee30551");
+ check_base_class_offset(lv, (dd0551*), ABISELECT(16,8), "ee30551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30551.e");
+ test_class_info(&lv, &cd_ee30551);
+ dp->~ee30551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30551(Test_ee30551, "ee30551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30551C1Ev();
+extern void _ZN7ee30551D1Ev();
+Name_Map name_map_ee30551[] = {
+ NSPAIR(_ZN7ee30551C1Ev),
+ NSPAIR(_ZN7ee30551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee30551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30551[];
+extern void _ZN7ee305513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee305513fooEv,_ZTv0_n12_N7ee305513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee305513fooEv,_ZThn28_N7ee305513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30551[0]),
+ (VTBL_ENTRY)&_ZN7ee305513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305513fooEv,_ZTv0_n12_N7ee305513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee30551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee30551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee30551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee30551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee30551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee30551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee30551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee30551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30551[] = {
+ {&(_ZTV7ee30551[5]), 5,21},
+ {&(_ZTV7ee30551[11]), 11,21},
+ {&(_ZTV7ee30551[16]), 16,21},
+ {&(_ZTV7ee30551[20]), 20,21},
+ {&(_tg__ZTV6dd0551__7ee30551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee30551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee30551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee30551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee30551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee30551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee30551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee30551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30551[];
+extern VTBL_ENTRY _ZTV7ee30551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30551[];
+static VTBL_ENTRY alt_thunk_names765[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305513fooEv,_ZTv0_n12_N7ee305513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee305513fooEv,_ZThn28_N7ee305513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30551 = { "ee30551", // class name
+ bases_ee30551, 4,
+ &(vtc_ee30551[0]), // expected_vtbl_contents
+ &(vtt_ee30551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names765,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40551 : dd0551 {
+ int e;
+ virtual void bar(); // _ZN7ee405513barEv
+ ~ee40551(); // tgen
+ ee40551(); // tgen
+};
+//SIG(1 ee40551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40551 ::bar(){vfunc_called(this, "_ZN7ee405513barEv");}
+ee40551 ::~ee40551(){ note_dtor("ee40551", this);} // tgen
+ee40551 ::ee40551(){ note_ctor("ee40551", this);} // tgen
+
+static void Test_ee40551()
+{
+ extern Class_Descriptor cd_ee40551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40551, buf);
+ ee40551 *dp, &lv = *(dp=new (buf) ee40551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee40551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(24,16), "ee40551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), 0, "ee40551");
+ check_base_class_offset(lv, (dd0551*), 0, "ee40551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40551.e");
+ test_class_info(&lv, &cd_ee40551);
+ dp->~ee40551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40551(Test_ee40551, "ee40551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40551C1Ev();
+extern void _ZN7ee40551D1Ev();
+Name_Map name_map_ee40551[] = {
+ NSPAIR(_ZN7ee40551C1Ev),
+ NSPAIR(_ZN7ee40551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee40551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40551[];
+extern void _ZN7ee405513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405513barEv,_ZTv0_n16_N7ee405513barEv)();
+extern void ABISELECT(_ZThn24_N7ee405513barEv,_ZThn16_N7ee405513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee40551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40551[0]),
+ (VTBL_ENTRY)&_ZN7ee405513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405513barEv,_ZTv0_n16_N7ee405513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee40551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee40551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee40551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee40551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee40551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee40551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee40551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee40551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee40551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40551[] = {
+ {&(_ZTV7ee40551[4]), 4,14},
+ {&(_tg__ZTV6dd0551__7ee40551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee40551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee40551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee40551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee40551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee40551[3]), 3,4},
+ {&(_ZTV7ee40551[9]), 9,14},
+ {&(_ZTV7ee40551[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee40551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee40551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40551[];
+extern VTBL_ENTRY _ZTV7ee40551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40551[];
+static VTBL_ENTRY alt_thunk_names766[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405513barEv,_ZTv0_n16_N7ee405513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405513barEv,_ZThn16_N7ee405513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40551 = { "ee40551", // class name
+ bases_ee40551, 4,
+ &(vtc_ee40551[0]), // expected_vtbl_contents
+ &(vtt_ee40551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names766,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50551 : virtual dd0551 {
+ int e;
+ virtual void bar(); // _ZN7ee505513barEv
+ ~ee50551(); // tgen
+ ee50551(); // tgen
+};
+//SIG(1 ee50551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50551 ::bar(){vfunc_called(this, "_ZN7ee505513barEv");}
+ee50551 ::~ee50551(){ note_dtor("ee50551", this);} // tgen
+ee50551 ::ee50551(){ note_ctor("ee50551", this);} // tgen
+
+static void Test_ee50551()
+{
+ extern Class_Descriptor cd_ee50551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50551, buf);
+ ee50551 *dp, &lv = *(dp=new (buf) ee50551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee50551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(32,20), "ee50551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), ABISELECT(16,8), "ee50551");
+ check_base_class_offset(lv, (dd0551*), ABISELECT(16,8), "ee50551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50551.e");
+ test_class_info(&lv, &cd_ee50551);
+ dp->~ee50551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50551(Test_ee50551, "ee50551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50551C1Ev();
+extern void _ZN7ee50551D1Ev();
+Name_Map name_map_ee50551[] = {
+ NSPAIR(_ZN7ee50551C1Ev),
+ NSPAIR(_ZN7ee50551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee50551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50551[];
+extern void _ZN7ee505513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee505513barEv,_ZTv0_n20_N7ee505513barEv)();
+extern void ABISELECT(_ZThn16_N7ee505513barEv,_ZThn8_N7ee505513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee505513barEv,_ZTv0_n16_N7ee505513barEv)();
+extern void ABISELECT(_ZThn32_N7ee505513barEv,_ZThn20_N7ee505513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee50551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50551[0]),
+ (VTBL_ENTRY)&_ZN7ee505513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee505513barEv,_ZTv0_n20_N7ee505513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505513barEv,_ZTv0_n16_N7ee505513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee50551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee50551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee50551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee50551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee50551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee50551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee50551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee50551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee50551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50551[] = {
+ {&(_ZTV7ee50551[5]), 5,21},
+ {&(_ZTV7ee50551[11]), 11,21},
+ {&(_ZTV7ee50551[16]), 16,21},
+ {&(_ZTV7ee50551[20]), 20,21},
+ {&(_tg__ZTV6dd0551__7ee50551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee50551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee50551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee50551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee50551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee50551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee50551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee50551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50551[];
+extern VTBL_ENTRY _ZTV7ee50551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50551[];
+static VTBL_ENTRY alt_thunk_names767[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505513barEv,_ZTv0_n16_N7ee505513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505513barEv,_ZThn20_N7ee505513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee505513barEv,_ZTv0_n20_N7ee505513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505513barEv,_ZThn8_N7ee505513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50551 = { "ee50551", // class name
+ bases_ee50551, 4,
+ &(vtc_ee50551[0]), // expected_vtbl_contents
+ &(vtt_ee50551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names767,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60551 : dd0551 {
+ int e;
+ virtual void foo(); // _ZN7ee605513fooEv
+ virtual void bar(); // _ZN7ee605513barEv
+ ~ee60551(); // tgen
+ ee60551(); // tgen
+};
+//SIG(1 ee60551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60551 ::foo(){vfunc_called(this, "_ZN7ee605513fooEv");}
+void ee60551 ::bar(){vfunc_called(this, "_ZN7ee605513barEv");}
+ee60551 ::~ee60551(){ note_dtor("ee60551", this);} // tgen
+ee60551 ::ee60551(){ note_ctor("ee60551", this);} // tgen
+
+static void Test_ee60551()
+{
+ extern Class_Descriptor cd_ee60551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60551, buf);
+ ee60551 *dp, &lv = *(dp=new (buf) ee60551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee60551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(24,16), "ee60551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), 0, "ee60551");
+ check_base_class_offset(lv, (dd0551*), 0, "ee60551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60551.e");
+ test_class_info(&lv, &cd_ee60551);
+ dp->~ee60551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60551(Test_ee60551, "ee60551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60551C1Ev();
+extern void _ZN7ee60551D1Ev();
+Name_Map name_map_ee60551[] = {
+ NSPAIR(_ZN7ee60551C1Ev),
+ NSPAIR(_ZN7ee60551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee60551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60551[];
+extern void _ZN7ee605513barEv();
+extern void _ZN7ee605513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee605513barEv,_ZTv0_n16_N7ee605513barEv)();
+extern void ABISELECT(_ZThn24_N7ee605513barEv,_ZThn16_N7ee605513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee605513fooEv,_ZTv0_n12_N7ee605513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee605513fooEv,_ZThn24_N7ee605513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60551[0]),
+ (VTBL_ENTRY)&_ZN7ee605513barEv,
+ (VTBL_ENTRY)&_ZN7ee605513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605513barEv,_ZTv0_n16_N7ee605513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605513fooEv,_ZTv0_n12_N7ee605513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee60551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee60551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee60551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee60551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee60551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee60551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee60551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee60551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60551[] = {
+ {&(_ZTV7ee60551[4]), 4,15},
+ {&(_tg__ZTV6dd0551__7ee60551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee60551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee60551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee60551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee60551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee60551[3]), 3,4},
+ {&(_ZTV7ee60551[10]), 10,15},
+ {&(_ZTV7ee60551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee60551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee60551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60551[];
+extern VTBL_ENTRY _ZTV7ee60551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60551[];
+static VTBL_ENTRY alt_thunk_names768[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605513fooEv,_ZTv0_n12_N7ee605513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee605513fooEv,_ZThn24_N7ee605513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605513barEv,_ZTv0_n16_N7ee605513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605513barEv,_ZThn16_N7ee605513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60551 = { "ee60551", // class name
+ bases_ee60551, 4,
+ &(vtc_ee60551[0]), // expected_vtbl_contents
+ &(vtt_ee60551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names768,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70551 : virtual dd0551 {
+ int e;
+ virtual void foo(); // _ZN7ee705513fooEv
+ virtual void bar(); // _ZN7ee705513barEv
+ ~ee70551(); // tgen
+ ee70551(); // tgen
+};
+//SIG(1 ee70551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70551 ::foo(){vfunc_called(this, "_ZN7ee705513fooEv");}
+void ee70551 ::bar(){vfunc_called(this, "_ZN7ee705513barEv");}
+ee70551 ::~ee70551(){ note_dtor("ee70551", this);} // tgen
+ee70551 ::ee70551(){ note_ctor("ee70551", this);} // tgen
+
+static void Test_ee70551()
+{
+ extern Class_Descriptor cd_ee70551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70551, buf);
+ ee70551 *dp, &lv = *(dp=new (buf) ee70551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee70551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd0551*), ABISELECT(32,20), "ee70551");
+ check_base_class_offset(lv, (cc551*)(dd0551*), ABISELECT(16,8), "ee70551");
+ check_base_class_offset(lv, (dd0551*), ABISELECT(16,8), "ee70551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70551.e");
+ test_class_info(&lv, &cd_ee70551);
+ dp->~ee70551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70551(Test_ee70551, "ee70551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70551C1Ev();
+extern void _ZN7ee70551D1Ev();
+Name_Map name_map_ee70551[] = {
+ NSPAIR(_ZN7ee70551C1Ev),
+ NSPAIR(_ZN7ee70551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd0551;
+extern VTBL_ENTRY _ZTI6dd0551[];
+extern VTBL_ENTRY _ZTV6dd0551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0551[];
+static Base_Class bases_ee70551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0551, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70551[];
+extern void _ZN7ee705513fooEv();
+extern void _ZN7ee705513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee705513barEv,_ZTv0_n20_N7ee705513barEv)();
+extern void ABISELECT(_ZThn16_N7ee705513barEv,_ZThn8_N7ee705513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705513barEv,_ZTv0_n16_N7ee705513barEv)();
+extern void ABISELECT(_ZThn32_N7ee705513barEv,_ZThn20_N7ee705513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705513fooEv,_ZTv0_n12_N7ee705513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee705513fooEv,_ZThn28_N7ee705513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70551[0]),
+ (VTBL_ENTRY)&_ZN7ee705513fooEv,
+ (VTBL_ENTRY)&_ZN7ee705513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee705513barEv,_ZTv0_n20_N7ee705513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705513barEv,_ZTv0_n16_N7ee705513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705513fooEv,_ZTv0_n12_N7ee705513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0551__7ee70551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd0551__7ee70551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd0551__7ee70551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd0551__7ee70551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0551__7ee70551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0551__7ee70551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee70551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee70551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70551[] = {
+ {&(_ZTV7ee70551[5]), 5,22},
+ {&(_ZTV7ee70551[12]), 12,22},
+ {&(_ZTV7ee70551[17]), 17,22},
+ {&(_ZTV7ee70551[21]), 21,22},
+ {&(_tg__ZTV6dd0551__7ee70551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd0551__7ee70551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd0551__7ee70551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd0551__7ee70551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0551__7ee70551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0551__7ee70551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee70551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee70551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70551[];
+extern VTBL_ENTRY _ZTV7ee70551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70551[];
+static VTBL_ENTRY alt_thunk_names769[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705513fooEv,_ZTv0_n12_N7ee705513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee705513fooEv,_ZThn28_N7ee705513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705513barEv,_ZTv0_n16_N7ee705513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705513barEv,_ZThn20_N7ee705513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee705513barEv,_ZTv0_n20_N7ee705513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705513barEv,_ZThn8_N7ee705513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70551 = { "ee70551", // class name
+ bases_ee70551, 4,
+ &(vtc_ee70551[0]), // expected_vtbl_contents
+ &(vtt_ee70551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names769,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1551 : virtual cc551 {
+ int d;
+ ~dd1551(); // tgen
+ dd1551(); // tgen
+};
+//SIG(-1 dd1551) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1551 ::~dd1551(){ note_dtor("dd1551", this);} // tgen
+dd1551 ::dd1551(){ note_ctor("dd1551", this);} // tgen
+
+static void Test_dd1551()
+{
+ extern Class_Descriptor cd_dd1551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1551, buf);
+ dd1551 *dp, &lv = *(dp=new (buf) dd1551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd1551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,16), "dd1551");
+ check_base_class_offset(lv, (cc551*), ABISELECT(16,8), "dd1551");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1551.d");
+ test_class_info(&lv, &cd_dd1551);
+ dp->~dd1551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1551(Test_dd1551, "dd1551", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1551C1Ev();
+extern void _ZN6dd1551D1Ev();
+Name_Map name_map_dd1551[] = {
+ NSPAIR(_ZN6dd1551C1Ev),
+ NSPAIR(_ZN6dd1551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd1551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd1551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd1551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd1551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd1551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd1551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1551[] = {
+ {&(_ZTV6dd1551[5]), 5,20},
+ {&(_ZTV6dd1551[10]), 10,20},
+ {&(_ZTV6dd1551[15]), 15,20},
+ {&(_ZTV6dd1551[19]), 19,20},
+ {&(_tg__ZTV5cc551__6dd1551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd1551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd1551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd1551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd1551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static VTBL_ENTRY alt_thunk_names770[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1551 = { "dd1551", // class name
+ bases_dd1551, 3,
+ &(vtc_dd1551[0]), // expected_vtbl_contents
+ &(vtt_dd1551[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1551),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1551),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names770,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01551 : dd1551 {
+ int e;
+ ~ee01551(); // tgen
+ ee01551(); // tgen
+};
+//SIG(1 ee01551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01551 ::~ee01551(){ note_dtor("ee01551", this);} // tgen
+ee01551 ::ee01551(){ note_ctor("ee01551", this);} // tgen
+
+static void Test_ee01551()
+{
+ extern Class_Descriptor cd_ee01551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01551, buf);
+ ee01551 *dp, &lv = *(dp=new (buf) ee01551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee01551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee01551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(16,12), "ee01551");
+ check_base_class_offset(lv, (dd1551*), 0, "ee01551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01551.e");
+ test_class_info(&lv, &cd_ee01551);
+ dp->~ee01551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01551(Test_ee01551, "ee01551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01551C1Ev();
+extern void _ZN7ee01551D1Ev();
+Name_Map name_map_ee01551[] = {
+ NSPAIR(_ZN7ee01551C1Ev),
+ NSPAIR(_ZN7ee01551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee01551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee01551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01551[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee01551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee01551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee01551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee01551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee01551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee01551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee01551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee01551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee01551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee01551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01551[] = {
+ {&(_ZTV7ee01551[5]), 5,20},
+ {&(_tg__ZTV6dd1551__7ee01551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee01551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee01551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee01551[3]), 3,4},
+ {&(_ZTV7ee01551[10]), 10,20},
+ {&(_ZTV7ee01551[15]), 15,20},
+ {&(_ZTV7ee01551[19]), 19,20},
+ {&(_tg__ZTV5cc551__7ee01551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee01551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee01551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee01551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee01551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01551[];
+extern VTBL_ENTRY _ZTV7ee01551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01551[];
+static VTBL_ENTRY alt_thunk_names771[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01551 = { "ee01551", // class name
+ bases_ee01551, 4,
+ &(vtc_ee01551[0]), // expected_vtbl_contents
+ &(vtt_ee01551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01551),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names771,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11551 : virtual dd1551 {
+ int e;
+ ~ee11551(); // tgen
+ ee11551(); // tgen
+};
+//SIG(1 ee11551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11551 ::~ee11551(){ note_dtor("ee11551", this);} // tgen
+ee11551 ::ee11551(){ note_ctor("ee11551", this);} // tgen
+
+static void Test_ee11551()
+{
+ extern Class_Descriptor cd_ee11551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11551, buf);
+ ee11551 *dp, &lv = *(dp=new (buf) ee11551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee11551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee11551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(32,16), "ee11551");
+ check_base_class_offset(lv, (dd1551*), ABISELECT(16,8), "ee11551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11551.e");
+ test_class_info(&lv, &cd_ee11551);
+ dp->~ee11551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11551(Test_ee11551, "ee11551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11551C1Ev();
+extern void _ZN7ee11551D1Ev();
+Name_Map name_map_ee11551[] = {
+ NSPAIR(_ZN7ee11551C1Ev),
+ NSPAIR(_ZN7ee11551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee11551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11551[];
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee11551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11551[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11551[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee11551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee11551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee11551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee11551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee11551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee11551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee11551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee11551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee11551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee11551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11551[] = {
+ {&(_ZTV7ee11551[6]), 6,26},
+ {&(_ZTV7ee11551[11]), 11,26},
+ {&(_ZTV7ee11551[16]), 16,26},
+ {&(_ZTV7ee11551[21]), 21,26},
+ {&(_ZTV7ee11551[25]), 25,26},
+ {&(_tg__ZTV6dd1551__7ee11551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee11551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee11551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee11551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee11551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee11551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee11551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee11551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee11551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11551[];
+extern VTBL_ENTRY _ZTV7ee11551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11551[];
+static VTBL_ENTRY alt_thunk_names772[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11551 = { "ee11551", // class name
+ bases_ee11551, 4,
+ &(vtc_ee11551[0]), // expected_vtbl_contents
+ &(vtt_ee11551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11551),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names772,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21551 : dd1551 {
+ int e;
+ virtual void foo(); // _ZN7ee215513fooEv
+ ~ee21551(); // tgen
+ ee21551(); // tgen
+};
+//SIG(1 ee21551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21551 ::foo(){vfunc_called(this, "_ZN7ee215513fooEv");}
+ee21551 ::~ee21551(){ note_dtor("ee21551", this);} // tgen
+ee21551 ::ee21551(){ note_ctor("ee21551", this);} // tgen
+
+static void Test_ee21551()
+{
+ extern Class_Descriptor cd_ee21551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21551, buf);
+ ee21551 *dp, &lv = *(dp=new (buf) ee21551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee21551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee21551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(16,12), "ee21551");
+ check_base_class_offset(lv, (dd1551*), 0, "ee21551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21551.e");
+ test_class_info(&lv, &cd_ee21551);
+ dp->~ee21551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21551(Test_ee21551, "ee21551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21551C1Ev();
+extern void _ZN7ee21551D1Ev();
+Name_Map name_map_ee21551[] = {
+ NSPAIR(_ZN7ee21551C1Ev),
+ NSPAIR(_ZN7ee21551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee21551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21551[];
+extern void _ZN7ee215513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee215513fooEv,_ZTv0_n12_N7ee215513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee215513fooEv,_ZThn28_N7ee215513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21551[0]),
+ (VTBL_ENTRY)&_ZN7ee215513fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215513fooEv,_ZTv0_n12_N7ee215513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee21551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee21551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee21551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee21551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee21551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee21551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee21551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee21551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee21551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21551[] = {
+ {&(_ZTV7ee21551[5]), 5,21},
+ {&(_tg__ZTV6dd1551__7ee21551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee21551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee21551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee21551[3]), 3,4},
+ {&(_ZTV7ee21551[11]), 11,21},
+ {&(_ZTV7ee21551[16]), 16,21},
+ {&(_ZTV7ee21551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee21551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee21551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee21551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee21551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee21551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21551[];
+extern VTBL_ENTRY _ZTV7ee21551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21551[];
+static VTBL_ENTRY alt_thunk_names773[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215513fooEv,_ZTv0_n12_N7ee215513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee215513fooEv,_ZThn28_N7ee215513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21551 = { "ee21551", // class name
+ bases_ee21551, 4,
+ &(vtc_ee21551[0]), // expected_vtbl_contents
+ &(vtt_ee21551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names773,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31551 : virtual dd1551 {
+ int e;
+ virtual void foo(); // _ZN7ee315513fooEv
+ ~ee31551(); // tgen
+ ee31551(); // tgen
+};
+//SIG(1 ee31551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31551 ::foo(){vfunc_called(this, "_ZN7ee315513fooEv");}
+ee31551 ::~ee31551(){ note_dtor("ee31551", this);} // tgen
+ee31551 ::ee31551(){ note_ctor("ee31551", this);} // tgen
+
+static void Test_ee31551()
+{
+ extern Class_Descriptor cd_ee31551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31551, buf);
+ ee31551 *dp, &lv = *(dp=new (buf) ee31551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee31551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee31551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(32,16), "ee31551");
+ check_base_class_offset(lv, (dd1551*), ABISELECT(16,8), "ee31551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31551.e");
+ test_class_info(&lv, &cd_ee31551);
+ dp->~ee31551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31551(Test_ee31551, "ee31551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31551C1Ev();
+extern void _ZN7ee31551D1Ev();
+Name_Map name_map_ee31551[] = {
+ NSPAIR(_ZN7ee31551C1Ev),
+ NSPAIR(_ZN7ee31551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee31551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31551[];
+extern void _ZN7ee315513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee315513fooEv,_ZTv0_n12_N7ee315513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee315513fooEv,_ZThn32_N7ee315513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31551[0]),
+ (VTBL_ENTRY)&_ZN7ee315513fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31551[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315513fooEv,_ZTv0_n12_N7ee315513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee31551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee31551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee31551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee31551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee31551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee31551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee31551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee31551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee31551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31551[] = {
+ {&(_ZTV7ee31551[6]), 6,27},
+ {&(_ZTV7ee31551[12]), 12,27},
+ {&(_ZTV7ee31551[17]), 17,27},
+ {&(_ZTV7ee31551[22]), 22,27},
+ {&(_ZTV7ee31551[26]), 26,27},
+ {&(_tg__ZTV6dd1551__7ee31551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee31551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee31551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee31551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee31551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee31551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee31551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee31551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee31551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31551[];
+extern VTBL_ENTRY _ZTV7ee31551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31551[];
+static VTBL_ENTRY alt_thunk_names774[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315513fooEv,_ZTv0_n12_N7ee315513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee315513fooEv,_ZThn32_N7ee315513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31551 = { "ee31551", // class name
+ bases_ee31551, 4,
+ &(vtc_ee31551[0]), // expected_vtbl_contents
+ &(vtt_ee31551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31551),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names774,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41551 : dd1551 {
+ int e;
+ virtual void bar(); // _ZN7ee415513barEv
+ ~ee41551(); // tgen
+ ee41551(); // tgen
+};
+//SIG(1 ee41551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41551 ::bar(){vfunc_called(this, "_ZN7ee415513barEv");}
+ee41551 ::~ee41551(){ note_dtor("ee41551", this);} // tgen
+ee41551 ::ee41551(){ note_ctor("ee41551", this);} // tgen
+
+static void Test_ee41551()
+{
+ extern Class_Descriptor cd_ee41551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41551, buf);
+ ee41551 *dp, &lv = *(dp=new (buf) ee41551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee41551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee41551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(16,12), "ee41551");
+ check_base_class_offset(lv, (dd1551*), 0, "ee41551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41551.e");
+ test_class_info(&lv, &cd_ee41551);
+ dp->~ee41551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41551(Test_ee41551, "ee41551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41551C1Ev();
+extern void _ZN7ee41551D1Ev();
+Name_Map name_map_ee41551[] = {
+ NSPAIR(_ZN7ee41551C1Ev),
+ NSPAIR(_ZN7ee41551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee41551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41551[];
+extern void _ZN7ee415513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee415513barEv,_ZTv0_n20_N7ee415513barEv)();
+extern void ABISELECT(_ZThn16_N7ee415513barEv,_ZThn12_N7ee415513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee415513barEv,_ZTv0_n16_N7ee415513barEv)();
+extern void ABISELECT(_ZThn32_N7ee415513barEv,_ZThn20_N7ee415513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee41551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41551[0]),
+ (VTBL_ENTRY)&_ZN7ee415513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee415513barEv,_ZTv0_n20_N7ee415513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415513barEv,_ZTv0_n16_N7ee415513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee41551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee41551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee41551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee41551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee41551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee41551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee41551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee41551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee41551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee41551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41551[] = {
+ {&(_ZTV7ee41551[5]), 5,21},
+ {&(_tg__ZTV6dd1551__7ee41551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee41551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee41551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee41551[3]), 3,4},
+ {&(_ZTV7ee41551[11]), 11,21},
+ {&(_ZTV7ee41551[16]), 16,21},
+ {&(_ZTV7ee41551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee41551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee41551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee41551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee41551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee41551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41551[];
+extern VTBL_ENTRY _ZTV7ee41551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41551[];
+static VTBL_ENTRY alt_thunk_names775[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415513barEv,_ZTv0_n16_N7ee415513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415513barEv,_ZThn20_N7ee415513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee415513barEv,_ZTv0_n20_N7ee415513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415513barEv,_ZThn12_N7ee415513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41551 = { "ee41551", // class name
+ bases_ee41551, 4,
+ &(vtc_ee41551[0]), // expected_vtbl_contents
+ &(vtt_ee41551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names775,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51551 : virtual dd1551 {
+ int e;
+ virtual void bar(); // _ZN7ee515513barEv
+ ~ee51551(); // tgen
+ ee51551(); // tgen
+};
+//SIG(1 ee51551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51551 ::bar(){vfunc_called(this, "_ZN7ee515513barEv");}
+ee51551 ::~ee51551(){ note_dtor("ee51551", this);} // tgen
+ee51551 ::ee51551(){ note_ctor("ee51551", this);} // tgen
+
+static void Test_ee51551()
+{
+ extern Class_Descriptor cd_ee51551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51551, buf);
+ ee51551 *dp, &lv = *(dp=new (buf) ee51551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee51551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee51551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(32,16), "ee51551");
+ check_base_class_offset(lv, (dd1551*), ABISELECT(16,8), "ee51551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51551.e");
+ test_class_info(&lv, &cd_ee51551);
+ dp->~ee51551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51551(Test_ee51551, "ee51551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51551C1Ev();
+extern void _ZN7ee51551D1Ev();
+Name_Map name_map_ee51551[] = {
+ NSPAIR(_ZN7ee51551C1Ev),
+ NSPAIR(_ZN7ee51551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee51551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51551[];
+extern void _ZN7ee515513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee515513barEv,_ZTv0_n20_N7ee515513barEv)();
+extern void ABISELECT(_ZThn32_N7ee515513barEv,_ZThn16_N7ee515513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee515513barEv,_ZTv0_n16_N7ee515513barEv)();
+extern void ABISELECT(_ZThn48_N7ee515513barEv,_ZThn24_N7ee515513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee51551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51551[0]),
+ (VTBL_ENTRY)&_ZN7ee515513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51551[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee515513barEv,_ZTv0_n20_N7ee515513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515513barEv,_ZTv0_n16_N7ee515513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee51551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee51551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee51551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee51551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee51551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee51551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee51551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee51551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee51551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee51551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51551[] = {
+ {&(_ZTV7ee51551[6]), 6,27},
+ {&(_ZTV7ee51551[12]), 12,27},
+ {&(_ZTV7ee51551[17]), 17,27},
+ {&(_ZTV7ee51551[22]), 22,27},
+ {&(_ZTV7ee51551[26]), 26,27},
+ {&(_tg__ZTV6dd1551__7ee51551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee51551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee51551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee51551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee51551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee51551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee51551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee51551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee51551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51551[];
+extern VTBL_ENTRY _ZTV7ee51551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51551[];
+static VTBL_ENTRY alt_thunk_names776[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515513barEv,_ZTv0_n16_N7ee515513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515513barEv,_ZThn24_N7ee515513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee515513barEv,_ZTv0_n20_N7ee515513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515513barEv,_ZThn16_N7ee515513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51551 = { "ee51551", // class name
+ bases_ee51551, 4,
+ &(vtc_ee51551[0]), // expected_vtbl_contents
+ &(vtt_ee51551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51551),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names776,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61551 : dd1551 {
+ int e;
+ virtual void foo(); // _ZN7ee615513fooEv
+ virtual void bar(); // _ZN7ee615513barEv
+ ~ee61551(); // tgen
+ ee61551(); // tgen
+};
+//SIG(1 ee61551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61551 ::foo(){vfunc_called(this, "_ZN7ee615513fooEv");}
+void ee61551 ::bar(){vfunc_called(this, "_ZN7ee615513barEv");}
+ee61551 ::~ee61551(){ note_dtor("ee61551", this);} // tgen
+ee61551 ::ee61551(){ note_ctor("ee61551", this);} // tgen
+
+static void Test_ee61551()
+{
+ extern Class_Descriptor cd_ee61551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61551, buf);
+ ee61551 *dp, &lv = *(dp=new (buf) ee61551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee61551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee61551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(16,12), "ee61551");
+ check_base_class_offset(lv, (dd1551*), 0, "ee61551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61551.e");
+ test_class_info(&lv, &cd_ee61551);
+ dp->~ee61551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61551(Test_ee61551, "ee61551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61551C1Ev();
+extern void _ZN7ee61551D1Ev();
+Name_Map name_map_ee61551[] = {
+ NSPAIR(_ZN7ee61551C1Ev),
+ NSPAIR(_ZN7ee61551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee61551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61551[];
+extern void _ZN7ee615513fooEv();
+extern void _ZN7ee615513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee615513barEv,_ZTv0_n20_N7ee615513barEv)();
+extern void ABISELECT(_ZThn16_N7ee615513barEv,_ZThn12_N7ee615513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615513barEv,_ZTv0_n16_N7ee615513barEv)();
+extern void ABISELECT(_ZThn32_N7ee615513barEv,_ZThn20_N7ee615513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615513fooEv,_ZTv0_n12_N7ee615513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee615513fooEv,_ZThn28_N7ee615513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61551[0]),
+ (VTBL_ENTRY)&_ZN7ee615513fooEv,
+ (VTBL_ENTRY)&_ZN7ee615513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee615513barEv,_ZTv0_n20_N7ee615513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615513barEv,_ZTv0_n16_N7ee615513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615513fooEv,_ZTv0_n12_N7ee615513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee61551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee61551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee61551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee61551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee61551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee61551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee61551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee61551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee61551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61551[] = {
+ {&(_ZTV7ee61551[5]), 5,22},
+ {&(_tg__ZTV6dd1551__7ee61551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee61551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee61551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee61551[3]), 3,4},
+ {&(_ZTV7ee61551[12]), 12,22},
+ {&(_ZTV7ee61551[17]), 17,22},
+ {&(_ZTV7ee61551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee61551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee61551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee61551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee61551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee61551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61551[];
+extern VTBL_ENTRY _ZTV7ee61551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61551[];
+static VTBL_ENTRY alt_thunk_names777[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615513fooEv,_ZTv0_n12_N7ee615513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee615513fooEv,_ZThn28_N7ee615513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615513barEv,_ZTv0_n16_N7ee615513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615513barEv,_ZThn20_N7ee615513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee615513barEv,_ZTv0_n20_N7ee615513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615513barEv,_ZThn12_N7ee615513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61551 = { "ee61551", // class name
+ bases_ee61551, 4,
+ &(vtc_ee61551[0]), // expected_vtbl_contents
+ &(vtt_ee61551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names777,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71551 : virtual dd1551 {
+ int e;
+ virtual void foo(); // _ZN7ee715513fooEv
+ virtual void bar(); // _ZN7ee715513barEv
+ ~ee71551(); // tgen
+ ee71551(); // tgen
+};
+//SIG(1 ee71551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71551 ::foo(){vfunc_called(this, "_ZN7ee715513fooEv");}
+void ee71551 ::bar(){vfunc_called(this, "_ZN7ee715513barEv");}
+ee71551 ::~ee71551(){ note_dtor("ee71551", this);} // tgen
+ee71551 ::ee71551(){ note_ctor("ee71551", this);} // tgen
+
+static void Test_ee71551()
+{
+ extern Class_Descriptor cd_ee71551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71551, buf);
+ ee71551 *dp, &lv = *(dp=new (buf) ee71551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee71551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee71551");
+ check_base_class_offset(lv, (cc551*)(dd1551*), ABISELECT(32,16), "ee71551");
+ check_base_class_offset(lv, (dd1551*), ABISELECT(16,8), "ee71551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71551.e");
+ test_class_info(&lv, &cd_ee71551);
+ dp->~ee71551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71551(Test_ee71551, "ee71551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71551C1Ev();
+extern void _ZN7ee71551D1Ev();
+Name_Map name_map_ee71551[] = {
+ NSPAIR(_ZN7ee71551C1Ev),
+ NSPAIR(_ZN7ee71551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd1551;
+extern VTBL_ENTRY _ZTI6dd1551[];
+extern VTBL_ENTRY _ZTV6dd1551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1551[];
+static Base_Class bases_ee71551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1551, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71551[];
+extern void _ZN7ee715513fooEv();
+extern void _ZN7ee715513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee715513barEv,_ZTv0_n20_N7ee715513barEv)();
+extern void ABISELECT(_ZThn32_N7ee715513barEv,_ZThn16_N7ee715513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715513barEv,_ZTv0_n16_N7ee715513barEv)();
+extern void ABISELECT(_ZThn48_N7ee715513barEv,_ZThn24_N7ee715513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715513fooEv,_ZTv0_n12_N7ee715513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee715513fooEv,_ZThn32_N7ee715513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71551[0]),
+ (VTBL_ENTRY)&_ZN7ee715513fooEv,
+ (VTBL_ENTRY)&_ZN7ee715513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71551[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee715513barEv,_ZTv0_n20_N7ee715513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715513barEv,_ZTv0_n16_N7ee715513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715513fooEv,_ZTv0_n12_N7ee715513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71551[];
+static VTBL_ENTRY _tg__ZTV6dd1551__7ee71551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd1551__7ee71551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1551__7ee71551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1551__7ee71551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee71551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee71551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee71551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee71551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee71551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71551[] = {
+ {&(_ZTV7ee71551[6]), 6,28},
+ {&(_ZTV7ee71551[13]), 13,28},
+ {&(_ZTV7ee71551[18]), 18,28},
+ {&(_ZTV7ee71551[23]), 23,28},
+ {&(_ZTV7ee71551[27]), 27,28},
+ {&(_tg__ZTV6dd1551__7ee71551[5]), 5,5},
+ {&(_tg__ZTV5cc551__6dd1551__7ee71551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd1551__7ee71551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1551__7ee71551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee71551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee71551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee71551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee71551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee71551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71551[];
+extern VTBL_ENTRY _ZTV7ee71551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71551[];
+static VTBL_ENTRY alt_thunk_names778[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715513fooEv,_ZTv0_n12_N7ee715513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee715513fooEv,_ZThn32_N7ee715513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715513barEv,_ZTv0_n16_N7ee715513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715513barEv,_ZThn24_N7ee715513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee715513barEv,_ZTv0_n20_N7ee715513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715513barEv,_ZThn16_N7ee715513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71551 = { "ee71551", // class name
+ bases_ee71551, 4,
+ &(vtc_ee71551[0]), // expected_vtbl_contents
+ &(vtt_ee71551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71551),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names778,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2551 : cc551 {
+ int d;
+ virtual void foo(); // _ZN6dd25513fooEv
+ ~dd2551(); // tgen
+ dd2551(); // tgen
+};
+//SIG(-1 dd2551) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2551 ::foo(){vfunc_called(this, "_ZN6dd25513fooEv");}
+dd2551 ::~dd2551(){ note_dtor("dd2551", this);} // tgen
+dd2551 ::dd2551(){ note_ctor("dd2551", this);} // tgen
+
+static void Test_dd2551()
+{
+ extern Class_Descriptor cd_dd2551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2551, buf);
+ dd2551 *dp, &lv = *(dp=new (buf) dd2551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd2551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(16,12), "dd2551");
+ check_base_class_offset(lv, (cc551*), 0, "dd2551");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2551.d");
+ test_class_info(&lv, &cd_dd2551);
+ dp->~dd2551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2551(Test_dd2551, "dd2551", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2551C1Ev();
+extern void _ZN6dd2551D1Ev();
+Name_Map name_map_dd2551[] = {
+ NSPAIR(_ZN6dd2551C1Ev),
+ NSPAIR(_ZN6dd2551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd2551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd2551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd2551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd2551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd2551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2551[] = {
+ {&(_ZTV6dd2551[4]), 4,15},
+ {&(_tg__ZTV5cc551__6dd2551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd2551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd2551[3]), 3,4},
+ {&(_ZTV6dd2551[10]), 10,15},
+ {&(_ZTV6dd2551[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd2551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd2551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static VTBL_ENTRY alt_thunk_names779[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2551 = { "dd2551", // class name
+ bases_dd2551, 3,
+ &(vtc_dd2551[0]), // expected_vtbl_contents
+ &(vtt_dd2551[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2551),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names779,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02551 : dd2551 {
+ int e;
+ ~ee02551(); // tgen
+ ee02551(); // tgen
+};
+//SIG(1 ee02551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02551 ::~ee02551(){ note_dtor("ee02551", this);} // tgen
+ee02551 ::ee02551(){ note_ctor("ee02551", this);} // tgen
+
+static void Test_ee02551()
+{
+ extern Class_Descriptor cd_ee02551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02551, buf);
+ ee02551 *dp, &lv = *(dp=new (buf) ee02551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee02551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(24,16), "ee02551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), 0, "ee02551");
+ check_base_class_offset(lv, (dd2551*), 0, "ee02551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02551.e");
+ test_class_info(&lv, &cd_ee02551);
+ dp->~ee02551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02551(Test_ee02551, "ee02551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02551C1Ev();
+extern void _ZN7ee02551D1Ev();
+Name_Map name_map_ee02551[] = {
+ NSPAIR(_ZN7ee02551C1Ev),
+ NSPAIR(_ZN7ee02551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee02551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee02551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee02551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee02551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee02551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee02551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee02551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee02551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee02551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee02551[] = {
+ {&(_ZTV7ee02551[4]), 4,15},
+ {&(_tg__ZTV6dd2551__7ee02551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee02551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee02551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee02551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee02551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee02551[3]), 3,4},
+ {&(_ZTV7ee02551[10]), 10,15},
+ {&(_ZTV7ee02551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee02551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee02551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02551[];
+extern VTBL_ENTRY _ZTV7ee02551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02551[];
+static VTBL_ENTRY alt_thunk_names780[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02551 = { "ee02551", // class name
+ bases_ee02551, 4,
+ &(vtc_ee02551[0]), // expected_vtbl_contents
+ &(vtt_ee02551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names780,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12551 : virtual dd2551 {
+ int e;
+ ~ee12551(); // tgen
+ ee12551(); // tgen
+};
+//SIG(1 ee12551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12551 ::~ee12551(){ note_dtor("ee12551", this);} // tgen
+ee12551 ::ee12551(){ note_ctor("ee12551", this);} // tgen
+
+static void Test_ee12551()
+{
+ extern Class_Descriptor cd_ee12551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12551, buf);
+ ee12551 *dp, &lv = *(dp=new (buf) ee12551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee12551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(32,20), "ee12551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), ABISELECT(16,8), "ee12551");
+ check_base_class_offset(lv, (dd2551*), ABISELECT(16,8), "ee12551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12551.e");
+ test_class_info(&lv, &cd_ee12551);
+ dp->~ee12551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12551(Test_ee12551, "ee12551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12551C1Ev();
+extern void _ZN7ee12551D1Ev();
+Name_Map name_map_ee12551[] = {
+ NSPAIR(_ZN7ee12551C1Ev),
+ NSPAIR(_ZN7ee12551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee12551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12551[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee12551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee12551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee12551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee12551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee12551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee12551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee12551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee12551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee12551[] = {
+ {&(_ZTV7ee12551[5]), 5,22},
+ {&(_ZTV7ee12551[11]), 11,22},
+ {&(_ZTV7ee12551[17]), 17,22},
+ {&(_ZTV7ee12551[21]), 21,22},
+ {&(_tg__ZTV6dd2551__7ee12551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee12551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee12551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee12551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee12551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee12551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee12551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee12551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12551[];
+extern VTBL_ENTRY _ZTV7ee12551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12551[];
+static VTBL_ENTRY alt_thunk_names781[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12551 = { "ee12551", // class name
+ bases_ee12551, 4,
+ &(vtc_ee12551[0]), // expected_vtbl_contents
+ &(vtt_ee12551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names781,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22551 : dd2551 {
+ int e;
+ virtual void foo(); // _ZN7ee225513fooEv
+ ~ee22551(); // tgen
+ ee22551(); // tgen
+};
+//SIG(1 ee22551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22551 ::foo(){vfunc_called(this, "_ZN7ee225513fooEv");}
+ee22551 ::~ee22551(){ note_dtor("ee22551", this);} // tgen
+ee22551 ::ee22551(){ note_ctor("ee22551", this);} // tgen
+
+static void Test_ee22551()
+{
+ extern Class_Descriptor cd_ee22551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22551, buf);
+ ee22551 *dp, &lv = *(dp=new (buf) ee22551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee22551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(24,16), "ee22551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), 0, "ee22551");
+ check_base_class_offset(lv, (dd2551*), 0, "ee22551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22551.e");
+ test_class_info(&lv, &cd_ee22551);
+ dp->~ee22551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22551(Test_ee22551, "ee22551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22551C1Ev();
+extern void _ZN7ee22551D1Ev();
+Name_Map name_map_ee22551[] = {
+ NSPAIR(_ZN7ee22551C1Ev),
+ NSPAIR(_ZN7ee22551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee22551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN7ee225513fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee225513fooEv,_ZTv0_n12_N7ee225513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee225513fooEv,_ZThn24_N7ee225513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN7ee225513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225513fooEv,_ZTv0_n12_N7ee225513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee22551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee22551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee22551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee22551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee22551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee22551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee22551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee22551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee22551[] = {
+ {&(_ZTV7ee22551[4]), 4,15},
+ {&(_tg__ZTV6dd2551__7ee22551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee22551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee22551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee22551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee22551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee22551[3]), 3,4},
+ {&(_ZTV7ee22551[10]), 10,15},
+ {&(_ZTV7ee22551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee22551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee22551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22551[];
+extern VTBL_ENTRY _ZTV7ee22551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22551[];
+static VTBL_ENTRY alt_thunk_names782[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225513fooEv,_ZTv0_n12_N7ee225513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee225513fooEv,_ZThn24_N7ee225513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22551 = { "ee22551", // class name
+ bases_ee22551, 4,
+ &(vtc_ee22551[0]), // expected_vtbl_contents
+ &(vtt_ee22551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names782,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32551 : virtual dd2551 {
+ int e;
+ virtual void foo(); // _ZN7ee325513fooEv
+ ~ee32551(); // tgen
+ ee32551(); // tgen
+};
+//SIG(1 ee32551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32551 ::foo(){vfunc_called(this, "_ZN7ee325513fooEv");}
+ee32551 ::~ee32551(){ note_dtor("ee32551", this);} // tgen
+ee32551 ::ee32551(){ note_ctor("ee32551", this);} // tgen
+
+static void Test_ee32551()
+{
+ extern Class_Descriptor cd_ee32551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32551, buf);
+ ee32551 *dp, &lv = *(dp=new (buf) ee32551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee32551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(32,20), "ee32551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), ABISELECT(16,8), "ee32551");
+ check_base_class_offset(lv, (dd2551*), ABISELECT(16,8), "ee32551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32551.e");
+ test_class_info(&lv, &cd_ee32551);
+ dp->~ee32551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32551(Test_ee32551, "ee32551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32551C1Ev();
+extern void _ZN7ee32551D1Ev();
+Name_Map name_map_ee32551[] = {
+ NSPAIR(_ZN7ee32551C1Ev),
+ NSPAIR(_ZN7ee32551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee32551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32551[];
+extern void _ZN7ee325513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee325513fooEv,_ZTv0_n24_N7ee325513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325513fooEv,_ZThn8_N7ee325513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325513fooEv,_ZTv0_n12_N7ee325513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee325513fooEv,_ZThn28_N7ee325513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32551[0]),
+ (VTBL_ENTRY)&_ZN7ee325513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee325513fooEv,_ZTv0_n24_N7ee325513fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325513fooEv,_ZTv0_n12_N7ee325513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee32551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee32551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee32551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee32551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee32551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee32551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee32551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee32551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee32551[] = {
+ {&(_ZTV7ee32551[5]), 5,23},
+ {&(_ZTV7ee32551[12]), 12,23},
+ {&(_ZTV7ee32551[18]), 18,23},
+ {&(_ZTV7ee32551[22]), 22,23},
+ {&(_tg__ZTV6dd2551__7ee32551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee32551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee32551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee32551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee32551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee32551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee32551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee32551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32551[];
+extern VTBL_ENTRY _ZTV7ee32551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32551[];
+static VTBL_ENTRY alt_thunk_names783[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325513fooEv,_ZTv0_n12_N7ee325513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee325513fooEv,_ZThn28_N7ee325513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee325513fooEv,_ZTv0_n24_N7ee325513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325513fooEv,_ZThn8_N7ee325513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32551 = { "ee32551", // class name
+ bases_ee32551, 4,
+ &(vtc_ee32551[0]), // expected_vtbl_contents
+ &(vtt_ee32551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32551),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names783,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42551 : dd2551 {
+ int e;
+ virtual void bar(); // _ZN7ee425513barEv
+ ~ee42551(); // tgen
+ ee42551(); // tgen
+};
+//SIG(1 ee42551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42551 ::bar(){vfunc_called(this, "_ZN7ee425513barEv");}
+ee42551 ::~ee42551(){ note_dtor("ee42551", this);} // tgen
+ee42551 ::ee42551(){ note_ctor("ee42551", this);} // tgen
+
+static void Test_ee42551()
+{
+ extern Class_Descriptor cd_ee42551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42551, buf);
+ ee42551 *dp, &lv = *(dp=new (buf) ee42551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee42551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(24,16), "ee42551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), 0, "ee42551");
+ check_base_class_offset(lv, (dd2551*), 0, "ee42551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42551.e");
+ test_class_info(&lv, &cd_ee42551);
+ dp->~ee42551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42551(Test_ee42551, "ee42551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42551C1Ev();
+extern void _ZN7ee42551D1Ev();
+Name_Map name_map_ee42551[] = {
+ NSPAIR(_ZN7ee42551C1Ev),
+ NSPAIR(_ZN7ee42551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee42551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42551[];
+extern void _ZN7ee425513barEv();
+extern void _ZN6dd25513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee425513barEv,_ZTv0_n16_N7ee425513barEv)();
+extern void ABISELECT(_ZThn24_N7ee425513barEv,_ZThn16_N7ee425513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42551[0]),
+ (VTBL_ENTRY)&_ZN7ee425513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425513barEv,_ZTv0_n16_N7ee425513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee42551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee42551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee42551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee42551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee42551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee42551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee42551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee42551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee42551[] = {
+ {&(_ZTV7ee42551[4]), 4,15},
+ {&(_tg__ZTV6dd2551__7ee42551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee42551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee42551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee42551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee42551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee42551[3]), 3,4},
+ {&(_ZTV7ee42551[10]), 10,15},
+ {&(_ZTV7ee42551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee42551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee42551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42551[];
+extern VTBL_ENTRY _ZTV7ee42551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42551[];
+static VTBL_ENTRY alt_thunk_names784[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425513barEv,_ZTv0_n16_N7ee425513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425513barEv,_ZThn16_N7ee425513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42551 = { "ee42551", // class name
+ bases_ee42551, 4,
+ &(vtc_ee42551[0]), // expected_vtbl_contents
+ &(vtt_ee42551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names784,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52551 : virtual dd2551 {
+ int e;
+ virtual void bar(); // _ZN7ee525513barEv
+ ~ee52551(); // tgen
+ ee52551(); // tgen
+};
+//SIG(1 ee52551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52551 ::bar(){vfunc_called(this, "_ZN7ee525513barEv");}
+ee52551 ::~ee52551(){ note_dtor("ee52551", this);} // tgen
+ee52551 ::ee52551(){ note_ctor("ee52551", this);} // tgen
+
+static void Test_ee52551()
+{
+ extern Class_Descriptor cd_ee52551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52551, buf);
+ ee52551 *dp, &lv = *(dp=new (buf) ee52551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee52551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(32,20), "ee52551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), ABISELECT(16,8), "ee52551");
+ check_base_class_offset(lv, (dd2551*), ABISELECT(16,8), "ee52551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52551.e");
+ test_class_info(&lv, &cd_ee52551);
+ dp->~ee52551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52551(Test_ee52551, "ee52551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52551C1Ev();
+extern void _ZN7ee52551D1Ev();
+Name_Map name_map_ee52551[] = {
+ NSPAIR(_ZN7ee52551C1Ev),
+ NSPAIR(_ZN7ee52551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee52551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52551[];
+extern void _ZN7ee525513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee525513barEv,_ZTv0_n20_N7ee525513barEv)();
+extern void ABISELECT(_ZThn16_N7ee525513barEv,_ZThn8_N7ee525513barEv)() __attribute__((weak));
+extern void _ZN6dd25513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525513barEv,_ZTv0_n16_N7ee525513barEv)();
+extern void ABISELECT(_ZThn32_N7ee525513barEv,_ZThn20_N7ee525513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52551[0]),
+ (VTBL_ENTRY)&_ZN7ee525513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee525513barEv,_ZTv0_n20_N7ee525513barEv),
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525513barEv,_ZTv0_n16_N7ee525513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee52551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee52551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee52551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee52551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee52551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee52551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee52551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee52551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee52551[] = {
+ {&(_ZTV7ee52551[5]), 5,23},
+ {&(_ZTV7ee52551[12]), 12,23},
+ {&(_ZTV7ee52551[18]), 18,23},
+ {&(_ZTV7ee52551[22]), 22,23},
+ {&(_tg__ZTV6dd2551__7ee52551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee52551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee52551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee52551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee52551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee52551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee52551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee52551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52551[];
+extern VTBL_ENTRY _ZTV7ee52551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52551[];
+static VTBL_ENTRY alt_thunk_names785[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525513barEv,_ZTv0_n16_N7ee525513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525513barEv,_ZThn20_N7ee525513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee525513barEv,_ZTv0_n20_N7ee525513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525513barEv,_ZThn8_N7ee525513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52551 = { "ee52551", // class name
+ bases_ee52551, 4,
+ &(vtc_ee52551[0]), // expected_vtbl_contents
+ &(vtt_ee52551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52551),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names785,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62551 : dd2551 {
+ int e;
+ virtual void foo(); // _ZN7ee625513fooEv
+ virtual void bar(); // _ZN7ee625513barEv
+ ~ee62551(); // tgen
+ ee62551(); // tgen
+};
+//SIG(1 ee62551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62551 ::foo(){vfunc_called(this, "_ZN7ee625513fooEv");}
+void ee62551 ::bar(){vfunc_called(this, "_ZN7ee625513barEv");}
+ee62551 ::~ee62551(){ note_dtor("ee62551", this);} // tgen
+ee62551 ::ee62551(){ note_ctor("ee62551", this);} // tgen
+
+static void Test_ee62551()
+{
+ extern Class_Descriptor cd_ee62551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62551, buf);
+ ee62551 *dp, &lv = *(dp=new (buf) ee62551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee62551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(24,16), "ee62551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), 0, "ee62551");
+ check_base_class_offset(lv, (dd2551*), 0, "ee62551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62551.e");
+ test_class_info(&lv, &cd_ee62551);
+ dp->~ee62551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62551(Test_ee62551, "ee62551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62551C1Ev();
+extern void _ZN7ee62551D1Ev();
+Name_Map name_map_ee62551[] = {
+ NSPAIR(_ZN7ee62551C1Ev),
+ NSPAIR(_ZN7ee62551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee62551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62551[];
+extern void _ZN7ee625513barEv();
+extern void _ZN7ee625513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee625513barEv,_ZTv0_n16_N7ee625513barEv)();
+extern void ABISELECT(_ZThn24_N7ee625513barEv,_ZThn16_N7ee625513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee625513fooEv,_ZTv0_n12_N7ee625513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee625513fooEv,_ZThn24_N7ee625513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62551[0]),
+ (VTBL_ENTRY)&_ZN7ee625513barEv,
+ (VTBL_ENTRY)&_ZN7ee625513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625513barEv,_ZTv0_n16_N7ee625513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625513fooEv,_ZTv0_n12_N7ee625513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee62551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee62551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee62551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee62551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee62551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee62551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee62551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee62551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee62551[] = {
+ {&(_ZTV7ee62551[4]), 4,15},
+ {&(_tg__ZTV6dd2551__7ee62551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee62551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee62551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee62551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee62551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee62551[3]), 3,4},
+ {&(_ZTV7ee62551[10]), 10,15},
+ {&(_ZTV7ee62551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee62551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee62551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62551[];
+extern VTBL_ENTRY _ZTV7ee62551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62551[];
+static VTBL_ENTRY alt_thunk_names786[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25513fooEv,_ZThn24_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625513fooEv,_ZTv0_n12_N7ee625513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee625513fooEv,_ZThn24_N7ee625513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625513barEv,_ZTv0_n16_N7ee625513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625513barEv,_ZThn16_N7ee625513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62551 = { "ee62551", // class name
+ bases_ee62551, 4,
+ &(vtc_ee62551[0]), // expected_vtbl_contents
+ &(vtt_ee62551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names786,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72551 : virtual dd2551 {
+ int e;
+ virtual void foo(); // _ZN7ee725513fooEv
+ virtual void bar(); // _ZN7ee725513barEv
+ ~ee72551(); // tgen
+ ee72551(); // tgen
+};
+//SIG(1 ee72551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72551 ::foo(){vfunc_called(this, "_ZN7ee725513fooEv");}
+void ee72551 ::bar(){vfunc_called(this, "_ZN7ee725513barEv");}
+ee72551 ::~ee72551(){ note_dtor("ee72551", this);} // tgen
+ee72551 ::ee72551(){ note_ctor("ee72551", this);} // tgen
+
+static void Test_ee72551()
+{
+ extern Class_Descriptor cd_ee72551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72551, buf);
+ ee72551 *dp, &lv = *(dp=new (buf) ee72551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee72551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd2551*), ABISELECT(32,20), "ee72551");
+ check_base_class_offset(lv, (cc551*)(dd2551*), ABISELECT(16,8), "ee72551");
+ check_base_class_offset(lv, (dd2551*), ABISELECT(16,8), "ee72551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72551.e");
+ test_class_info(&lv, &cd_ee72551);
+ dp->~ee72551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72551(Test_ee72551, "ee72551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72551C1Ev();
+extern void _ZN7ee72551D1Ev();
+Name_Map name_map_ee72551[] = {
+ NSPAIR(_ZN7ee72551C1Ev),
+ NSPAIR(_ZN7ee72551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd2551;
+extern VTBL_ENTRY _ZTI6dd2551[];
+extern VTBL_ENTRY _ZTV6dd2551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2551[];
+static Base_Class bases_ee72551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72551[];
+extern void _ZN7ee725513fooEv();
+extern void _ZN7ee725513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee725513barEv,_ZTv0_n20_N7ee725513barEv)();
+extern void ABISELECT(_ZThn16_N7ee725513barEv,_ZThn8_N7ee725513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee725513fooEv,_ZTv0_n24_N7ee725513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725513fooEv,_ZThn8_N7ee725513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725513barEv,_ZTv0_n16_N7ee725513barEv)();
+extern void ABISELECT(_ZThn32_N7ee725513barEv,_ZThn20_N7ee725513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725513fooEv,_ZTv0_n12_N7ee725513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee725513fooEv,_ZThn28_N7ee725513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72551[0]),
+ (VTBL_ENTRY)&_ZN7ee725513fooEv,
+ (VTBL_ENTRY)&_ZN7ee725513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725513barEv,_ZTv0_n20_N7ee725513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee725513fooEv,_ZTv0_n24_N7ee725513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725513barEv,_ZTv0_n16_N7ee725513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725513fooEv,_ZTv0_n12_N7ee725513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72551[];
+extern void _ZN5cc5513barEv();
+extern void _ZN6dd25513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2551__7ee72551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ (VTBL_ENTRY)&_ZN6dd25513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd2551__7ee72551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd2551__7ee72551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd2551__7ee72551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2551__7ee72551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2551__7ee72551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee72551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee72551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee72551[] = {
+ {&(_ZTV7ee72551[5]), 5,24},
+ {&(_ZTV7ee72551[13]), 13,24},
+ {&(_ZTV7ee72551[19]), 19,24},
+ {&(_ZTV7ee72551[23]), 23,24},
+ {&(_tg__ZTV6dd2551__7ee72551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd2551__7ee72551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd2551__7ee72551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd2551__7ee72551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2551__7ee72551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2551__7ee72551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee72551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee72551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72551[];
+extern VTBL_ENTRY _ZTV7ee72551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72551[];
+static VTBL_ENTRY alt_thunk_names787[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25513fooEv,_ZTv0_n12_N6dd25513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25513fooEv,_ZThn20_N6dd25513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725513fooEv,_ZTv0_n12_N7ee725513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee725513fooEv,_ZThn28_N7ee725513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725513barEv,_ZTv0_n16_N7ee725513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725513barEv,_ZThn20_N7ee725513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee725513fooEv,_ZTv0_n24_N7ee725513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725513fooEv,_ZThn8_N7ee725513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725513barEv,_ZTv0_n20_N7ee725513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725513barEv,_ZThn8_N7ee725513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72551 = { "ee72551", // class name
+ bases_ee72551, 4,
+ &(vtc_ee72551[0]), // expected_vtbl_contents
+ &(vtt_ee72551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72551),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names787,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3551 : virtual cc551 {
+ int d;
+ virtual void foo(); // _ZN6dd35513fooEv
+ ~dd3551(); // tgen
+ dd3551(); // tgen
+};
+//SIG(-1 dd3551) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3551 ::foo(){vfunc_called(this, "_ZN6dd35513fooEv");}
+dd3551 ::~dd3551(){ note_dtor("dd3551", this);} // tgen
+dd3551 ::dd3551(){ note_ctor("dd3551", this);} // tgen
+
+static void Test_dd3551()
+{
+ extern Class_Descriptor cd_dd3551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3551, buf);
+ dd3551 *dp, &lv = *(dp=new (buf) dd3551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd3551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,16), "dd3551");
+ check_base_class_offset(lv, (cc551*), ABISELECT(16,8), "dd3551");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3551.d");
+ test_class_info(&lv, &cd_dd3551);
+ dp->~dd3551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3551(Test_dd3551, "dd3551", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3551C1Ev();
+extern void _ZN6dd3551D1Ev();
+Name_Map name_map_dd3551[] = {
+ NSPAIR(_ZN6dd3551C1Ev),
+ NSPAIR(_ZN6dd3551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd3551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd3551[];
+extern void _ZN6dd35513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd3551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd3551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd3551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3551[] = {
+ {&(_ZTV6dd3551[5]), 5,21},
+ {&(_ZTV6dd3551[11]), 11,21},
+ {&(_ZTV6dd3551[16]), 16,21},
+ {&(_ZTV6dd3551[20]), 20,21},
+ {&(_tg__ZTV5cc551__6dd3551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd3551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd3551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd3551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd3551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static VTBL_ENTRY alt_thunk_names788[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3551 = { "dd3551", // class name
+ bases_dd3551, 3,
+ &(vtc_dd3551[0]), // expected_vtbl_contents
+ &(vtt_dd3551[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3551),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names788,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03551 : dd3551 {
+ int e;
+ ~ee03551(); // tgen
+ ee03551(); // tgen
+};
+//SIG(1 ee03551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03551 ::~ee03551(){ note_dtor("ee03551", this);} // tgen
+ee03551 ::ee03551(){ note_ctor("ee03551", this);} // tgen
+
+static void Test_ee03551()
+{
+ extern Class_Descriptor cd_ee03551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03551, buf);
+ ee03551 *dp, &lv = *(dp=new (buf) ee03551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee03551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee03551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(16,12), "ee03551");
+ check_base_class_offset(lv, (dd3551*), 0, "ee03551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03551.e");
+ test_class_info(&lv, &cd_ee03551);
+ dp->~ee03551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03551(Test_ee03551, "ee03551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03551C1Ev();
+extern void _ZN7ee03551D1Ev();
+Name_Map name_map_ee03551[] = {
+ NSPAIR(_ZN7ee03551C1Ev),
+ NSPAIR(_ZN7ee03551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee03551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03551[];
+extern void _ZN6dd35513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee03551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee03551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee03551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee03551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee03551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee03551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee03551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee03551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee03551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03551[] = {
+ {&(_ZTV7ee03551[5]), 5,21},
+ {&(_tg__ZTV6dd3551__7ee03551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee03551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee03551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee03551[3]), 3,4},
+ {&(_ZTV7ee03551[11]), 11,21},
+ {&(_ZTV7ee03551[16]), 16,21},
+ {&(_ZTV7ee03551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee03551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee03551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee03551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee03551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee03551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03551[];
+extern VTBL_ENTRY _ZTV7ee03551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03551[];
+static VTBL_ENTRY alt_thunk_names789[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03551 = { "ee03551", // class name
+ bases_ee03551, 4,
+ &(vtc_ee03551[0]), // expected_vtbl_contents
+ &(vtt_ee03551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names789,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13551 : virtual dd3551 {
+ int e;
+ ~ee13551(); // tgen
+ ee13551(); // tgen
+};
+//SIG(1 ee13551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13551 ::~ee13551(){ note_dtor("ee13551", this);} // tgen
+ee13551 ::ee13551(){ note_ctor("ee13551", this);} // tgen
+
+static void Test_ee13551()
+{
+ extern Class_Descriptor cd_ee13551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13551, buf);
+ ee13551 *dp, &lv = *(dp=new (buf) ee13551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee13551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee13551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(32,16), "ee13551");
+ check_base_class_offset(lv, (dd3551*), ABISELECT(16,8), "ee13551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13551.e");
+ test_class_info(&lv, &cd_ee13551);
+ dp->~ee13551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13551(Test_ee13551, "ee13551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13551C1Ev();
+extern void _ZN7ee13551D1Ev();
+Name_Map name_map_ee13551[] = {
+ NSPAIR(_ZN7ee13551C1Ev),
+ NSPAIR(_ZN7ee13551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee13551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13551[];
+extern void _ZN6dd35513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13551[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee13551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee13551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee13551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee13551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee13551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee13551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee13551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee13551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee13551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13551[] = {
+ {&(_ZTV7ee13551[6]), 6,28},
+ {&(_ZTV7ee13551[12]), 12,28},
+ {&(_ZTV7ee13551[18]), 18,28},
+ {&(_ZTV7ee13551[23]), 23,28},
+ {&(_ZTV7ee13551[27]), 27,28},
+ {&(_tg__ZTV6dd3551__7ee13551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee13551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee13551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee13551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee13551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee13551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee13551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee13551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee13551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13551[];
+extern VTBL_ENTRY _ZTV7ee13551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13551[];
+static VTBL_ENTRY alt_thunk_names790[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13551 = { "ee13551", // class name
+ bases_ee13551, 4,
+ &(vtc_ee13551[0]), // expected_vtbl_contents
+ &(vtt_ee13551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13551),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names790,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23551 : dd3551 {
+ int e;
+ virtual void foo(); // _ZN7ee235513fooEv
+ ~ee23551(); // tgen
+ ee23551(); // tgen
+};
+//SIG(1 ee23551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23551 ::foo(){vfunc_called(this, "_ZN7ee235513fooEv");}
+ee23551 ::~ee23551(){ note_dtor("ee23551", this);} // tgen
+ee23551 ::ee23551(){ note_ctor("ee23551", this);} // tgen
+
+static void Test_ee23551()
+{
+ extern Class_Descriptor cd_ee23551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23551, buf);
+ ee23551 *dp, &lv = *(dp=new (buf) ee23551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee23551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee23551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(16,12), "ee23551");
+ check_base_class_offset(lv, (dd3551*), 0, "ee23551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23551.e");
+ test_class_info(&lv, &cd_ee23551);
+ dp->~ee23551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23551(Test_ee23551, "ee23551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23551C1Ev();
+extern void _ZN7ee23551D1Ev();
+Name_Map name_map_ee23551[] = {
+ NSPAIR(_ZN7ee23551C1Ev),
+ NSPAIR(_ZN7ee23551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee23551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23551[];
+extern void _ZN7ee235513fooEv();
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee235513fooEv,_ZTv0_n12_N7ee235513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee235513fooEv,_ZThn28_N7ee235513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23551[0]),
+ (VTBL_ENTRY)&_ZN7ee235513fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235513fooEv,_ZTv0_n12_N7ee235513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee23551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee23551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee23551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee23551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee23551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee23551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee23551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee23551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee23551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23551[] = {
+ {&(_ZTV7ee23551[5]), 5,21},
+ {&(_tg__ZTV6dd3551__7ee23551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee23551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee23551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee23551[3]), 3,4},
+ {&(_ZTV7ee23551[11]), 11,21},
+ {&(_ZTV7ee23551[16]), 16,21},
+ {&(_ZTV7ee23551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee23551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee23551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee23551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee23551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee23551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23551[];
+extern VTBL_ENTRY _ZTV7ee23551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23551[];
+static VTBL_ENTRY alt_thunk_names791[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235513fooEv,_ZTv0_n12_N7ee235513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee235513fooEv,_ZThn28_N7ee235513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23551 = { "ee23551", // class name
+ bases_ee23551, 4,
+ &(vtc_ee23551[0]), // expected_vtbl_contents
+ &(vtt_ee23551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names791,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33551 : virtual dd3551 {
+ int e;
+ virtual void foo(); // _ZN7ee335513fooEv
+ ~ee33551(); // tgen
+ ee33551(); // tgen
+};
+//SIG(1 ee33551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33551 ::foo(){vfunc_called(this, "_ZN7ee335513fooEv");}
+ee33551 ::~ee33551(){ note_dtor("ee33551", this);} // tgen
+ee33551 ::ee33551(){ note_ctor("ee33551", this);} // tgen
+
+static void Test_ee33551()
+{
+ extern Class_Descriptor cd_ee33551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33551, buf);
+ ee33551 *dp, &lv = *(dp=new (buf) ee33551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee33551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee33551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(32,16), "ee33551");
+ check_base_class_offset(lv, (dd3551*), ABISELECT(16,8), "ee33551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33551.e");
+ test_class_info(&lv, &cd_ee33551);
+ dp->~ee33551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33551(Test_ee33551, "ee33551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33551C1Ev();
+extern void _ZN7ee33551D1Ev();
+Name_Map name_map_ee33551[] = {
+ NSPAIR(_ZN7ee33551C1Ev),
+ NSPAIR(_ZN7ee33551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee33551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33551[];
+extern void _ZN7ee335513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee335513fooEv,_ZTv0_n24_N7ee335513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335513fooEv,_ZThn8_N7ee335513fooEv)() __attribute__((weak));
+extern void _ZN5cc5513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee335513fooEv,_ZTv0_n12_N7ee335513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee335513fooEv,_ZThn32_N7ee335513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33551[0]),
+ (VTBL_ENTRY)&_ZN7ee335513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee335513fooEv,_ZTv0_n24_N7ee335513fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335513fooEv,_ZTv0_n12_N7ee335513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee33551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee33551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee33551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee33551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee33551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee33551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee33551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee33551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee33551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33551[] = {
+ {&(_ZTV7ee33551[6]), 6,29},
+ {&(_ZTV7ee33551[13]), 13,29},
+ {&(_ZTV7ee33551[19]), 19,29},
+ {&(_ZTV7ee33551[24]), 24,29},
+ {&(_ZTV7ee33551[28]), 28,29},
+ {&(_tg__ZTV6dd3551__7ee33551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee33551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee33551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee33551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee33551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee33551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee33551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee33551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee33551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33551[];
+extern VTBL_ENTRY _ZTV7ee33551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33551[];
+static VTBL_ENTRY alt_thunk_names792[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335513fooEv,_ZTv0_n12_N7ee335513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee335513fooEv,_ZThn32_N7ee335513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee335513fooEv,_ZTv0_n24_N7ee335513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335513fooEv,_ZThn8_N7ee335513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33551 = { "ee33551", // class name
+ bases_ee33551, 4,
+ &(vtc_ee33551[0]), // expected_vtbl_contents
+ &(vtt_ee33551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33551),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names792,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43551 : dd3551 {
+ int e;
+ virtual void bar(); // _ZN7ee435513barEv
+ ~ee43551(); // tgen
+ ee43551(); // tgen
+};
+//SIG(1 ee43551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43551 ::bar(){vfunc_called(this, "_ZN7ee435513barEv");}
+ee43551 ::~ee43551(){ note_dtor("ee43551", this);} // tgen
+ee43551 ::ee43551(){ note_ctor("ee43551", this);} // tgen
+
+static void Test_ee43551()
+{
+ extern Class_Descriptor cd_ee43551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43551, buf);
+ ee43551 *dp, &lv = *(dp=new (buf) ee43551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee43551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee43551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(16,12), "ee43551");
+ check_base_class_offset(lv, (dd3551*), 0, "ee43551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43551.e");
+ test_class_info(&lv, &cd_ee43551);
+ dp->~ee43551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43551(Test_ee43551, "ee43551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43551C1Ev();
+extern void _ZN7ee43551D1Ev();
+Name_Map name_map_ee43551[] = {
+ NSPAIR(_ZN7ee43551C1Ev),
+ NSPAIR(_ZN7ee43551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee43551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43551[];
+extern void _ZN6dd35513fooEv();
+extern void _ZN7ee435513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee435513barEv,_ZTv0_n20_N7ee435513barEv)();
+extern void ABISELECT(_ZThn16_N7ee435513barEv,_ZThn12_N7ee435513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435513barEv,_ZTv0_n16_N7ee435513barEv)();
+extern void ABISELECT(_ZThn32_N7ee435513barEv,_ZThn20_N7ee435513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+ (VTBL_ENTRY)&_ZN7ee435513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee435513barEv,_ZTv0_n20_N7ee435513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435513barEv,_ZTv0_n16_N7ee435513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee43551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee43551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee43551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee43551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee43551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee43551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee43551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee43551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee43551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43551[] = {
+ {&(_ZTV7ee43551[5]), 5,22},
+ {&(_tg__ZTV6dd3551__7ee43551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee43551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee43551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee43551[3]), 3,4},
+ {&(_ZTV7ee43551[12]), 12,22},
+ {&(_ZTV7ee43551[17]), 17,22},
+ {&(_ZTV7ee43551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee43551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee43551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee43551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee43551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee43551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43551[];
+extern VTBL_ENTRY _ZTV7ee43551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43551[];
+static VTBL_ENTRY alt_thunk_names793[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435513barEv,_ZTv0_n16_N7ee435513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435513barEv,_ZThn20_N7ee435513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee435513barEv,_ZTv0_n20_N7ee435513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435513barEv,_ZThn12_N7ee435513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43551 = { "ee43551", // class name
+ bases_ee43551, 4,
+ &(vtc_ee43551[0]), // expected_vtbl_contents
+ &(vtt_ee43551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names793,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53551 : virtual dd3551 {
+ int e;
+ virtual void bar(); // _ZN7ee535513barEv
+ ~ee53551(); // tgen
+ ee53551(); // tgen
+};
+//SIG(1 ee53551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53551 ::bar(){vfunc_called(this, "_ZN7ee535513barEv");}
+ee53551 ::~ee53551(){ note_dtor("ee53551", this);} // tgen
+ee53551 ::ee53551(){ note_ctor("ee53551", this);} // tgen
+
+static void Test_ee53551()
+{
+ extern Class_Descriptor cd_ee53551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53551, buf);
+ ee53551 *dp, &lv = *(dp=new (buf) ee53551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee53551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee53551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(32,16), "ee53551");
+ check_base_class_offset(lv, (dd3551*), ABISELECT(16,8), "ee53551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53551.e");
+ test_class_info(&lv, &cd_ee53551);
+ dp->~ee53551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53551(Test_ee53551, "ee53551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53551C1Ev();
+extern void _ZN7ee53551D1Ev();
+Name_Map name_map_ee53551[] = {
+ NSPAIR(_ZN7ee53551C1Ev),
+ NSPAIR(_ZN7ee53551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee53551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53551[];
+extern void _ZN7ee535513barEv();
+extern void _ZN6dd35513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee535513barEv,_ZTv0_n20_N7ee535513barEv)();
+extern void ABISELECT(_ZThn32_N7ee535513barEv,_ZThn16_N7ee535513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535513barEv,_ZTv0_n16_N7ee535513barEv)();
+extern void ABISELECT(_ZThn48_N7ee535513barEv,_ZThn24_N7ee535513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53551[0]),
+ (VTBL_ENTRY)&_ZN7ee535513barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee535513barEv,_ZTv0_n20_N7ee535513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535513barEv,_ZTv0_n16_N7ee535513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee53551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee53551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee53551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee53551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee53551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee53551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee53551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee53551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee53551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53551[] = {
+ {&(_ZTV7ee53551[6]), 6,29},
+ {&(_ZTV7ee53551[13]), 13,29},
+ {&(_ZTV7ee53551[19]), 19,29},
+ {&(_ZTV7ee53551[24]), 24,29},
+ {&(_ZTV7ee53551[28]), 28,29},
+ {&(_tg__ZTV6dd3551__7ee53551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee53551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee53551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee53551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee53551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee53551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee53551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee53551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee53551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53551[];
+extern VTBL_ENTRY _ZTV7ee53551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53551[];
+static VTBL_ENTRY alt_thunk_names794[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535513barEv,_ZTv0_n16_N7ee535513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535513barEv,_ZThn24_N7ee535513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee535513barEv,_ZTv0_n20_N7ee535513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535513barEv,_ZThn16_N7ee535513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53551 = { "ee53551", // class name
+ bases_ee53551, 4,
+ &(vtc_ee53551[0]), // expected_vtbl_contents
+ &(vtt_ee53551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53551),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names794,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63551 : dd3551 {
+ int e;
+ virtual void foo(); // _ZN7ee635513fooEv
+ virtual void bar(); // _ZN7ee635513barEv
+ ~ee63551(); // tgen
+ ee63551(); // tgen
+};
+//SIG(1 ee63551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63551 ::foo(){vfunc_called(this, "_ZN7ee635513fooEv");}
+void ee63551 ::bar(){vfunc_called(this, "_ZN7ee635513barEv");}
+ee63551 ::~ee63551(){ note_dtor("ee63551", this);} // tgen
+ee63551 ::ee63551(){ note_ctor("ee63551", this);} // tgen
+
+static void Test_ee63551()
+{
+ extern Class_Descriptor cd_ee63551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63551, buf);
+ ee63551 *dp, &lv = *(dp=new (buf) ee63551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee63551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee63551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(16,12), "ee63551");
+ check_base_class_offset(lv, (dd3551*), 0, "ee63551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63551.e");
+ test_class_info(&lv, &cd_ee63551);
+ dp->~ee63551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63551(Test_ee63551, "ee63551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63551C1Ev();
+extern void _ZN7ee63551D1Ev();
+Name_Map name_map_ee63551[] = {
+ NSPAIR(_ZN7ee63551C1Ev),
+ NSPAIR(_ZN7ee63551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee63551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63551[];
+extern void _ZN7ee635513fooEv();
+extern void _ZN7ee635513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee635513barEv,_ZTv0_n20_N7ee635513barEv)();
+extern void ABISELECT(_ZThn16_N7ee635513barEv,_ZThn12_N7ee635513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635513barEv,_ZTv0_n16_N7ee635513barEv)();
+extern void ABISELECT(_ZThn32_N7ee635513barEv,_ZThn20_N7ee635513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635513fooEv,_ZTv0_n12_N7ee635513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee635513fooEv,_ZThn28_N7ee635513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63551[0]),
+ (VTBL_ENTRY)&_ZN7ee635513fooEv,
+ (VTBL_ENTRY)&_ZN7ee635513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee635513barEv,_ZTv0_n20_N7ee635513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635513barEv,_ZTv0_n16_N7ee635513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635513fooEv,_ZTv0_n12_N7ee635513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee63551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee63551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee63551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee63551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee63551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee63551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee63551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee63551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee63551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63551[] = {
+ {&(_ZTV7ee63551[5]), 5,22},
+ {&(_tg__ZTV6dd3551__7ee63551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee63551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee63551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee63551[3]), 3,4},
+ {&(_ZTV7ee63551[12]), 12,22},
+ {&(_ZTV7ee63551[17]), 17,22},
+ {&(_ZTV7ee63551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee63551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee63551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee63551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee63551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee63551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63551[];
+extern VTBL_ENTRY _ZTV7ee63551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63551[];
+static VTBL_ENTRY alt_thunk_names795[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn28_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635513fooEv,_ZTv0_n12_N7ee635513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee635513fooEv,_ZThn28_N7ee635513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635513barEv,_ZTv0_n16_N7ee635513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635513barEv,_ZThn20_N7ee635513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee635513barEv,_ZTv0_n20_N7ee635513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635513barEv,_ZThn12_N7ee635513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63551 = { "ee63551", // class name
+ bases_ee63551, 4,
+ &(vtc_ee63551[0]), // expected_vtbl_contents
+ &(vtt_ee63551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names795,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73551 : virtual dd3551 {
+ int e;
+ virtual void foo(); // _ZN7ee735513fooEv
+ virtual void bar(); // _ZN7ee735513barEv
+ ~ee73551(); // tgen
+ ee73551(); // tgen
+};
+//SIG(1 ee73551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73551 ::foo(){vfunc_called(this, "_ZN7ee735513fooEv");}
+void ee73551 ::bar(){vfunc_called(this, "_ZN7ee735513barEv");}
+ee73551 ::~ee73551(){ note_dtor("ee73551", this);} // tgen
+ee73551 ::ee73551(){ note_ctor("ee73551", this);} // tgen
+
+static void Test_ee73551()
+{
+ extern Class_Descriptor cd_ee73551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73551, buf);
+ ee73551 *dp, &lv = *(dp=new (buf) ee73551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee73551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee73551");
+ check_base_class_offset(lv, (cc551*)(dd3551*), ABISELECT(32,16), "ee73551");
+ check_base_class_offset(lv, (dd3551*), ABISELECT(16,8), "ee73551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73551.e");
+ test_class_info(&lv, &cd_ee73551);
+ dp->~ee73551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73551(Test_ee73551, "ee73551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73551C1Ev();
+extern void _ZN7ee73551D1Ev();
+Name_Map name_map_ee73551[] = {
+ NSPAIR(_ZN7ee73551C1Ev),
+ NSPAIR(_ZN7ee73551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd3551;
+extern VTBL_ENTRY _ZTI6dd3551[];
+extern VTBL_ENTRY _ZTV6dd3551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3551[];
+static Base_Class bases_ee73551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3551, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73551[];
+extern void _ZN7ee735513fooEv();
+extern void _ZN7ee735513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee735513fooEv,_ZTv0_n24_N7ee735513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735513fooEv,_ZThn8_N7ee735513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee735513barEv,_ZTv0_n20_N7ee735513barEv)();
+extern void ABISELECT(_ZThn32_N7ee735513barEv,_ZThn16_N7ee735513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735513barEv,_ZTv0_n16_N7ee735513barEv)();
+extern void ABISELECT(_ZThn48_N7ee735513barEv,_ZThn24_N7ee735513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735513fooEv,_ZTv0_n12_N7ee735513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee735513fooEv,_ZThn32_N7ee735513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73551[0]),
+ (VTBL_ENTRY)&_ZN7ee735513fooEv,
+ (VTBL_ENTRY)&_ZN7ee735513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee735513fooEv,_ZTv0_n24_N7ee735513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735513barEv,_ZTv0_n20_N7ee735513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735513barEv,_ZTv0_n16_N7ee735513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735513fooEv,_ZTv0_n12_N7ee735513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73551[];
+extern void _ZN6dd35513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3551__7ee73551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN6dd35513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd3551__7ee73551[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3551__7ee73551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3551__7ee73551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee73551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee73551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee73551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee73551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee73551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73551[] = {
+ {&(_ZTV7ee73551[6]), 6,30},
+ {&(_ZTV7ee73551[14]), 14,30},
+ {&(_ZTV7ee73551[20]), 20,30},
+ {&(_ZTV7ee73551[25]), 25,30},
+ {&(_ZTV7ee73551[29]), 29,30},
+ {&(_tg__ZTV6dd3551__7ee73551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd3551__7ee73551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd3551__7ee73551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3551__7ee73551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee73551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee73551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee73551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee73551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee73551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73551[];
+extern VTBL_ENTRY _ZTV7ee73551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73551[];
+static VTBL_ENTRY alt_thunk_names796[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35513fooEv,_ZTv0_n12_N6dd35513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35513fooEv,_ZThn24_N6dd35513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735513fooEv,_ZTv0_n12_N7ee735513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee735513fooEv,_ZThn32_N7ee735513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735513barEv,_ZTv0_n16_N7ee735513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735513barEv,_ZThn24_N7ee735513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735513barEv,_ZTv0_n20_N7ee735513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735513barEv,_ZThn16_N7ee735513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee735513fooEv,_ZTv0_n24_N7ee735513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735513fooEv,_ZThn8_N7ee735513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73551 = { "ee73551", // class name
+ bases_ee73551, 4,
+ &(vtc_ee73551[0]), // expected_vtbl_contents
+ &(vtt_ee73551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73551),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names796,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4551 : cc551 {
+ int d;
+ virtual void bar(); // _ZN6dd45513barEv
+ ~dd4551(); // tgen
+ dd4551(); // tgen
+};
+//SIG(-1 dd4551) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4551 ::bar(){vfunc_called(this, "_ZN6dd45513barEv");}
+dd4551 ::~dd4551(){ note_dtor("dd4551", this);} // tgen
+dd4551 ::dd4551(){ note_ctor("dd4551", this);} // tgen
+
+static void Test_dd4551()
+{
+ extern Class_Descriptor cd_dd4551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4551, buf);
+ dd4551 *dp, &lv = *(dp=new (buf) dd4551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd4551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(16,12), "dd4551");
+ check_base_class_offset(lv, (cc551*), 0, "dd4551");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4551.d");
+ test_class_info(&lv, &cd_dd4551);
+ dp->~dd4551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4551(Test_dd4551, "dd4551", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4551C1Ev();
+extern void _ZN6dd4551D1Ev();
+Name_Map name_map_dd4551[] = {
+ NSPAIR(_ZN6dd4551C1Ev),
+ NSPAIR(_ZN6dd4551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd4551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern void _ZN6dd45513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd4551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd4551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd4551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd4551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd4551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4551[] = {
+ {&(_ZTV6dd4551[4]), 4,14},
+ {&(_tg__ZTV5cc551__6dd4551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd4551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd4551[3]), 3,4},
+ {&(_ZTV6dd4551[9]), 9,14},
+ {&(_ZTV6dd4551[13]), 13,14},
+ {&(_tg__ZTV4bb51__6dd4551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd4551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static VTBL_ENTRY alt_thunk_names797[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4551 = { "dd4551", // class name
+ bases_dd4551, 3,
+ &(vtc_dd4551[0]), // expected_vtbl_contents
+ &(vtt_dd4551[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4551),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names797,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04551 : dd4551 {
+ int e;
+ ~ee04551(); // tgen
+ ee04551(); // tgen
+};
+//SIG(1 ee04551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04551 ::~ee04551(){ note_dtor("ee04551", this);} // tgen
+ee04551 ::ee04551(){ note_ctor("ee04551", this);} // tgen
+
+static void Test_ee04551()
+{
+ extern Class_Descriptor cd_ee04551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04551, buf);
+ ee04551 *dp, &lv = *(dp=new (buf) ee04551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee04551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(24,16), "ee04551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), 0, "ee04551");
+ check_base_class_offset(lv, (dd4551*), 0, "ee04551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04551.e");
+ test_class_info(&lv, &cd_ee04551);
+ dp->~ee04551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04551(Test_ee04551, "ee04551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04551C1Ev();
+extern void _ZN7ee04551D1Ev();
+Name_Map name_map_ee04551[] = {
+ NSPAIR(_ZN7ee04551C1Ev),
+ NSPAIR(_ZN7ee04551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee04551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04551[];
+extern void _ZN6dd45513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee04551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee04551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee04551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee04551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee04551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee04551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee04551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee04551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee04551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee04551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04551[] = {
+ {&(_ZTV7ee04551[4]), 4,14},
+ {&(_tg__ZTV6dd4551__7ee04551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee04551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee04551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee04551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee04551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee04551[3]), 3,4},
+ {&(_ZTV7ee04551[9]), 9,14},
+ {&(_ZTV7ee04551[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee04551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee04551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04551[];
+extern VTBL_ENTRY _ZTV7ee04551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04551[];
+static VTBL_ENTRY alt_thunk_names798[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04551 = { "ee04551", // class name
+ bases_ee04551, 4,
+ &(vtc_ee04551[0]), // expected_vtbl_contents
+ &(vtt_ee04551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names798,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14551 : virtual dd4551 {
+ int e;
+ ~ee14551(); // tgen
+ ee14551(); // tgen
+};
+//SIG(1 ee14551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14551 ::~ee14551(){ note_dtor("ee14551", this);} // tgen
+ee14551 ::ee14551(){ note_ctor("ee14551", this);} // tgen
+
+static void Test_ee14551()
+{
+ extern Class_Descriptor cd_ee14551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14551, buf);
+ ee14551 *dp, &lv = *(dp=new (buf) ee14551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee14551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(32,20), "ee14551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), ABISELECT(16,8), "ee14551");
+ check_base_class_offset(lv, (dd4551*), ABISELECT(16,8), "ee14551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14551.e");
+ test_class_info(&lv, &cd_ee14551);
+ dp->~ee14551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14551(Test_ee14551, "ee14551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14551C1Ev();
+extern void _ZN7ee14551D1Ev();
+Name_Map name_map_ee14551[] = {
+ NSPAIR(_ZN7ee14551C1Ev),
+ NSPAIR(_ZN7ee14551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee14551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14551[];
+extern void _ZN6dd45513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee14551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14551[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee14551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee14551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee14551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee14551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee14551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee14551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee14551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee14551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee14551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14551[] = {
+ {&(_ZTV7ee14551[5]), 5,20},
+ {&(_ZTV7ee14551[10]), 10,20},
+ {&(_ZTV7ee14551[15]), 15,20},
+ {&(_ZTV7ee14551[19]), 19,20},
+ {&(_tg__ZTV6dd4551__7ee14551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee14551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee14551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee14551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee14551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee14551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee14551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee14551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14551[];
+extern VTBL_ENTRY _ZTV7ee14551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14551[];
+static VTBL_ENTRY alt_thunk_names799[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14551 = { "ee14551", // class name
+ bases_ee14551, 4,
+ &(vtc_ee14551[0]), // expected_vtbl_contents
+ &(vtt_ee14551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14551),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names799,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24551 : dd4551 {
+ int e;
+ virtual void foo(); // _ZN7ee245513fooEv
+ ~ee24551(); // tgen
+ ee24551(); // tgen
+};
+//SIG(1 ee24551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24551 ::foo(){vfunc_called(this, "_ZN7ee245513fooEv");}
+ee24551 ::~ee24551(){ note_dtor("ee24551", this);} // tgen
+ee24551 ::ee24551(){ note_ctor("ee24551", this);} // tgen
+
+static void Test_ee24551()
+{
+ extern Class_Descriptor cd_ee24551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24551, buf);
+ ee24551 *dp, &lv = *(dp=new (buf) ee24551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee24551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(24,16), "ee24551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), 0, "ee24551");
+ check_base_class_offset(lv, (dd4551*), 0, "ee24551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24551.e");
+ test_class_info(&lv, &cd_ee24551);
+ dp->~ee24551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24551(Test_ee24551, "ee24551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24551C1Ev();
+extern void _ZN7ee24551D1Ev();
+Name_Map name_map_ee24551[] = {
+ NSPAIR(_ZN7ee24551C1Ev),
+ NSPAIR(_ZN7ee24551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee24551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24551[];
+extern void _ZN6dd45513barEv();
+extern void _ZN7ee245513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee245513fooEv,_ZTv0_n12_N7ee245513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee245513fooEv,_ZThn24_N7ee245513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+ (VTBL_ENTRY)&_ZN7ee245513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245513fooEv,_ZTv0_n12_N7ee245513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee24551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee24551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee24551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee24551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee24551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee24551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee24551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee24551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24551[] = {
+ {&(_ZTV7ee24551[4]), 4,15},
+ {&(_tg__ZTV6dd4551__7ee24551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee24551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee24551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee24551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee24551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee24551[3]), 3,4},
+ {&(_ZTV7ee24551[10]), 10,15},
+ {&(_ZTV7ee24551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee24551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee24551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24551[];
+extern VTBL_ENTRY _ZTV7ee24551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24551[];
+static VTBL_ENTRY alt_thunk_names800[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245513fooEv,_ZTv0_n12_N7ee245513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee245513fooEv,_ZThn24_N7ee245513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24551 = { "ee24551", // class name
+ bases_ee24551, 4,
+ &(vtc_ee24551[0]), // expected_vtbl_contents
+ &(vtt_ee24551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names800,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34551 : virtual dd4551 {
+ int e;
+ virtual void foo(); // _ZN7ee345513fooEv
+ ~ee34551(); // tgen
+ ee34551(); // tgen
+};
+//SIG(1 ee34551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34551 ::foo(){vfunc_called(this, "_ZN7ee345513fooEv");}
+ee34551 ::~ee34551(){ note_dtor("ee34551", this);} // tgen
+ee34551 ::ee34551(){ note_ctor("ee34551", this);} // tgen
+
+static void Test_ee34551()
+{
+ extern Class_Descriptor cd_ee34551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34551, buf);
+ ee34551 *dp, &lv = *(dp=new (buf) ee34551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee34551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(32,20), "ee34551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), ABISELECT(16,8), "ee34551");
+ check_base_class_offset(lv, (dd4551*), ABISELECT(16,8), "ee34551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34551.e");
+ test_class_info(&lv, &cd_ee34551);
+ dp->~ee34551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34551(Test_ee34551, "ee34551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34551C1Ev();
+extern void _ZN7ee34551D1Ev();
+Name_Map name_map_ee34551[] = {
+ NSPAIR(_ZN7ee34551C1Ev),
+ NSPAIR(_ZN7ee34551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee34551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34551[];
+extern void _ZN7ee345513fooEv();
+extern void _ZN6dd45513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee345513fooEv,_ZTv0_n12_N7ee345513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee345513fooEv,_ZThn28_N7ee345513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34551[0]),
+ (VTBL_ENTRY)&_ZN7ee345513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345513fooEv,_ZTv0_n12_N7ee345513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee34551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee34551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee34551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee34551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee34551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee34551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee34551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee34551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34551[] = {
+ {&(_ZTV7ee34551[5]), 5,21},
+ {&(_ZTV7ee34551[11]), 11,21},
+ {&(_ZTV7ee34551[16]), 16,21},
+ {&(_ZTV7ee34551[20]), 20,21},
+ {&(_tg__ZTV6dd4551__7ee34551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee34551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee34551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee34551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee34551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee34551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee34551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee34551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34551[];
+extern VTBL_ENTRY _ZTV7ee34551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34551[];
+static VTBL_ENTRY alt_thunk_names801[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345513fooEv,_ZTv0_n12_N7ee345513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee345513fooEv,_ZThn28_N7ee345513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34551 = { "ee34551", // class name
+ bases_ee34551, 4,
+ &(vtc_ee34551[0]), // expected_vtbl_contents
+ &(vtt_ee34551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names801,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44551 : dd4551 {
+ int e;
+ virtual void bar(); // _ZN7ee445513barEv
+ ~ee44551(); // tgen
+ ee44551(); // tgen
+};
+//SIG(1 ee44551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44551 ::bar(){vfunc_called(this, "_ZN7ee445513barEv");}
+ee44551 ::~ee44551(){ note_dtor("ee44551", this);} // tgen
+ee44551 ::ee44551(){ note_ctor("ee44551", this);} // tgen
+
+static void Test_ee44551()
+{
+ extern Class_Descriptor cd_ee44551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44551, buf);
+ ee44551 *dp, &lv = *(dp=new (buf) ee44551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee44551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(24,16), "ee44551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), 0, "ee44551");
+ check_base_class_offset(lv, (dd4551*), 0, "ee44551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44551.e");
+ test_class_info(&lv, &cd_ee44551);
+ dp->~ee44551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44551(Test_ee44551, "ee44551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44551C1Ev();
+extern void _ZN7ee44551D1Ev();
+Name_Map name_map_ee44551[] = {
+ NSPAIR(_ZN7ee44551C1Ev),
+ NSPAIR(_ZN7ee44551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee44551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 10, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44551[];
+extern void _ZN7ee445513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445513barEv,_ZTv0_n16_N7ee445513barEv)();
+extern void ABISELECT(_ZThn24_N7ee445513barEv,_ZThn16_N7ee445513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee44551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44551[0]),
+ (VTBL_ENTRY)&_ZN7ee445513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445513barEv,_ZTv0_n16_N7ee445513barEv),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee44551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee44551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee44551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee44551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee44551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee44551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee44551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee44551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee44551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44551[] = {
+ {&(_ZTV7ee44551[4]), 4,14},
+ {&(_tg__ZTV6dd4551__7ee44551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee44551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee44551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee44551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee44551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee44551[3]), 3,4},
+ {&(_ZTV7ee44551[9]), 9,14},
+ {&(_ZTV7ee44551[13]), 13,14},
+ {&(_tg__ZTV4bb51__7ee44551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee44551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44551[];
+extern VTBL_ENTRY _ZTV7ee44551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44551[];
+static VTBL_ENTRY alt_thunk_names802[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445513barEv,_ZTv0_n16_N7ee445513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445513barEv,_ZThn16_N7ee445513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44551 = { "ee44551", // class name
+ bases_ee44551, 4,
+ &(vtc_ee44551[0]), // expected_vtbl_contents
+ &(vtt_ee44551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44551),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names802,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54551 : virtual dd4551 {
+ int e;
+ virtual void bar(); // _ZN7ee545513barEv
+ ~ee54551(); // tgen
+ ee54551(); // tgen
+};
+//SIG(1 ee54551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54551 ::bar(){vfunc_called(this, "_ZN7ee545513barEv");}
+ee54551 ::~ee54551(){ note_dtor("ee54551", this);} // tgen
+ee54551 ::ee54551(){ note_ctor("ee54551", this);} // tgen
+
+static void Test_ee54551()
+{
+ extern Class_Descriptor cd_ee54551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54551, buf);
+ ee54551 *dp, &lv = *(dp=new (buf) ee54551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee54551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(32,20), "ee54551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), ABISELECT(16,8), "ee54551");
+ check_base_class_offset(lv, (dd4551*), ABISELECT(16,8), "ee54551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54551.e");
+ test_class_info(&lv, &cd_ee54551);
+ dp->~ee54551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54551(Test_ee54551, "ee54551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54551C1Ev();
+extern void _ZN7ee54551D1Ev();
+Name_Map name_map_ee54551[] = {
+ NSPAIR(_ZN7ee54551C1Ev),
+ NSPAIR(_ZN7ee54551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee54551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54551[];
+extern void _ZN7ee545513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee545513barEv,_ZTv0_n20_N7ee545513barEv)();
+extern void ABISELECT(_ZThn16_N7ee545513barEv,_ZThn8_N7ee545513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee545513barEv,_ZTv0_n16_N7ee545513barEv)();
+extern void ABISELECT(_ZThn32_N7ee545513barEv,_ZThn20_N7ee545513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee54551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54551[0]),
+ (VTBL_ENTRY)&_ZN7ee545513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee545513barEv,_ZTv0_n20_N7ee545513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545513barEv,_ZTv0_n16_N7ee545513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee54551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee54551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee54551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee54551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee54551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee54551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee54551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee54551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee54551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54551[] = {
+ {&(_ZTV7ee54551[5]), 5,21},
+ {&(_ZTV7ee54551[11]), 11,21},
+ {&(_ZTV7ee54551[16]), 16,21},
+ {&(_ZTV7ee54551[20]), 20,21},
+ {&(_tg__ZTV6dd4551__7ee54551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee54551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee54551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee54551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee54551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee54551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee54551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee54551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54551[];
+extern VTBL_ENTRY _ZTV7ee54551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54551[];
+static VTBL_ENTRY alt_thunk_names803[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545513barEv,_ZTv0_n16_N7ee545513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545513barEv,_ZThn20_N7ee545513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee545513barEv,_ZTv0_n20_N7ee545513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545513barEv,_ZThn8_N7ee545513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54551 = { "ee54551", // class name
+ bases_ee54551, 4,
+ &(vtc_ee54551[0]), // expected_vtbl_contents
+ &(vtt_ee54551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names803,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64551 : dd4551 {
+ int e;
+ virtual void foo(); // _ZN7ee645513fooEv
+ virtual void bar(); // _ZN7ee645513barEv
+ ~ee64551(); // tgen
+ ee64551(); // tgen
+};
+//SIG(1 ee64551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64551 ::foo(){vfunc_called(this, "_ZN7ee645513fooEv");}
+void ee64551 ::bar(){vfunc_called(this, "_ZN7ee645513barEv");}
+ee64551 ::~ee64551(){ note_dtor("ee64551", this);} // tgen
+ee64551 ::ee64551(){ note_ctor("ee64551", this);} // tgen
+
+static void Test_ee64551()
+{
+ extern Class_Descriptor cd_ee64551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64551, buf);
+ ee64551 *dp, &lv = *(dp=new (buf) ee64551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee64551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(24,16), "ee64551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), 0, "ee64551");
+ check_base_class_offset(lv, (dd4551*), 0, "ee64551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64551.e");
+ test_class_info(&lv, &cd_ee64551);
+ dp->~ee64551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64551(Test_ee64551, "ee64551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64551C1Ev();
+extern void _ZN7ee64551D1Ev();
+Name_Map name_map_ee64551[] = {
+ NSPAIR(_ZN7ee64551C1Ev),
+ NSPAIR(_ZN7ee64551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee64551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64551[];
+extern void _ZN7ee645513barEv();
+extern void _ZN7ee645513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee645513barEv,_ZTv0_n16_N7ee645513barEv)();
+extern void ABISELECT(_ZThn24_N7ee645513barEv,_ZThn16_N7ee645513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee645513fooEv,_ZTv0_n12_N7ee645513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee645513fooEv,_ZThn24_N7ee645513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64551[0]),
+ (VTBL_ENTRY)&_ZN7ee645513barEv,
+ (VTBL_ENTRY)&_ZN7ee645513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645513barEv,_ZTv0_n16_N7ee645513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645513fooEv,_ZTv0_n12_N7ee645513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee64551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee64551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee64551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee64551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee64551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee64551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee64551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee64551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64551[] = {
+ {&(_ZTV7ee64551[4]), 4,15},
+ {&(_tg__ZTV6dd4551__7ee64551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee64551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee64551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee64551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee64551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee64551[3]), 3,4},
+ {&(_ZTV7ee64551[10]), 10,15},
+ {&(_ZTV7ee64551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee64551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee64551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64551[];
+extern VTBL_ENTRY _ZTV7ee64551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64551[];
+static VTBL_ENTRY alt_thunk_names804[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45513barEv,_ZThn16_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645513fooEv,_ZTv0_n12_N7ee645513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee645513fooEv,_ZThn24_N7ee645513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645513barEv,_ZTv0_n16_N7ee645513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645513barEv,_ZThn16_N7ee645513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64551 = { "ee64551", // class name
+ bases_ee64551, 4,
+ &(vtc_ee64551[0]), // expected_vtbl_contents
+ &(vtt_ee64551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names804,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74551 : virtual dd4551 {
+ int e;
+ virtual void foo(); // _ZN7ee745513fooEv
+ virtual void bar(); // _ZN7ee745513barEv
+ ~ee74551(); // tgen
+ ee74551(); // tgen
+};
+//SIG(1 ee74551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74551 ::foo(){vfunc_called(this, "_ZN7ee745513fooEv");}
+void ee74551 ::bar(){vfunc_called(this, "_ZN7ee745513barEv");}
+ee74551 ::~ee74551(){ note_dtor("ee74551", this);} // tgen
+ee74551 ::ee74551(){ note_ctor("ee74551", this);} // tgen
+
+static void Test_ee74551()
+{
+ extern Class_Descriptor cd_ee74551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74551, buf);
+ ee74551 *dp, &lv = *(dp=new (buf) ee74551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee74551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd4551*), ABISELECT(32,20), "ee74551");
+ check_base_class_offset(lv, (cc551*)(dd4551*), ABISELECT(16,8), "ee74551");
+ check_base_class_offset(lv, (dd4551*), ABISELECT(16,8), "ee74551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74551.e");
+ test_class_info(&lv, &cd_ee74551);
+ dp->~ee74551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74551(Test_ee74551, "ee74551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74551C1Ev();
+extern void _ZN7ee74551D1Ev();
+Name_Map name_map_ee74551[] = {
+ NSPAIR(_ZN7ee74551C1Ev),
+ NSPAIR(_ZN7ee74551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd4551;
+extern VTBL_ENTRY _ZTI6dd4551[];
+extern VTBL_ENTRY _ZTV6dd4551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4551[];
+static Base_Class bases_ee74551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4551, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74551[];
+extern void _ZN7ee745513fooEv();
+extern void _ZN7ee745513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee745513barEv,_ZTv0_n20_N7ee745513barEv)();
+extern void ABISELECT(_ZThn16_N7ee745513barEv,_ZThn8_N7ee745513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745513barEv,_ZTv0_n16_N7ee745513barEv)();
+extern void ABISELECT(_ZThn32_N7ee745513barEv,_ZThn20_N7ee745513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745513fooEv,_ZTv0_n12_N7ee745513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee745513fooEv,_ZThn28_N7ee745513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74551[0]),
+ (VTBL_ENTRY)&_ZN7ee745513fooEv,
+ (VTBL_ENTRY)&_ZN7ee745513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee745513barEv,_ZTv0_n20_N7ee745513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745513barEv,_ZTv0_n16_N7ee745513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745513fooEv,_ZTv0_n12_N7ee745513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74551[];
+extern void _ZN6dd45513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4551__7ee74551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN6dd45513barEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd4551__7ee74551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd4551__7ee74551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd4551__7ee74551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv)();
+extern void ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4551__7ee74551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4551__7ee74551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee74551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee74551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74551[] = {
+ {&(_ZTV7ee74551[5]), 5,22},
+ {&(_ZTV7ee74551[12]), 12,22},
+ {&(_ZTV7ee74551[17]), 17,22},
+ {&(_ZTV7ee74551[21]), 21,22},
+ {&(_tg__ZTV6dd4551__7ee74551[4]), 4,5},
+ {&(_tg__ZTV5cc5516dd4551__7ee74551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd4551__7ee74551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd4551__7ee74551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4551__7ee74551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4551__7ee74551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee74551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee74551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74551[];
+extern VTBL_ENTRY _ZTV7ee74551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74551[];
+static VTBL_ENTRY alt_thunk_names805[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45513barEv,_ZTv0_n16_N6dd45513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45513barEv,_ZThn12_N6dd45513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745513fooEv,_ZTv0_n12_N7ee745513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee745513fooEv,_ZThn28_N7ee745513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745513barEv,_ZTv0_n16_N7ee745513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745513barEv,_ZThn20_N7ee745513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee745513barEv,_ZTv0_n20_N7ee745513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745513barEv,_ZThn8_N7ee745513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74551 = { "ee74551", // class name
+ bases_ee74551, 4,
+ &(vtc_ee74551[0]), // expected_vtbl_contents
+ &(vtt_ee74551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names805,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5551 : virtual cc551 {
+ int d;
+ virtual void bar(); // _ZN6dd55513barEv
+ ~dd5551(); // tgen
+ dd5551(); // tgen
+};
+//SIG(-1 dd5551) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5551 ::bar(){vfunc_called(this, "_ZN6dd55513barEv");}
+dd5551 ::~dd5551(){ note_dtor("dd5551", this);} // tgen
+dd5551 ::dd5551(){ note_ctor("dd5551", this);} // tgen
+
+static void Test_dd5551()
+{
+ extern Class_Descriptor cd_dd5551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5551, buf);
+ dd5551 *dp, &lv = *(dp=new (buf) dd5551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd5551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,16), "dd5551");
+ check_base_class_offset(lv, (cc551*), ABISELECT(16,8), "dd5551");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5551.d");
+ test_class_info(&lv, &cd_dd5551);
+ dp->~dd5551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5551(Test_dd5551, "dd5551", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5551C1Ev();
+extern void _ZN6dd5551D1Ev();
+Name_Map name_map_dd5551[] = {
+ NSPAIR(_ZN6dd5551C1Ev),
+ NSPAIR(_ZN6dd5551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd5551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd5551[];
+extern void _ZN6dd55513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_dd5551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd5551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd5551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd5551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5551[] = {
+ {&(_ZTV6dd5551[5]), 5,21},
+ {&(_ZTV6dd5551[11]), 11,21},
+ {&(_ZTV6dd5551[16]), 16,21},
+ {&(_ZTV6dd5551[20]), 20,21},
+ {&(_tg__ZTV5cc551__6dd5551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd5551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd5551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd5551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd5551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static VTBL_ENTRY alt_thunk_names806[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5551 = { "dd5551", // class name
+ bases_dd5551, 3,
+ &(vtc_dd5551[0]), // expected_vtbl_contents
+ &(vtt_dd5551[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5551),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names806,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05551 : dd5551 {
+ int e;
+ ~ee05551(); // tgen
+ ee05551(); // tgen
+};
+//SIG(1 ee05551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05551 ::~ee05551(){ note_dtor("ee05551", this);} // tgen
+ee05551 ::ee05551(){ note_ctor("ee05551", this);} // tgen
+
+static void Test_ee05551()
+{
+ extern Class_Descriptor cd_ee05551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05551, buf);
+ ee05551 *dp, &lv = *(dp=new (buf) ee05551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee05551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee05551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(16,12), "ee05551");
+ check_base_class_offset(lv, (dd5551*), 0, "ee05551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05551.e");
+ test_class_info(&lv, &cd_ee05551);
+ dp->~ee05551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05551(Test_ee05551, "ee05551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05551C1Ev();
+extern void _ZN7ee05551D1Ev();
+Name_Map name_map_ee05551[] = {
+ NSPAIR(_ZN7ee05551C1Ev),
+ NSPAIR(_ZN7ee05551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee05551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05551[];
+extern void _ZN6dd55513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee05551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee05551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee05551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee05551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee05551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee05551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee05551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee05551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee05551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee05551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee05551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05551[] = {
+ {&(_ZTV7ee05551[5]), 5,21},
+ {&(_tg__ZTV6dd5551__7ee05551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee05551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee05551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee05551[3]), 3,4},
+ {&(_ZTV7ee05551[11]), 11,21},
+ {&(_ZTV7ee05551[16]), 16,21},
+ {&(_ZTV7ee05551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee05551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee05551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee05551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee05551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee05551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05551[];
+extern VTBL_ENTRY _ZTV7ee05551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05551[];
+static VTBL_ENTRY alt_thunk_names807[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05551 = { "ee05551", // class name
+ bases_ee05551, 4,
+ &(vtc_ee05551[0]), // expected_vtbl_contents
+ &(vtt_ee05551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names807,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15551 : virtual dd5551 {
+ int e;
+ ~ee15551(); // tgen
+ ee15551(); // tgen
+};
+//SIG(1 ee15551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15551 ::~ee15551(){ note_dtor("ee15551", this);} // tgen
+ee15551 ::ee15551(){ note_ctor("ee15551", this);} // tgen
+
+static void Test_ee15551()
+{
+ extern Class_Descriptor cd_ee15551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15551, buf);
+ ee15551 *dp, &lv = *(dp=new (buf) ee15551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee15551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee15551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(32,16), "ee15551");
+ check_base_class_offset(lv, (dd5551*), ABISELECT(16,8), "ee15551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15551.e");
+ test_class_info(&lv, &cd_ee15551);
+ dp->~ee15551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15551(Test_ee15551, "ee15551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15551C1Ev();
+extern void _ZN7ee15551D1Ev();
+Name_Map name_map_ee15551[] = {
+ NSPAIR(_ZN7ee15551C1Ev),
+ NSPAIR(_ZN7ee15551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee15551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15551[];
+extern void _ZN6dd55513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee15551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15551[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee15551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee15551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee15551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee15551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee15551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee15551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee15551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee15551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee15551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee15551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15551[] = {
+ {&(_ZTV7ee15551[6]), 6,28},
+ {&(_ZTV7ee15551[12]), 12,28},
+ {&(_ZTV7ee15551[18]), 18,28},
+ {&(_ZTV7ee15551[23]), 23,28},
+ {&(_ZTV7ee15551[27]), 27,28},
+ {&(_tg__ZTV6dd5551__7ee15551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee15551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee15551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee15551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee15551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee15551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee15551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee15551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee15551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15551[];
+extern VTBL_ENTRY _ZTV7ee15551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15551[];
+static VTBL_ENTRY alt_thunk_names808[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15551 = { "ee15551", // class name
+ bases_ee15551, 4,
+ &(vtc_ee15551[0]), // expected_vtbl_contents
+ &(vtt_ee15551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15551),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names808,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25551 : dd5551 {
+ int e;
+ virtual void foo(); // _ZN7ee255513fooEv
+ ~ee25551(); // tgen
+ ee25551(); // tgen
+};
+//SIG(1 ee25551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25551 ::foo(){vfunc_called(this, "_ZN7ee255513fooEv");}
+ee25551 ::~ee25551(){ note_dtor("ee25551", this);} // tgen
+ee25551 ::ee25551(){ note_ctor("ee25551", this);} // tgen
+
+static void Test_ee25551()
+{
+ extern Class_Descriptor cd_ee25551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25551, buf);
+ ee25551 *dp, &lv = *(dp=new (buf) ee25551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee25551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee25551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(16,12), "ee25551");
+ check_base_class_offset(lv, (dd5551*), 0, "ee25551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25551.e");
+ test_class_info(&lv, &cd_ee25551);
+ dp->~ee25551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25551(Test_ee25551, "ee25551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25551C1Ev();
+extern void _ZN7ee25551D1Ev();
+Name_Map name_map_ee25551[] = {
+ NSPAIR(_ZN7ee25551C1Ev),
+ NSPAIR(_ZN7ee25551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee25551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25551[];
+extern void _ZN6dd55513barEv();
+extern void _ZN7ee255513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255513fooEv,_ZTv0_n12_N7ee255513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee255513fooEv,_ZThn28_N7ee255513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+ (VTBL_ENTRY)&_ZN7ee255513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255513fooEv,_ZTv0_n12_N7ee255513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee25551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee25551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee25551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee25551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee25551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee25551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee25551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee25551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee25551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25551[] = {
+ {&(_ZTV7ee25551[5]), 5,22},
+ {&(_tg__ZTV6dd5551__7ee25551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee25551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee25551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee25551[3]), 3,4},
+ {&(_ZTV7ee25551[12]), 12,22},
+ {&(_ZTV7ee25551[17]), 17,22},
+ {&(_ZTV7ee25551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee25551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee25551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee25551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee25551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee25551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25551[];
+extern VTBL_ENTRY _ZTV7ee25551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25551[];
+static VTBL_ENTRY alt_thunk_names809[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255513fooEv,_ZTv0_n12_N7ee255513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee255513fooEv,_ZThn28_N7ee255513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25551 = { "ee25551", // class name
+ bases_ee25551, 4,
+ &(vtc_ee25551[0]), // expected_vtbl_contents
+ &(vtt_ee25551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names809,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35551 : virtual dd5551 {
+ int e;
+ virtual void foo(); // _ZN7ee355513fooEv
+ ~ee35551(); // tgen
+ ee35551(); // tgen
+};
+//SIG(1 ee35551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35551 ::foo(){vfunc_called(this, "_ZN7ee355513fooEv");}
+ee35551 ::~ee35551(){ note_dtor("ee35551", this);} // tgen
+ee35551 ::ee35551(){ note_ctor("ee35551", this);} // tgen
+
+static void Test_ee35551()
+{
+ extern Class_Descriptor cd_ee35551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35551, buf);
+ ee35551 *dp, &lv = *(dp=new (buf) ee35551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee35551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee35551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(32,16), "ee35551");
+ check_base_class_offset(lv, (dd5551*), ABISELECT(16,8), "ee35551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35551.e");
+ test_class_info(&lv, &cd_ee35551);
+ dp->~ee35551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35551(Test_ee35551, "ee35551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35551C1Ev();
+extern void _ZN7ee35551D1Ev();
+Name_Map name_map_ee35551[] = {
+ NSPAIR(_ZN7ee35551C1Ev),
+ NSPAIR(_ZN7ee35551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee35551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35551[];
+extern void _ZN7ee355513fooEv();
+extern void _ZN6dd55513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355513fooEv,_ZTv0_n12_N7ee355513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee355513fooEv,_ZThn32_N7ee355513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35551[0]),
+ (VTBL_ENTRY)&_ZN7ee355513fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355513fooEv,_ZTv0_n12_N7ee355513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee35551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee35551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee35551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee35551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee35551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee35551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee35551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee35551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee35551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35551[] = {
+ {&(_ZTV7ee35551[6]), 6,29},
+ {&(_ZTV7ee35551[13]), 13,29},
+ {&(_ZTV7ee35551[19]), 19,29},
+ {&(_ZTV7ee35551[24]), 24,29},
+ {&(_ZTV7ee35551[28]), 28,29},
+ {&(_tg__ZTV6dd5551__7ee35551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee35551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee35551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee35551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee35551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee35551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee35551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee35551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee35551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35551[];
+extern VTBL_ENTRY _ZTV7ee35551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35551[];
+static VTBL_ENTRY alt_thunk_names810[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355513fooEv,_ZTv0_n12_N7ee355513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee355513fooEv,_ZThn32_N7ee355513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35551 = { "ee35551", // class name
+ bases_ee35551, 4,
+ &(vtc_ee35551[0]), // expected_vtbl_contents
+ &(vtt_ee35551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35551),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names810,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45551 : dd5551 {
+ int e;
+ virtual void bar(); // _ZN7ee455513barEv
+ ~ee45551(); // tgen
+ ee45551(); // tgen
+};
+//SIG(1 ee45551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45551 ::bar(){vfunc_called(this, "_ZN7ee455513barEv");}
+ee45551 ::~ee45551(){ note_dtor("ee45551", this);} // tgen
+ee45551 ::ee45551(){ note_ctor("ee45551", this);} // tgen
+
+static void Test_ee45551()
+{
+ extern Class_Descriptor cd_ee45551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45551, buf);
+ ee45551 *dp, &lv = *(dp=new (buf) ee45551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee45551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee45551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(16,12), "ee45551");
+ check_base_class_offset(lv, (dd5551*), 0, "ee45551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45551.e");
+ test_class_info(&lv, &cd_ee45551);
+ dp->~ee45551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45551(Test_ee45551, "ee45551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45551C1Ev();
+extern void _ZN7ee45551D1Ev();
+Name_Map name_map_ee45551[] = {
+ NSPAIR(_ZN7ee45551C1Ev),
+ NSPAIR(_ZN7ee45551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee45551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45551[];
+extern void _ZN7ee455513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee455513barEv,_ZTv0_n20_N7ee455513barEv)();
+extern void ABISELECT(_ZThn16_N7ee455513barEv,_ZThn12_N7ee455513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee455513barEv,_ZTv0_n16_N7ee455513barEv)();
+extern void ABISELECT(_ZThn32_N7ee455513barEv,_ZThn20_N7ee455513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee45551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45551[0]),
+ (VTBL_ENTRY)&_ZN7ee455513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee455513barEv,_ZTv0_n20_N7ee455513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455513barEv,_ZTv0_n16_N7ee455513barEv),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee45551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee45551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee45551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee45551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee45551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee45551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee45551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee45551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee45551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee45551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45551[] = {
+ {&(_ZTV7ee45551[5]), 5,21},
+ {&(_tg__ZTV6dd5551__7ee45551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee45551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee45551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee45551[3]), 3,4},
+ {&(_ZTV7ee45551[11]), 11,21},
+ {&(_ZTV7ee45551[16]), 16,21},
+ {&(_ZTV7ee45551[20]), 20,21},
+ {&(_tg__ZTV5cc551__7ee45551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee45551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee45551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee45551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee45551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45551[];
+extern VTBL_ENTRY _ZTV7ee45551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45551[];
+static VTBL_ENTRY alt_thunk_names811[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455513barEv,_ZTv0_n16_N7ee455513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455513barEv,_ZThn20_N7ee455513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee455513barEv,_ZTv0_n20_N7ee455513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455513barEv,_ZThn12_N7ee455513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45551 = { "ee45551", // class name
+ bases_ee45551, 4,
+ &(vtc_ee45551[0]), // expected_vtbl_contents
+ &(vtt_ee45551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45551),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names811,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55551 : virtual dd5551 {
+ int e;
+ virtual void bar(); // _ZN7ee555513barEv
+ ~ee55551(); // tgen
+ ee55551(); // tgen
+};
+//SIG(1 ee55551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55551 ::bar(){vfunc_called(this, "_ZN7ee555513barEv");}
+ee55551 ::~ee55551(){ note_dtor("ee55551", this);} // tgen
+ee55551 ::ee55551(){ note_ctor("ee55551", this);} // tgen
+
+static void Test_ee55551()
+{
+ extern Class_Descriptor cd_ee55551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55551, buf);
+ ee55551 *dp, &lv = *(dp=new (buf) ee55551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee55551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee55551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(32,16), "ee55551");
+ check_base_class_offset(lv, (dd5551*), ABISELECT(16,8), "ee55551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55551.e");
+ test_class_info(&lv, &cd_ee55551);
+ dp->~ee55551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55551(Test_ee55551, "ee55551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55551C1Ev();
+extern void _ZN7ee55551D1Ev();
+Name_Map name_map_ee55551[] = {
+ NSPAIR(_ZN7ee55551C1Ev),
+ NSPAIR(_ZN7ee55551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee55551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55551[];
+extern void _ZN7ee555513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee555513barEv,_ZTv0_n24_N7ee555513barEv)();
+extern void ABISELECT(_ZThn16_N7ee555513barEv,_ZThn8_N7ee555513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee555513barEv,_ZTv0_n20_N7ee555513barEv)();
+extern void ABISELECT(_ZThn32_N7ee555513barEv,_ZThn16_N7ee555513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555513barEv,_ZTv0_n16_N7ee555513barEv)();
+extern void ABISELECT(_ZThn48_N7ee555513barEv,_ZThn24_N7ee555513barEv)() __attribute__((weak));
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY vtc_ee55551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55551[0]),
+ (VTBL_ENTRY)&_ZN7ee555513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee555513barEv,_ZTv0_n24_N7ee555513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555513barEv,_ZTv0_n20_N7ee555513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555513barEv,_ZTv0_n16_N7ee555513barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern VTBL_ENTRY _ZTV7ee55551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee55551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee55551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee55551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee55551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee55551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee55551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee55551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee55551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee55551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55551[] = {
+ {&(_ZTV7ee55551[6]), 6,29},
+ {&(_ZTV7ee55551[13]), 13,29},
+ {&(_ZTV7ee55551[19]), 19,29},
+ {&(_ZTV7ee55551[24]), 24,29},
+ {&(_ZTV7ee55551[28]), 28,29},
+ {&(_tg__ZTV6dd5551__7ee55551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee55551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee55551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee55551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee55551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee55551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee55551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee55551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee55551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55551[];
+extern VTBL_ENTRY _ZTV7ee55551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55551[];
+static VTBL_ENTRY alt_thunk_names812[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555513barEv,_ZTv0_n16_N7ee555513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555513barEv,_ZThn24_N7ee555513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555513barEv,_ZTv0_n20_N7ee555513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555513barEv,_ZThn16_N7ee555513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee555513barEv,_ZTv0_n24_N7ee555513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555513barEv,_ZThn8_N7ee555513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55551 = { "ee55551", // class name
+ bases_ee55551, 4,
+ &(vtc_ee55551[0]), // expected_vtbl_contents
+ &(vtt_ee55551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55551),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names812,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65551 : dd5551 {
+ int e;
+ virtual void foo(); // _ZN7ee655513fooEv
+ virtual void bar(); // _ZN7ee655513barEv
+ ~ee65551(); // tgen
+ ee65551(); // tgen
+};
+//SIG(1 ee65551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65551 ::foo(){vfunc_called(this, "_ZN7ee655513fooEv");}
+void ee65551 ::bar(){vfunc_called(this, "_ZN7ee655513barEv");}
+ee65551 ::~ee65551(){ note_dtor("ee65551", this);} // tgen
+ee65551 ::ee65551(){ note_ctor("ee65551", this);} // tgen
+
+static void Test_ee65551()
+{
+ extern Class_Descriptor cd_ee65551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65551, buf);
+ ee65551 *dp, &lv = *(dp=new (buf) ee65551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee65551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee65551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(16,12), "ee65551");
+ check_base_class_offset(lv, (dd5551*), 0, "ee65551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65551.e");
+ test_class_info(&lv, &cd_ee65551);
+ dp->~ee65551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65551(Test_ee65551, "ee65551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65551C1Ev();
+extern void _ZN7ee65551D1Ev();
+Name_Map name_map_ee65551[] = {
+ NSPAIR(_ZN7ee65551C1Ev),
+ NSPAIR(_ZN7ee65551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee65551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65551[];
+extern void _ZN7ee655513barEv();
+extern void _ZN7ee655513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee655513barEv,_ZTv0_n20_N7ee655513barEv)();
+extern void ABISELECT(_ZThn16_N7ee655513barEv,_ZThn12_N7ee655513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655513barEv,_ZTv0_n16_N7ee655513barEv)();
+extern void ABISELECT(_ZThn32_N7ee655513barEv,_ZThn20_N7ee655513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655513fooEv,_ZTv0_n12_N7ee655513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee655513fooEv,_ZThn28_N7ee655513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65551[0]),
+ (VTBL_ENTRY)&_ZN7ee655513barEv,
+ (VTBL_ENTRY)&_ZN7ee655513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee655513barEv,_ZTv0_n20_N7ee655513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655513barEv,_ZTv0_n16_N7ee655513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655513fooEv,_ZTv0_n12_N7ee655513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee65551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee65551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee65551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee65551[] = {
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee65551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee65551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee65551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee65551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee65551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65551[] = {
+ {&(_ZTV7ee65551[5]), 5,22},
+ {&(_tg__ZTV6dd5551__7ee65551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee65551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee65551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee65551[3]), 3,4},
+ {&(_ZTV7ee65551[12]), 12,22},
+ {&(_ZTV7ee65551[17]), 17,22},
+ {&(_ZTV7ee65551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee65551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee65551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee65551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee65551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee65551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65551[];
+extern VTBL_ENTRY _ZTV7ee65551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65551[];
+static VTBL_ENTRY alt_thunk_names813[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn20_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn12_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655513fooEv,_ZTv0_n12_N7ee655513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee655513fooEv,_ZThn28_N7ee655513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655513barEv,_ZTv0_n16_N7ee655513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655513barEv,_ZThn20_N7ee655513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee655513barEv,_ZTv0_n20_N7ee655513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655513barEv,_ZThn12_N7ee655513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65551 = { "ee65551", // class name
+ bases_ee65551, 4,
+ &(vtc_ee65551[0]), // expected_vtbl_contents
+ &(vtt_ee65551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names813,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75551 : virtual dd5551 {
+ int e;
+ virtual void foo(); // _ZN7ee755513fooEv
+ virtual void bar(); // _ZN7ee755513barEv
+ ~ee75551(); // tgen
+ ee75551(); // tgen
+};
+//SIG(1 ee75551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75551 ::foo(){vfunc_called(this, "_ZN7ee755513fooEv");}
+void ee75551 ::bar(){vfunc_called(this, "_ZN7ee755513barEv");}
+ee75551 ::~ee75551(){ note_dtor("ee75551", this);} // tgen
+ee75551 ::ee75551(){ note_ctor("ee75551", this);} // tgen
+
+static void Test_ee75551()
+{
+ extern Class_Descriptor cd_ee75551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75551, buf);
+ ee75551 *dp, &lv = *(dp=new (buf) ee75551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee75551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee75551");
+ check_base_class_offset(lv, (cc551*)(dd5551*), ABISELECT(32,16), "ee75551");
+ check_base_class_offset(lv, (dd5551*), ABISELECT(16,8), "ee75551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75551.e");
+ test_class_info(&lv, &cd_ee75551);
+ dp->~ee75551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75551(Test_ee75551, "ee75551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75551C1Ev();
+extern void _ZN7ee75551D1Ev();
+Name_Map name_map_ee75551[] = {
+ NSPAIR(_ZN7ee75551C1Ev),
+ NSPAIR(_ZN7ee75551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd5551;
+extern VTBL_ENTRY _ZTI6dd5551[];
+extern VTBL_ENTRY _ZTV6dd5551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5551[];
+static Base_Class bases_ee75551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5551, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75551[];
+extern void _ZN7ee755513fooEv();
+extern void _ZN7ee755513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee755513barEv,_ZTv0_n24_N7ee755513barEv)();
+extern void ABISELECT(_ZThn16_N7ee755513barEv,_ZThn8_N7ee755513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee755513barEv,_ZTv0_n20_N7ee755513barEv)();
+extern void ABISELECT(_ZThn32_N7ee755513barEv,_ZThn16_N7ee755513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755513barEv,_ZTv0_n16_N7ee755513barEv)();
+extern void ABISELECT(_ZThn48_N7ee755513barEv,_ZThn24_N7ee755513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755513fooEv,_ZTv0_n12_N7ee755513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee755513fooEv,_ZThn32_N7ee755513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75551[0]),
+ (VTBL_ENTRY)&_ZN7ee755513fooEv,
+ (VTBL_ENTRY)&_ZN7ee755513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee755513barEv,_ZTv0_n24_N7ee755513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755513barEv,_ZTv0_n20_N7ee755513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755513barEv,_ZTv0_n16_N7ee755513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755513fooEv,_ZTv0_n12_N7ee755513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75551[];
+extern void _ZN6dd55513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5551__7ee75551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN6dd55513barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv)();
+extern void ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd5551__7ee75551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv)();
+extern void ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5551__7ee75551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5551__7ee75551[] = {
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee75551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee75551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee75551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee75551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee75551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75551[] = {
+ {&(_ZTV7ee75551[6]), 6,30},
+ {&(_ZTV7ee75551[14]), 14,30},
+ {&(_ZTV7ee75551[20]), 20,30},
+ {&(_ZTV7ee75551[25]), 25,30},
+ {&(_ZTV7ee75551[29]), 29,30},
+ {&(_tg__ZTV6dd5551__7ee75551[5]), 5,6},
+ {&(_tg__ZTV5cc551__6dd5551__7ee75551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd5551__7ee75551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5551__7ee75551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee75551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee75551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee75551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee75551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee75551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75551[];
+extern VTBL_ENTRY _ZTV7ee75551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75551[];
+static VTBL_ENTRY alt_thunk_names814[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55513barEv,_ZTv0_n16_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55513barEv,_ZThn16_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55513barEv,_ZTv0_n20_N6dd55513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55513barEv,_ZThn8_N6dd55513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755513fooEv,_ZTv0_n12_N7ee755513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee755513fooEv,_ZThn32_N7ee755513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755513barEv,_ZTv0_n16_N7ee755513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755513barEv,_ZThn24_N7ee755513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755513barEv,_ZTv0_n20_N7ee755513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755513barEv,_ZThn16_N7ee755513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee755513barEv,_ZTv0_n24_N7ee755513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755513barEv,_ZThn8_N7ee755513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75551 = { "ee75551", // class name
+ bases_ee75551, 4,
+ &(vtc_ee75551[0]), // expected_vtbl_contents
+ &(vtt_ee75551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75551),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names814,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6551 : cc551 {
+ int d;
+ virtual void bar(); // _ZN6dd65513barEv
+ virtual void foo(); // _ZN6dd65513fooEv
+ ~dd6551(); // tgen
+ dd6551(); // tgen
+};
+//SIG(-1 dd6551) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6551 ::bar(){vfunc_called(this, "_ZN6dd65513barEv");}
+void dd6551 ::foo(){vfunc_called(this, "_ZN6dd65513fooEv");}
+dd6551 ::~dd6551(){ note_dtor("dd6551", this);} // tgen
+dd6551 ::dd6551(){ note_ctor("dd6551", this);} // tgen
+
+static void Test_dd6551()
+{
+ extern Class_Descriptor cd_dd6551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6551, buf);
+ dd6551 *dp, &lv = *(dp=new (buf) dd6551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd6551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(16,12), "dd6551");
+ check_base_class_offset(lv, (cc551*), 0, "dd6551");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6551.d");
+ test_class_info(&lv, &cd_dd6551);
+ dp->~dd6551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6551(Test_dd6551, "dd6551", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6551C1Ev();
+extern void _ZN6dd6551D1Ev();
+Name_Map name_map_dd6551[] = {
+ NSPAIR(_ZN6dd6551C1Ev),
+ NSPAIR(_ZN6dd6551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd6551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd6551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd6551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd6551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd6551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6551[] = {
+ {&(_ZTV6dd6551[4]), 4,15},
+ {&(_tg__ZTV5cc551__6dd6551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd6551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd6551[3]), 3,4},
+ {&(_ZTV6dd6551[10]), 10,15},
+ {&(_ZTV6dd6551[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd6551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd6551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static VTBL_ENTRY alt_thunk_names815[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6551 = { "dd6551", // class name
+ bases_dd6551, 3,
+ &(vtc_dd6551[0]), // expected_vtbl_contents
+ &(vtt_dd6551[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6551),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names815,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06551 : dd6551 {
+ int e;
+ ~ee06551(); // tgen
+ ee06551(); // tgen
+};
+//SIG(1 ee06551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06551 ::~ee06551(){ note_dtor("ee06551", this);} // tgen
+ee06551 ::ee06551(){ note_ctor("ee06551", this);} // tgen
+
+static void Test_ee06551()
+{
+ extern Class_Descriptor cd_ee06551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06551, buf);
+ ee06551 *dp, &lv = *(dp=new (buf) ee06551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee06551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(24,16), "ee06551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), 0, "ee06551");
+ check_base_class_offset(lv, (dd6551*), 0, "ee06551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06551.e");
+ test_class_info(&lv, &cd_ee06551);
+ dp->~ee06551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06551(Test_ee06551, "ee06551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06551C1Ev();
+extern void _ZN7ee06551D1Ev();
+Name_Map name_map_ee06551[] = {
+ NSPAIR(_ZN7ee06551C1Ev),
+ NSPAIR(_ZN7ee06551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee06551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee06551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee06551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee06551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee06551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee06551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee06551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee06551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee06551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee06551[] = {
+ {&(_ZTV7ee06551[4]), 4,15},
+ {&(_tg__ZTV6dd6551__7ee06551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee06551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee06551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee06551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee06551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee06551[3]), 3,4},
+ {&(_ZTV7ee06551[10]), 10,15},
+ {&(_ZTV7ee06551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee06551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee06551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06551[];
+extern VTBL_ENTRY _ZTV7ee06551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06551[];
+static VTBL_ENTRY alt_thunk_names816[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06551 = { "ee06551", // class name
+ bases_ee06551, 4,
+ &(vtc_ee06551[0]), // expected_vtbl_contents
+ &(vtt_ee06551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names816,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16551 : virtual dd6551 {
+ int e;
+ ~ee16551(); // tgen
+ ee16551(); // tgen
+};
+//SIG(1 ee16551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16551 ::~ee16551(){ note_dtor("ee16551", this);} // tgen
+ee16551 ::ee16551(){ note_ctor("ee16551", this);} // tgen
+
+static void Test_ee16551()
+{
+ extern Class_Descriptor cd_ee16551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16551, buf);
+ ee16551 *dp, &lv = *(dp=new (buf) ee16551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee16551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(32,20), "ee16551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), ABISELECT(16,8), "ee16551");
+ check_base_class_offset(lv, (dd6551*), ABISELECT(16,8), "ee16551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16551.e");
+ test_class_info(&lv, &cd_ee16551);
+ dp->~ee16551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16551(Test_ee16551, "ee16551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16551C1Ev();
+extern void _ZN7ee16551D1Ev();
+Name_Map name_map_ee16551[] = {
+ NSPAIR(_ZN7ee16551C1Ev),
+ NSPAIR(_ZN7ee16551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee16551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16551[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee16551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee16551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee16551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee16551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee16551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee16551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee16551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee16551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee16551[] = {
+ {&(_ZTV7ee16551[5]), 5,22},
+ {&(_ZTV7ee16551[11]), 11,22},
+ {&(_ZTV7ee16551[17]), 17,22},
+ {&(_ZTV7ee16551[21]), 21,22},
+ {&(_tg__ZTV6dd6551__7ee16551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee16551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee16551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee16551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee16551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee16551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee16551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee16551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16551[];
+extern VTBL_ENTRY _ZTV7ee16551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16551[];
+static VTBL_ENTRY alt_thunk_names817[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16551 = { "ee16551", // class name
+ bases_ee16551, 4,
+ &(vtc_ee16551[0]), // expected_vtbl_contents
+ &(vtt_ee16551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names817,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26551 : dd6551 {
+ int e;
+ virtual void foo(); // _ZN7ee265513fooEv
+ ~ee26551(); // tgen
+ ee26551(); // tgen
+};
+//SIG(1 ee26551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26551 ::foo(){vfunc_called(this, "_ZN7ee265513fooEv");}
+ee26551 ::~ee26551(){ note_dtor("ee26551", this);} // tgen
+ee26551 ::ee26551(){ note_ctor("ee26551", this);} // tgen
+
+static void Test_ee26551()
+{
+ extern Class_Descriptor cd_ee26551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26551, buf);
+ ee26551 *dp, &lv = *(dp=new (buf) ee26551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee26551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(24,16), "ee26551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), 0, "ee26551");
+ check_base_class_offset(lv, (dd6551*), 0, "ee26551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26551.e");
+ test_class_info(&lv, &cd_ee26551);
+ dp->~ee26551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26551(Test_ee26551, "ee26551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26551C1Ev();
+extern void _ZN7ee26551D1Ev();
+Name_Map name_map_ee26551[] = {
+ NSPAIR(_ZN7ee26551C1Ev),
+ NSPAIR(_ZN7ee26551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee26551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN7ee265513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee265513fooEv,_ZTv0_n12_N7ee265513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee265513fooEv,_ZThn24_N7ee265513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN7ee265513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265513fooEv,_ZTv0_n12_N7ee265513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee26551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee26551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee26551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee26551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee26551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee26551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee26551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee26551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee26551[] = {
+ {&(_ZTV7ee26551[4]), 4,15},
+ {&(_tg__ZTV6dd6551__7ee26551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee26551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee26551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee26551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee26551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee26551[3]), 3,4},
+ {&(_ZTV7ee26551[10]), 10,15},
+ {&(_ZTV7ee26551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee26551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee26551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26551[];
+extern VTBL_ENTRY _ZTV7ee26551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26551[];
+static VTBL_ENTRY alt_thunk_names818[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265513fooEv,_ZTv0_n12_N7ee265513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee265513fooEv,_ZThn24_N7ee265513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26551 = { "ee26551", // class name
+ bases_ee26551, 4,
+ &(vtc_ee26551[0]), // expected_vtbl_contents
+ &(vtt_ee26551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names818,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36551 : virtual dd6551 {
+ int e;
+ virtual void foo(); // _ZN7ee365513fooEv
+ ~ee36551(); // tgen
+ ee36551(); // tgen
+};
+//SIG(1 ee36551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36551 ::foo(){vfunc_called(this, "_ZN7ee365513fooEv");}
+ee36551 ::~ee36551(){ note_dtor("ee36551", this);} // tgen
+ee36551 ::ee36551(){ note_ctor("ee36551", this);} // tgen
+
+static void Test_ee36551()
+{
+ extern Class_Descriptor cd_ee36551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36551, buf);
+ ee36551 *dp, &lv = *(dp=new (buf) ee36551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee36551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(32,20), "ee36551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), ABISELECT(16,8), "ee36551");
+ check_base_class_offset(lv, (dd6551*), ABISELECT(16,8), "ee36551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36551.e");
+ test_class_info(&lv, &cd_ee36551);
+ dp->~ee36551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36551(Test_ee36551, "ee36551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36551C1Ev();
+extern void _ZN7ee36551D1Ev();
+Name_Map name_map_ee36551[] = {
+ NSPAIR(_ZN7ee36551C1Ev),
+ NSPAIR(_ZN7ee36551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee36551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36551[];
+extern void _ZN7ee365513fooEv();
+extern void _ZN6dd65513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee365513fooEv,_ZTv0_n24_N7ee365513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365513fooEv,_ZThn8_N7ee365513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365513fooEv,_ZTv0_n12_N7ee365513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee365513fooEv,_ZThn28_N7ee365513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36551[0]),
+ (VTBL_ENTRY)&_ZN7ee365513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee365513fooEv,_ZTv0_n24_N7ee365513fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365513fooEv,_ZTv0_n12_N7ee365513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee36551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee36551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee36551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee36551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee36551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee36551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee36551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee36551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee36551[] = {
+ {&(_ZTV7ee36551[5]), 5,23},
+ {&(_ZTV7ee36551[12]), 12,23},
+ {&(_ZTV7ee36551[18]), 18,23},
+ {&(_ZTV7ee36551[22]), 22,23},
+ {&(_tg__ZTV6dd6551__7ee36551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee36551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee36551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee36551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee36551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee36551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee36551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee36551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36551[];
+extern VTBL_ENTRY _ZTV7ee36551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36551[];
+static VTBL_ENTRY alt_thunk_names819[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365513fooEv,_ZTv0_n12_N7ee365513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee365513fooEv,_ZThn28_N7ee365513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee365513fooEv,_ZTv0_n24_N7ee365513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365513fooEv,_ZThn8_N7ee365513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36551 = { "ee36551", // class name
+ bases_ee36551, 4,
+ &(vtc_ee36551[0]), // expected_vtbl_contents
+ &(vtt_ee36551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36551),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names819,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46551 : dd6551 {
+ int e;
+ virtual void bar(); // _ZN7ee465513barEv
+ ~ee46551(); // tgen
+ ee46551(); // tgen
+};
+//SIG(1 ee46551) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46551 ::bar(){vfunc_called(this, "_ZN7ee465513barEv");}
+ee46551 ::~ee46551(){ note_dtor("ee46551", this);} // tgen
+ee46551 ::ee46551(){ note_ctor("ee46551", this);} // tgen
+
+static void Test_ee46551()
+{
+ extern Class_Descriptor cd_ee46551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46551, buf);
+ ee46551 *dp, &lv = *(dp=new (buf) ee46551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee46551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(24,16), "ee46551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), 0, "ee46551");
+ check_base_class_offset(lv, (dd6551*), 0, "ee46551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46551.e");
+ test_class_info(&lv, &cd_ee46551);
+ dp->~ee46551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46551(Test_ee46551, "ee46551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46551C1Ev();
+extern void _ZN7ee46551D1Ev();
+Name_Map name_map_ee46551[] = {
+ NSPAIR(_ZN7ee46551C1Ev),
+ NSPAIR(_ZN7ee46551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee46551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46551[];
+extern void _ZN7ee465513barEv();
+extern void _ZN6dd65513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee465513barEv,_ZTv0_n16_N7ee465513barEv)();
+extern void ABISELECT(_ZThn24_N7ee465513barEv,_ZThn16_N7ee465513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46551[0]),
+ (VTBL_ENTRY)&_ZN7ee465513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465513barEv,_ZTv0_n16_N7ee465513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee46551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee46551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee46551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee46551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee46551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee46551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee46551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee46551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee46551[] = {
+ {&(_ZTV7ee46551[4]), 4,15},
+ {&(_tg__ZTV6dd6551__7ee46551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee46551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee46551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee46551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee46551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee46551[3]), 3,4},
+ {&(_ZTV7ee46551[10]), 10,15},
+ {&(_ZTV7ee46551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee46551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee46551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46551[];
+extern VTBL_ENTRY _ZTV7ee46551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46551[];
+static VTBL_ENTRY alt_thunk_names820[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465513barEv,_ZTv0_n16_N7ee465513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465513barEv,_ZThn16_N7ee465513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46551 = { "ee46551", // class name
+ bases_ee46551, 4,
+ &(vtc_ee46551[0]), // expected_vtbl_contents
+ &(vtt_ee46551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names820,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56551 : virtual dd6551 {
+ int e;
+ virtual void bar(); // _ZN7ee565513barEv
+ ~ee56551(); // tgen
+ ee56551(); // tgen
+};
+//SIG(1 ee56551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56551 ::bar(){vfunc_called(this, "_ZN7ee565513barEv");}
+ee56551 ::~ee56551(){ note_dtor("ee56551", this);} // tgen
+ee56551 ::ee56551(){ note_ctor("ee56551", this);} // tgen
+
+static void Test_ee56551()
+{
+ extern Class_Descriptor cd_ee56551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56551, buf);
+ ee56551 *dp, &lv = *(dp=new (buf) ee56551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee56551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(32,20), "ee56551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), ABISELECT(16,8), "ee56551");
+ check_base_class_offset(lv, (dd6551*), ABISELECT(16,8), "ee56551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56551.e");
+ test_class_info(&lv, &cd_ee56551);
+ dp->~ee56551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56551(Test_ee56551, "ee56551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56551C1Ev();
+extern void _ZN7ee56551D1Ev();
+Name_Map name_map_ee56551[] = {
+ NSPAIR(_ZN7ee56551C1Ev),
+ NSPAIR(_ZN7ee56551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee56551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56551[];
+extern void _ZN7ee565513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee565513barEv,_ZTv0_n20_N7ee565513barEv)();
+extern void ABISELECT(_ZThn16_N7ee565513barEv,_ZThn8_N7ee565513barEv)() __attribute__((weak));
+extern void _ZN6dd65513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565513barEv,_ZTv0_n16_N7ee565513barEv)();
+extern void ABISELECT(_ZThn32_N7ee565513barEv,_ZThn20_N7ee565513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56551[0]),
+ (VTBL_ENTRY)&_ZN7ee565513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee565513barEv,_ZTv0_n20_N7ee565513barEv),
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565513barEv,_ZTv0_n16_N7ee565513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee56551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee56551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee56551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee56551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee56551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee56551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee56551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee56551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee56551[] = {
+ {&(_ZTV7ee56551[5]), 5,23},
+ {&(_ZTV7ee56551[12]), 12,23},
+ {&(_ZTV7ee56551[18]), 18,23},
+ {&(_ZTV7ee56551[22]), 22,23},
+ {&(_tg__ZTV6dd6551__7ee56551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee56551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee56551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee56551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee56551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee56551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee56551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee56551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56551[];
+extern VTBL_ENTRY _ZTV7ee56551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56551[];
+static VTBL_ENTRY alt_thunk_names821[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565513barEv,_ZTv0_n16_N7ee565513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565513barEv,_ZThn20_N7ee565513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee565513barEv,_ZTv0_n20_N7ee565513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565513barEv,_ZThn8_N7ee565513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56551 = { "ee56551", // class name
+ bases_ee56551, 4,
+ &(vtc_ee56551[0]), // expected_vtbl_contents
+ &(vtt_ee56551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56551),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names821,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66551 : dd6551 {
+ int e;
+ virtual void foo(); // _ZN7ee665513fooEv
+ virtual void bar(); // _ZN7ee665513barEv
+ ~ee66551(); // tgen
+ ee66551(); // tgen
+};
+//SIG(1 ee66551) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66551 ::foo(){vfunc_called(this, "_ZN7ee665513fooEv");}
+void ee66551 ::bar(){vfunc_called(this, "_ZN7ee665513barEv");}
+ee66551 ::~ee66551(){ note_dtor("ee66551", this);} // tgen
+ee66551 ::ee66551(){ note_ctor("ee66551", this);} // tgen
+
+static void Test_ee66551()
+{
+ extern Class_Descriptor cd_ee66551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66551, buf);
+ ee66551 *dp, &lv = *(dp=new (buf) ee66551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee66551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(24,16), "ee66551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), 0, "ee66551");
+ check_base_class_offset(lv, (dd6551*), 0, "ee66551");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66551.e");
+ test_class_info(&lv, &cd_ee66551);
+ dp->~ee66551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66551(Test_ee66551, "ee66551", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66551C1Ev();
+extern void _ZN7ee66551D1Ev();
+Name_Map name_map_ee66551[] = {
+ NSPAIR(_ZN7ee66551C1Ev),
+ NSPAIR(_ZN7ee66551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee66551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66551[];
+extern void _ZN7ee665513barEv();
+extern void _ZN7ee665513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee665513barEv,_ZTv0_n16_N7ee665513barEv)();
+extern void ABISELECT(_ZThn24_N7ee665513barEv,_ZThn16_N7ee665513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee665513fooEv,_ZTv0_n12_N7ee665513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee665513fooEv,_ZThn24_N7ee665513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66551[0]),
+ (VTBL_ENTRY)&_ZN7ee665513barEv,
+ (VTBL_ENTRY)&_ZN7ee665513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665513barEv,_ZTv0_n16_N7ee665513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665513fooEv,_ZTv0_n12_N7ee665513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee66551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee66551[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee66551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee66551[] = {
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee66551[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee66551[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee66551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee66551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee66551[] = {
+ {&(_ZTV7ee66551[4]), 4,15},
+ {&(_tg__ZTV6dd6551__7ee66551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee66551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee66551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee66551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee66551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee66551[3]), 3,4},
+ {&(_ZTV7ee66551[10]), 10,15},
+ {&(_ZTV7ee66551[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee66551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee66551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66551[];
+extern VTBL_ENTRY _ZTV7ee66551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66551[];
+static VTBL_ENTRY alt_thunk_names822[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65513fooEv,_ZThn24_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65513barEv,_ZThn16_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5513barEv,_ZThn16_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665513fooEv,_ZTv0_n12_N7ee665513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee665513fooEv,_ZThn24_N7ee665513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665513barEv,_ZTv0_n16_N7ee665513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665513barEv,_ZThn16_N7ee665513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66551 = { "ee66551", // class name
+ bases_ee66551, 4,
+ &(vtc_ee66551[0]), // expected_vtbl_contents
+ &(vtt_ee66551[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66551),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66551),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names822,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76551 : virtual dd6551 {
+ int e;
+ virtual void foo(); // _ZN7ee765513fooEv
+ virtual void bar(); // _ZN7ee765513barEv
+ ~ee76551(); // tgen
+ ee76551(); // tgen
+};
+//SIG(1 ee76551) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76551 ::foo(){vfunc_called(this, "_ZN7ee765513fooEv");}
+void ee76551 ::bar(){vfunc_called(this, "_ZN7ee765513barEv");}
+ee76551 ::~ee76551(){ note_dtor("ee76551", this);} // tgen
+ee76551 ::ee76551(){ note_ctor("ee76551", this);} // tgen
+
+static void Test_ee76551()
+{
+ extern Class_Descriptor cd_ee76551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76551, buf);
+ ee76551 *dp, &lv = *(dp=new (buf) ee76551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee76551");
+ check_base_class_offset(lv, (bb51*)(cc551*)(dd6551*), ABISELECT(32,20), "ee76551");
+ check_base_class_offset(lv, (cc551*)(dd6551*), ABISELECT(16,8), "ee76551");
+ check_base_class_offset(lv, (dd6551*), ABISELECT(16,8), "ee76551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76551.e");
+ test_class_info(&lv, &cd_ee76551);
+ dp->~ee76551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76551(Test_ee76551, "ee76551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76551C1Ev();
+extern void _ZN7ee76551D1Ev();
+Name_Map name_map_ee76551[] = {
+ NSPAIR(_ZN7ee76551C1Ev),
+ NSPAIR(_ZN7ee76551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd6551;
+extern VTBL_ENTRY _ZTI6dd6551[];
+extern VTBL_ENTRY _ZTV6dd6551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6551[];
+static Base_Class bases_ee76551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76551[];
+extern void _ZN7ee765513fooEv();
+extern void _ZN7ee765513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee765513barEv,_ZTv0_n20_N7ee765513barEv)();
+extern void ABISELECT(_ZThn16_N7ee765513barEv,_ZThn8_N7ee765513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee765513fooEv,_ZTv0_n24_N7ee765513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765513fooEv,_ZThn8_N7ee765513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765513barEv,_ZTv0_n16_N7ee765513barEv)();
+extern void ABISELECT(_ZThn32_N7ee765513barEv,_ZThn20_N7ee765513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765513fooEv,_ZTv0_n12_N7ee765513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee765513fooEv,_ZThn28_N7ee765513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76551[0]),
+ (VTBL_ENTRY)&_ZN7ee765513fooEv,
+ (VTBL_ENTRY)&_ZN7ee765513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765513barEv,_ZTv0_n20_N7ee765513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee765513fooEv,_ZTv0_n24_N7ee765513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765513barEv,_ZTv0_n16_N7ee765513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765513fooEv,_ZTv0_n12_N7ee765513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76551[];
+extern void _ZN6dd65513barEv();
+extern void _ZN6dd65513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6551__7ee76551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&_ZN6dd65513barEv,
+ (VTBL_ENTRY)&_ZN6dd65513fooEv,
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc5516dd6551__7ee76551[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc5516dd6551__7ee76551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc5516dd6551__7ee76551[] = {
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv)();
+extern void ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6551__7ee76551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6551__7ee76551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee76551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee76551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee76551[] = {
+ {&(_ZTV7ee76551[5]), 5,24},
+ {&(_ZTV7ee76551[13]), 13,24},
+ {&(_ZTV7ee76551[19]), 19,24},
+ {&(_ZTV7ee76551[23]), 23,24},
+ {&(_tg__ZTV6dd6551__7ee76551[4]), 4,6},
+ {&(_tg__ZTV5cc5516dd6551__7ee76551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc5516dd6551__7ee76551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc5516dd6551__7ee76551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6551__7ee76551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6551__7ee76551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee76551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee76551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76551[];
+extern VTBL_ENTRY _ZTV7ee76551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76551[];
+static VTBL_ENTRY alt_thunk_names823[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65513fooEv,_ZTv0_n12_N6dd65513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65513fooEv,_ZThn20_N6dd65513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65513barEv,_ZTv0_n16_N6dd65513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65513barEv,_ZThn12_N6dd65513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn12_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765513fooEv,_ZTv0_n12_N7ee765513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee765513fooEv,_ZThn28_N7ee765513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765513barEv,_ZTv0_n16_N7ee765513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765513barEv,_ZThn20_N7ee765513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee765513fooEv,_ZTv0_n24_N7ee765513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765513fooEv,_ZThn8_N7ee765513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765513barEv,_ZTv0_n20_N7ee765513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765513barEv,_ZThn8_N7ee765513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76551 = { "ee76551", // class name
+ bases_ee76551, 4,
+ &(vtc_ee76551[0]), // expected_vtbl_contents
+ &(vtt_ee76551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76551),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76551),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names823,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7551 : virtual cc551 {
+ int d;
+ virtual void bar(); // _ZN6dd75513barEv
+ virtual void foo(); // _ZN6dd75513fooEv
+ ~dd7551(); // tgen
+ dd7551(); // tgen
+};
+//SIG(-1 dd7551) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7551 ::bar(){vfunc_called(this, "_ZN6dd75513barEv");}
+void dd7551 ::foo(){vfunc_called(this, "_ZN6dd75513fooEv");}
+dd7551 ::~dd7551(){ note_dtor("dd7551", this);} // tgen
+dd7551 ::dd7551(){ note_ctor("dd7551", this);} // tgen
+
+static void Test_dd7551()
+{
+ extern Class_Descriptor cd_dd7551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7551, buf);
+ dd7551 *dp, &lv = *(dp=new (buf) dd7551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd7551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,16), "dd7551");
+ check_base_class_offset(lv, (cc551*), ABISELECT(16,8), "dd7551");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7551.d");
+ test_class_info(&lv, &cd_dd7551);
+ dp->~dd7551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7551(Test_dd7551, "dd7551", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7551C1Ev();
+extern void _ZN6dd7551D1Ev();
+Name_Map name_map_dd7551[] = {
+ NSPAIR(_ZN6dd7551C1Ev),
+ NSPAIR(_ZN6dd7551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+static Base_Class bases_dd7551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__6dd7551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__6dd7551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd7551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7551[] = {
+ {&(_ZTV6dd7551[5]), 5,22},
+ {&(_ZTV6dd7551[12]), 12,22},
+ {&(_ZTV6dd7551[17]), 17,22},
+ {&(_ZTV6dd7551[21]), 21,22},
+ {&(_tg__ZTV5cc551__6dd7551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__6dd7551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__6dd7551[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd7551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd7551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static VTBL_ENTRY alt_thunk_names824[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7551 = { "dd7551", // class name
+ bases_dd7551, 3,
+ &(vtc_dd7551[0]), // expected_vtbl_contents
+ &(vtt_dd7551[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7551),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names824,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07551 : dd7551 {
+ int e;
+ ~ee07551(); // tgen
+ ee07551(); // tgen
+};
+//SIG(1 ee07551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07551 ::~ee07551(){ note_dtor("ee07551", this);} // tgen
+ee07551 ::ee07551(){ note_ctor("ee07551", this);} // tgen
+
+static void Test_ee07551()
+{
+ extern Class_Descriptor cd_ee07551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07551, buf);
+ ee07551 *dp, &lv = *(dp=new (buf) ee07551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee07551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee07551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(16,12), "ee07551");
+ check_base_class_offset(lv, (dd7551*), 0, "ee07551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07551.e");
+ test_class_info(&lv, &cd_ee07551);
+ dp->~ee07551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07551(Test_ee07551, "ee07551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07551C1Ev();
+extern void _ZN7ee07551D1Ev();
+Name_Map name_map_ee07551[] = {
+ NSPAIR(_ZN7ee07551C1Ev),
+ NSPAIR(_ZN7ee07551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee07551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee07551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee07551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee07551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee07551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee07551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee07551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee07551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee07551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee07551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07551[] = {
+ {&(_ZTV7ee07551[5]), 5,22},
+ {&(_tg__ZTV6dd7551__7ee07551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee07551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee07551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee07551[3]), 3,4},
+ {&(_ZTV7ee07551[12]), 12,22},
+ {&(_ZTV7ee07551[17]), 17,22},
+ {&(_ZTV7ee07551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee07551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee07551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee07551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee07551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee07551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07551[];
+extern VTBL_ENTRY _ZTV7ee07551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07551[];
+static VTBL_ENTRY alt_thunk_names825[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07551 = { "ee07551", // class name
+ bases_ee07551, 4,
+ &(vtc_ee07551[0]), // expected_vtbl_contents
+ &(vtt_ee07551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names825,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17551 : virtual dd7551 {
+ int e;
+ ~ee17551(); // tgen
+ ee17551(); // tgen
+};
+//SIG(1 ee17551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17551 ::~ee17551(){ note_dtor("ee17551", this);} // tgen
+ee17551 ::ee17551(){ note_ctor("ee17551", this);} // tgen
+
+static void Test_ee17551()
+{
+ extern Class_Descriptor cd_ee17551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17551, buf);
+ ee17551 *dp, &lv = *(dp=new (buf) ee17551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee17551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee17551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(32,16), "ee17551");
+ check_base_class_offset(lv, (dd7551*), ABISELECT(16,8), "ee17551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17551.e");
+ test_class_info(&lv, &cd_ee17551);
+ dp->~ee17551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17551(Test_ee17551, "ee17551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17551C1Ev();
+extern void _ZN7ee17551D1Ev();
+Name_Map name_map_ee17551[] = {
+ NSPAIR(_ZN7ee17551C1Ev),
+ NSPAIR(_ZN7ee17551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee17551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17551[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee17551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee17551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee17551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee17551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee17551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee17551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee17551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee17551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee17551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17551[] = {
+ {&(_ZTV7ee17551[6]), 6,30},
+ {&(_ZTV7ee17551[13]), 13,30},
+ {&(_ZTV7ee17551[20]), 20,30},
+ {&(_ZTV7ee17551[25]), 25,30},
+ {&(_ZTV7ee17551[29]), 29,30},
+ {&(_tg__ZTV6dd7551__7ee17551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee17551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee17551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee17551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee17551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee17551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee17551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee17551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee17551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17551[];
+extern VTBL_ENTRY _ZTV7ee17551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17551[];
+static VTBL_ENTRY alt_thunk_names826[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17551 = { "ee17551", // class name
+ bases_ee17551, 4,
+ &(vtc_ee17551[0]), // expected_vtbl_contents
+ &(vtt_ee17551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17551),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names826,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27551 : dd7551 {
+ int e;
+ virtual void foo(); // _ZN7ee275513fooEv
+ ~ee27551(); // tgen
+ ee27551(); // tgen
+};
+//SIG(1 ee27551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27551 ::foo(){vfunc_called(this, "_ZN7ee275513fooEv");}
+ee27551 ::~ee27551(){ note_dtor("ee27551", this);} // tgen
+ee27551 ::ee27551(){ note_ctor("ee27551", this);} // tgen
+
+static void Test_ee27551()
+{
+ extern Class_Descriptor cd_ee27551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27551, buf);
+ ee27551 *dp, &lv = *(dp=new (buf) ee27551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee27551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee27551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(16,12), "ee27551");
+ check_base_class_offset(lv, (dd7551*), 0, "ee27551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27551.e");
+ test_class_info(&lv, &cd_ee27551);
+ dp->~ee27551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27551(Test_ee27551, "ee27551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27551C1Ev();
+extern void _ZN7ee27551D1Ev();
+Name_Map name_map_ee27551[] = {
+ NSPAIR(_ZN7ee27551C1Ev),
+ NSPAIR(_ZN7ee27551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee27551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN7ee275513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275513fooEv,_ZTv0_n12_N7ee275513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee275513fooEv,_ZThn28_N7ee275513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN7ee275513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275513fooEv,_ZTv0_n12_N7ee275513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee27551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee27551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee27551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee27551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee27551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee27551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee27551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee27551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee27551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27551[] = {
+ {&(_ZTV7ee27551[5]), 5,22},
+ {&(_tg__ZTV6dd7551__7ee27551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee27551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee27551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee27551[3]), 3,4},
+ {&(_ZTV7ee27551[12]), 12,22},
+ {&(_ZTV7ee27551[17]), 17,22},
+ {&(_ZTV7ee27551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee27551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee27551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee27551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee27551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee27551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27551[];
+extern VTBL_ENTRY _ZTV7ee27551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27551[];
+static VTBL_ENTRY alt_thunk_names827[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275513fooEv,_ZTv0_n12_N7ee275513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee275513fooEv,_ZThn28_N7ee275513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27551 = { "ee27551", // class name
+ bases_ee27551, 4,
+ &(vtc_ee27551[0]), // expected_vtbl_contents
+ &(vtt_ee27551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names827,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37551 : virtual dd7551 {
+ int e;
+ virtual void foo(); // _ZN7ee375513fooEv
+ ~ee37551(); // tgen
+ ee37551(); // tgen
+};
+//SIG(1 ee37551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37551 ::foo(){vfunc_called(this, "_ZN7ee375513fooEv");}
+ee37551 ::~ee37551(){ note_dtor("ee37551", this);} // tgen
+ee37551 ::ee37551(){ note_ctor("ee37551", this);} // tgen
+
+static void Test_ee37551()
+{
+ extern Class_Descriptor cd_ee37551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37551, buf);
+ ee37551 *dp, &lv = *(dp=new (buf) ee37551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee37551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee37551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(32,16), "ee37551");
+ check_base_class_offset(lv, (dd7551*), ABISELECT(16,8), "ee37551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37551.e");
+ test_class_info(&lv, &cd_ee37551);
+ dp->~ee37551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37551(Test_ee37551, "ee37551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37551C1Ev();
+extern void _ZN7ee37551D1Ev();
+Name_Map name_map_ee37551[] = {
+ NSPAIR(_ZN7ee37551C1Ev),
+ NSPAIR(_ZN7ee37551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee37551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37551[];
+extern void _ZN7ee375513fooEv();
+extern void _ZN6dd75513barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee375513fooEv,_ZTv0_n28_N7ee375513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375513fooEv,_ZThn8_N7ee375513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375513fooEv,_ZTv0_n12_N7ee375513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee375513fooEv,_ZThn32_N7ee375513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37551[0]),
+ (VTBL_ENTRY)&_ZN7ee375513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee375513fooEv,_ZTv0_n28_N7ee375513fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375513fooEv,_ZTv0_n12_N7ee375513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee37551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee37551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee37551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee37551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee37551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee37551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee37551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee37551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee37551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37551[] = {
+ {&(_ZTV7ee37551[6]), 6,31},
+ {&(_ZTV7ee37551[14]), 14,31},
+ {&(_ZTV7ee37551[21]), 21,31},
+ {&(_ZTV7ee37551[26]), 26,31},
+ {&(_ZTV7ee37551[30]), 30,31},
+ {&(_tg__ZTV6dd7551__7ee37551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee37551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee37551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee37551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee37551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee37551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee37551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee37551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee37551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37551[];
+extern VTBL_ENTRY _ZTV7ee37551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37551[];
+static VTBL_ENTRY alt_thunk_names828[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375513fooEv,_ZTv0_n12_N7ee375513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee375513fooEv,_ZThn32_N7ee375513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee375513fooEv,_ZTv0_n28_N7ee375513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375513fooEv,_ZThn8_N7ee375513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37551 = { "ee37551", // class name
+ bases_ee37551, 4,
+ &(vtc_ee37551[0]), // expected_vtbl_contents
+ &(vtt_ee37551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37551),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names828,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47551 : dd7551 {
+ int e;
+ virtual void bar(); // _ZN7ee475513barEv
+ ~ee47551(); // tgen
+ ee47551(); // tgen
+};
+//SIG(1 ee47551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47551 ::bar(){vfunc_called(this, "_ZN7ee475513barEv");}
+ee47551 ::~ee47551(){ note_dtor("ee47551", this);} // tgen
+ee47551 ::ee47551(){ note_ctor("ee47551", this);} // tgen
+
+static void Test_ee47551()
+{
+ extern Class_Descriptor cd_ee47551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47551, buf);
+ ee47551 *dp, &lv = *(dp=new (buf) ee47551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee47551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee47551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(16,12), "ee47551");
+ check_base_class_offset(lv, (dd7551*), 0, "ee47551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47551.e");
+ test_class_info(&lv, &cd_ee47551);
+ dp->~ee47551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47551(Test_ee47551, "ee47551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47551C1Ev();
+extern void _ZN7ee47551D1Ev();
+Name_Map name_map_ee47551[] = {
+ NSPAIR(_ZN7ee47551C1Ev),
+ NSPAIR(_ZN7ee47551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee47551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47551[];
+extern void _ZN7ee475513barEv();
+extern void _ZN6dd75513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee475513barEv,_ZTv0_n20_N7ee475513barEv)();
+extern void ABISELECT(_ZThn16_N7ee475513barEv,_ZThn12_N7ee475513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475513barEv,_ZTv0_n16_N7ee475513barEv)();
+extern void ABISELECT(_ZThn32_N7ee475513barEv,_ZThn20_N7ee475513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47551[0]),
+ (VTBL_ENTRY)&_ZN7ee475513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee475513barEv,_ZTv0_n20_N7ee475513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475513barEv,_ZTv0_n16_N7ee475513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee47551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee47551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee47551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee47551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee47551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee47551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee47551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee47551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee47551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47551[] = {
+ {&(_ZTV7ee47551[5]), 5,22},
+ {&(_tg__ZTV6dd7551__7ee47551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee47551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee47551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee47551[3]), 3,4},
+ {&(_ZTV7ee47551[12]), 12,22},
+ {&(_ZTV7ee47551[17]), 17,22},
+ {&(_ZTV7ee47551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee47551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee47551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee47551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee47551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee47551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47551[];
+extern VTBL_ENTRY _ZTV7ee47551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47551[];
+static VTBL_ENTRY alt_thunk_names829[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475513barEv,_ZTv0_n16_N7ee475513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475513barEv,_ZThn20_N7ee475513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee475513barEv,_ZTv0_n20_N7ee475513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475513barEv,_ZThn12_N7ee475513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47551 = { "ee47551", // class name
+ bases_ee47551, 4,
+ &(vtc_ee47551[0]), // expected_vtbl_contents
+ &(vtt_ee47551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names829,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57551 : virtual dd7551 {
+ int e;
+ virtual void bar(); // _ZN7ee575513barEv
+ ~ee57551(); // tgen
+ ee57551(); // tgen
+};
+//SIG(1 ee57551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57551 ::bar(){vfunc_called(this, "_ZN7ee575513barEv");}
+ee57551 ::~ee57551(){ note_dtor("ee57551", this);} // tgen
+ee57551 ::ee57551(){ note_ctor("ee57551", this);} // tgen
+
+static void Test_ee57551()
+{
+ extern Class_Descriptor cd_ee57551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57551, buf);
+ ee57551 *dp, &lv = *(dp=new (buf) ee57551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee57551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee57551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(32,16), "ee57551");
+ check_base_class_offset(lv, (dd7551*), ABISELECT(16,8), "ee57551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57551.e");
+ test_class_info(&lv, &cd_ee57551);
+ dp->~ee57551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57551(Test_ee57551, "ee57551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57551C1Ev();
+extern void _ZN7ee57551D1Ev();
+Name_Map name_map_ee57551[] = {
+ NSPAIR(_ZN7ee57551C1Ev),
+ NSPAIR(_ZN7ee57551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee57551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57551[];
+extern void _ZN7ee575513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee575513barEv,_ZTv0_n24_N7ee575513barEv)();
+extern void ABISELECT(_ZThn16_N7ee575513barEv,_ZThn8_N7ee575513barEv)() __attribute__((weak));
+extern void _ZN6dd75513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575513barEv,_ZTv0_n20_N7ee575513barEv)();
+extern void ABISELECT(_ZThn32_N7ee575513barEv,_ZThn16_N7ee575513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575513barEv,_ZTv0_n16_N7ee575513barEv)();
+extern void ABISELECT(_ZThn48_N7ee575513barEv,_ZThn24_N7ee575513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57551[0]),
+ (VTBL_ENTRY)&_ZN7ee575513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee575513barEv,_ZTv0_n24_N7ee575513barEv),
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575513barEv,_ZTv0_n20_N7ee575513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575513barEv,_ZTv0_n16_N7ee575513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee57551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee57551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee57551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee57551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee57551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee57551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee57551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee57551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee57551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57551[] = {
+ {&(_ZTV7ee57551[6]), 6,31},
+ {&(_ZTV7ee57551[14]), 14,31},
+ {&(_ZTV7ee57551[21]), 21,31},
+ {&(_ZTV7ee57551[26]), 26,31},
+ {&(_ZTV7ee57551[30]), 30,31},
+ {&(_tg__ZTV6dd7551__7ee57551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee57551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee57551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee57551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee57551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee57551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee57551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee57551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee57551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57551[];
+extern VTBL_ENTRY _ZTV7ee57551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57551[];
+static VTBL_ENTRY alt_thunk_names830[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575513barEv,_ZTv0_n16_N7ee575513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575513barEv,_ZThn24_N7ee575513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575513barEv,_ZTv0_n20_N7ee575513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575513barEv,_ZThn16_N7ee575513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee575513barEv,_ZTv0_n24_N7ee575513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575513barEv,_ZThn8_N7ee575513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57551 = { "ee57551", // class name
+ bases_ee57551, 4,
+ &(vtc_ee57551[0]), // expected_vtbl_contents
+ &(vtt_ee57551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57551),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names830,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67551 : dd7551 {
+ int e;
+ virtual void foo(); // _ZN7ee675513fooEv
+ virtual void bar(); // _ZN7ee675513barEv
+ ~ee67551(); // tgen
+ ee67551(); // tgen
+};
+//SIG(1 ee67551) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67551 ::foo(){vfunc_called(this, "_ZN7ee675513fooEv");}
+void ee67551 ::bar(){vfunc_called(this, "_ZN7ee675513barEv");}
+ee67551 ::~ee67551(){ note_dtor("ee67551", this);} // tgen
+ee67551 ::ee67551(){ note_ctor("ee67551", this);} // tgen
+
+static void Test_ee67551()
+{
+ extern Class_Descriptor cd_ee67551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67551, buf);
+ ee67551 *dp, &lv = *(dp=new (buf) ee67551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee67551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(32,20), "ee67551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(16,12), "ee67551");
+ check_base_class_offset(lv, (dd7551*), 0, "ee67551");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67551.e");
+ test_class_info(&lv, &cd_ee67551);
+ dp->~ee67551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67551(Test_ee67551, "ee67551", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67551C1Ev();
+extern void _ZN7ee67551D1Ev();
+Name_Map name_map_ee67551[] = {
+ NSPAIR(_ZN7ee67551C1Ev),
+ NSPAIR(_ZN7ee67551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee67551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67551[];
+extern void _ZN7ee675513barEv();
+extern void _ZN7ee675513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee675513barEv,_ZTv0_n20_N7ee675513barEv)();
+extern void ABISELECT(_ZThn16_N7ee675513barEv,_ZThn12_N7ee675513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675513barEv,_ZTv0_n16_N7ee675513barEv)();
+extern void ABISELECT(_ZThn32_N7ee675513barEv,_ZThn20_N7ee675513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675513fooEv,_ZTv0_n12_N7ee675513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee675513fooEv,_ZThn28_N7ee675513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67551[0]),
+ (VTBL_ENTRY)&_ZN7ee675513barEv,
+ (VTBL_ENTRY)&_ZN7ee675513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee675513barEv,_ZTv0_n20_N7ee675513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675513barEv,_ZTv0_n16_N7ee675513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675513fooEv,_ZTv0_n12_N7ee675513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee67551[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee67551[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee67551[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee67551[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee67551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee67551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee67551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee67551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee67551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67551[] = {
+ {&(_ZTV7ee67551[5]), 5,22},
+ {&(_tg__ZTV6dd7551__7ee67551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee67551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee67551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee67551[3]), 3,4},
+ {&(_ZTV7ee67551[12]), 12,22},
+ {&(_ZTV7ee67551[17]), 17,22},
+ {&(_ZTV7ee67551[21]), 21,22},
+ {&(_tg__ZTV5cc551__7ee67551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee67551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee67551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee67551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee67551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67551[];
+extern VTBL_ENTRY _ZTV7ee67551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67551[];
+static VTBL_ENTRY alt_thunk_names831[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn28_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn20_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn12_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675513fooEv,_ZTv0_n12_N7ee675513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee675513fooEv,_ZThn28_N7ee675513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675513barEv,_ZTv0_n16_N7ee675513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675513barEv,_ZThn20_N7ee675513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee675513barEv,_ZTv0_n20_N7ee675513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675513barEv,_ZThn12_N7ee675513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67551 = { "ee67551", // class name
+ bases_ee67551, 4,
+ &(vtc_ee67551[0]), // expected_vtbl_contents
+ &(vtt_ee67551[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67551),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67551),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67551),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names831,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77551 : virtual dd7551 {
+ int e;
+ virtual void foo(); // _ZN7ee775513fooEv
+ virtual void bar(); // _ZN7ee775513barEv
+ ~ee77551(); // tgen
+ ee77551(); // tgen
+};
+//SIG(1 ee77551) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77551 ::foo(){vfunc_called(this, "_ZN7ee775513fooEv");}
+void ee77551 ::bar(){vfunc_called(this, "_ZN7ee775513barEv");}
+ee77551 ::~ee77551(){ note_dtor("ee77551", this);} // tgen
+ee77551 ::ee77551(){ note_ctor("ee77551", this);} // tgen
+
+static void Test_ee77551()
+{
+ extern Class_Descriptor cd_ee77551;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77551, buf);
+ ee77551 *dp, &lv = *(dp=new (buf) ee77551());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77551)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77551)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee77551");
+ check_base_class_offset(lv, (bb51*)(cc551*), ABISELECT(48,24), "ee77551");
+ check_base_class_offset(lv, (cc551*)(dd7551*), ABISELECT(32,16), "ee77551");
+ check_base_class_offset(lv, (dd7551*), ABISELECT(16,8), "ee77551");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77551.e");
+ test_class_info(&lv, &cd_ee77551);
+ dp->~ee77551();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77551(Test_ee77551, "ee77551", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77551C1Ev();
+extern void _ZN7ee77551D1Ev();
+Name_Map name_map_ee77551[] = {
+ NSPAIR(_ZN7ee77551C1Ev),
+ NSPAIR(_ZN7ee77551D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc551;
+extern VTBL_ENTRY _ZTI5cc551[];
+extern VTBL_ENTRY _ZTV5cc551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc551[];
+extern Class_Descriptor cd_dd7551;
+extern VTBL_ENTRY _ZTI6dd7551[];
+extern VTBL_ENTRY _ZTV6dd7551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7551[];
+static Base_Class bases_ee77551[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 28, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc551, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7551, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77551[];
+extern void _ZN7ee775513fooEv();
+extern void _ZN7ee775513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee775513barEv,_ZTv0_n24_N7ee775513barEv)();
+extern void ABISELECT(_ZThn16_N7ee775513barEv,_ZThn8_N7ee775513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee775513fooEv,_ZTv0_n28_N7ee775513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775513fooEv,_ZThn8_N7ee775513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee775513barEv,_ZTv0_n20_N7ee775513barEv)();
+extern void ABISELECT(_ZThn32_N7ee775513barEv,_ZThn16_N7ee775513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775513barEv,_ZTv0_n16_N7ee775513barEv)();
+extern void ABISELECT(_ZThn48_N7ee775513barEv,_ZThn24_N7ee775513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775513fooEv,_ZTv0_n12_N7ee775513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee775513fooEv,_ZThn32_N7ee775513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77551[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77551[0]),
+ (VTBL_ENTRY)&_ZN7ee775513fooEv,
+ (VTBL_ENTRY)&_ZN7ee775513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775513barEv,_ZTv0_n24_N7ee775513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee775513fooEv,_ZTv0_n28_N7ee775513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775513barEv,_ZTv0_n20_N7ee775513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775513barEv,_ZTv0_n16_N7ee775513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775513fooEv,_ZTv0_n12_N7ee775513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77551[];
+extern void _ZN6dd75513barEv();
+extern void _ZN6dd75513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7551__7ee77551[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&_ZN6dd75513barEv,
+ (VTBL_ENTRY)&_ZN6dd75513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv)();
+extern void ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc551__6dd7551__7ee77551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv)();
+extern void ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7551__7ee77551[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7551__7ee77551[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv),
+};
+extern void _ZN5cc5513barEv();
+static VTBL_ENTRY _tg__ZTV5cc551__7ee77551[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN5cc5513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv)();
+extern void ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc551__7ee77551[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv),
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__5cc551__7ee77551[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc551[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee77551[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee77551[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77551[] = {
+ {&(_ZTV7ee77551[6]), 6,32},
+ {&(_ZTV7ee77551[15]), 15,32},
+ {&(_ZTV7ee77551[22]), 22,32},
+ {&(_ZTV7ee77551[27]), 27,32},
+ {&(_ZTV7ee77551[31]), 31,32},
+ {&(_tg__ZTV6dd7551__7ee77551[5]), 5,7},
+ {&(_tg__ZTV5cc551__6dd7551__7ee77551[5]), 5,6},
+ {&(_tg__ZTV4bb51__6dd7551__7ee77551[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7551__7ee77551[3]), 3,4},
+ {&(_tg__ZTV5cc551__7ee77551[4]), 4,5},
+ {&(_tg__ZTV4bb51__5cc551__7ee77551[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc551__7ee77551[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee77551[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee77551[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77551[];
+extern VTBL_ENTRY _ZTV7ee77551[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77551[];
+static VTBL_ENTRY alt_thunk_names832[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5513barEv,_ZTv0_n16_N5cc5513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5513barEv,_ZThn8_N5cc5513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75513fooEv,_ZTv0_n12_N6dd75513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75513fooEv,_ZThn24_N6dd75513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75513barEv,_ZTv0_n16_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75513barEv,_ZThn16_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75513barEv,_ZTv0_n20_N6dd75513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75513barEv,_ZThn8_N6dd75513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775513fooEv,_ZTv0_n12_N7ee775513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee775513fooEv,_ZThn32_N7ee775513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775513barEv,_ZTv0_n16_N7ee775513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775513barEv,_ZThn24_N7ee775513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775513barEv,_ZTv0_n20_N7ee775513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775513barEv,_ZThn16_N7ee775513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee775513fooEv,_ZTv0_n28_N7ee775513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775513fooEv,_ZThn8_N7ee775513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775513barEv,_ZTv0_n24_N7ee775513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775513barEv,_ZThn8_N7ee775513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77551 = { "ee77551", // class name
+ bases_ee77551, 4,
+ &(vtc_ee77551[0]), // expected_vtbl_contents
+ &(vtt_ee77551[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77551),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77551),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77551),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names832,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc651 : bb51 {
+ int c;
+ virtual void foo(); // _ZN5cc6513fooEv
+ virtual void bar(); // _ZN5cc6513barEv
+ ~cc651(); // tgen
+ cc651(); // tgen
+};
+//SIG(-1 cc651) C1{ BC2{ VBC3{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc651 ::foo(){vfunc_called(this, "_ZN5cc6513fooEv");}
+void cc651 ::bar(){vfunc_called(this, "_ZN5cc6513barEv");}
+cc651 ::~cc651(){ note_dtor("cc651", this);} // tgen
+cc651 ::cc651(){ note_ctor("cc651", this);} // tgen
+
+static void Test_cc651()
+{
+ extern Class_Descriptor cd_cc651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc651, buf);
+ cc651 *dp, &lv = *(dp=new (buf) cc651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc651)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(16,12), "cc651");
+ check_base_class_offset(lv, (bb51*), 0, "cc651");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc651.c");
+ test_class_info(&lv, &cd_cc651);
+ dp->~cc651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc651(Test_cc651, "cc651", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc651C1Ev();
+extern void _ZN5cc651D1Ev();
+Name_Map name_map_cc651[] = {
+ NSPAIR(_ZN5cc651C1Ev),
+ NSPAIR(_ZN5cc651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(16,12), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc651[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc651[] = {
+ {&(_ZTV5cc651[3]), 3,9},
+ {&(_tg__ZTV4bb51__5cc651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc651[3]), 3,4},
+ {&(_ZTV5cc651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static VTBL_ENTRY alt_thunk_names833[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc651 = { "cc651", // class name
+ bases_cc651, 2,
+ &(vtc_cc651[0]), // expected_vtbl_contents
+ &(vtt_cc651[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc651),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names833,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0651 : cc651 {
+ int d;
+ ~dd0651(); // tgen
+ dd0651(); // tgen
+};
+//SIG(-1 dd0651) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0651 ::~dd0651(){ note_dtor("dd0651", this);} // tgen
+dd0651 ::dd0651(){ note_ctor("dd0651", this);} // tgen
+
+static void Test_dd0651()
+{
+ extern Class_Descriptor cd_dd0651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0651, buf);
+ dd0651 *dp, &lv = *(dp=new (buf) dd0651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(24,16), "dd0651");
+ check_base_class_offset(lv, (bb51*)(cc651*), 0, "dd0651");
+ check_base_class_offset(lv, (cc651*), 0, "dd0651");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0651.d");
+ test_class_info(&lv, &cd_dd0651);
+ dp->~dd0651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0651(Test_dd0651, "dd0651", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0651C1Ev();
+extern void _ZN6dd0651D1Ev();
+Name_Map name_map_dd0651[] = {
+ NSPAIR(_ZN6dd0651C1Ev),
+ NSPAIR(_ZN6dd0651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd0651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd0651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd0651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd0651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd0651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd0651[] = {
+ {&(_ZTV6dd0651[3]), 3,9},
+ {&(_tg__ZTV5cc651__6dd0651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd0651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd0651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd0651[3]), 3,4},
+ {&(_ZTV6dd0651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static VTBL_ENTRY alt_thunk_names834[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0651 = { "dd0651", // class name
+ bases_dd0651, 3,
+ &(vtc_dd0651[0]), // expected_vtbl_contents
+ &(vtt_dd0651[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0651),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names834,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00651 : dd0651 {
+ int e;
+ ~ee00651(); // tgen
+ ee00651(); // tgen
+};
+//SIG(1 ee00651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00651 ::~ee00651(){ note_dtor("ee00651", this);} // tgen
+ee00651 ::ee00651(){ note_ctor("ee00651", this);} // tgen
+
+static void Test_ee00651()
+{
+ extern Class_Descriptor cd_ee00651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00651, buf);
+ ee00651 *dp, &lv = *(dp=new (buf) ee00651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(24,20), "ee00651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), 0, "ee00651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), 0, "ee00651");
+ check_base_class_offset(lv, (dd0651*), 0, "ee00651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00651.e");
+ test_class_info(&lv, &cd_ee00651);
+ dp->~ee00651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00651(Test_ee00651, "ee00651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00651C1Ev();
+extern void _ZN7ee00651D1Ev();
+Name_Map name_map_ee00651[] = {
+ NSPAIR(_ZN7ee00651C1Ev),
+ NSPAIR(_ZN7ee00651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee00651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee00651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee00651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee00651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee00651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee00651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee00651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee00651[] = {
+ {&(_ZTV7ee00651[3]), 3,9},
+ {&(_tg__ZTV6dd0651__7ee00651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee00651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee00651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee00651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee00651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee00651[3]), 3,4},
+ {&(_ZTV7ee00651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee00651[];
+extern VTBL_ENTRY _ZTV7ee00651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00651[];
+static VTBL_ENTRY alt_thunk_names835[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00651 = { "ee00651", // class name
+ bases_ee00651, 4,
+ &(vtc_ee00651[0]), // expected_vtbl_contents
+ &(vtt_ee00651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names835,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10651 : virtual dd0651 {
+ int e;
+ ~ee10651(); // tgen
+ ee10651(); // tgen
+};
+//SIG(1 ee10651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10651 ::~ee10651(){ note_dtor("ee10651", this);} // tgen
+ee10651 ::ee10651(){ note_ctor("ee10651", this);} // tgen
+
+static void Test_ee10651()
+{
+ extern Class_Descriptor cd_ee10651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10651, buf);
+ ee10651 *dp, &lv = *(dp=new (buf) ee10651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(40,24), "ee10651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), ABISELECT(16,8), "ee10651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), ABISELECT(16,8), "ee10651");
+ check_base_class_offset(lv, (dd0651*), ABISELECT(16,8), "ee10651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10651.e");
+ test_class_info(&lv, &cd_ee10651);
+ dp->~ee10651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10651(Test_ee10651, "ee10651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10651C1Ev();
+extern void _ZN7ee10651D1Ev();
+Name_Map name_map_ee10651[] = {
+ NSPAIR(_ZN7ee10651C1Ev),
+ NSPAIR(_ZN7ee10651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee10651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10651[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee10651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee10651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee10651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee10651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee10651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee10651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee10651[] = {
+ {&(_ZTV7ee10651[4]), 4,15},
+ {&(_ZTV7ee10651[9]), 9,15},
+ {&(_ZTV7ee10651[14]), 14,15},
+ {&(_tg__ZTV6dd0651__7ee10651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee10651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee10651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee10651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee10651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee10651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10651[];
+extern VTBL_ENTRY _ZTV7ee10651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10651[];
+static VTBL_ENTRY alt_thunk_names836[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10651 = { "ee10651", // class name
+ bases_ee10651, 4,
+ &(vtc_ee10651[0]), // expected_vtbl_contents
+ &(vtt_ee10651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names836,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20651 : dd0651 {
+ int e;
+ virtual void foo(); // _ZN7ee206513fooEv
+ ~ee20651(); // tgen
+ ee20651(); // tgen
+};
+//SIG(1 ee20651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20651 ::foo(){vfunc_called(this, "_ZN7ee206513fooEv");}
+ee20651 ::~ee20651(){ note_dtor("ee20651", this);} // tgen
+ee20651 ::ee20651(){ note_ctor("ee20651", this);} // tgen
+
+static void Test_ee20651()
+{
+ extern Class_Descriptor cd_ee20651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20651, buf);
+ ee20651 *dp, &lv = *(dp=new (buf) ee20651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(24,20), "ee20651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), 0, "ee20651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), 0, "ee20651");
+ check_base_class_offset(lv, (dd0651*), 0, "ee20651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20651.e");
+ test_class_info(&lv, &cd_ee20651);
+ dp->~ee20651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20651(Test_ee20651, "ee20651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20651C1Ev();
+extern void _ZN7ee20651D1Ev();
+Name_Map name_map_ee20651[] = {
+ NSPAIR(_ZN7ee20651C1Ev),
+ NSPAIR(_ZN7ee20651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee20651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN7ee206513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee206513fooEv,_ZTv0_n12_N7ee206513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee206513fooEv,_ZThn20_N7ee206513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN7ee206513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee206513fooEv,_ZTv0_n12_N7ee206513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee20651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee20651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee20651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee20651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee20651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee20651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee20651[] = {
+ {&(_ZTV7ee20651[3]), 3,9},
+ {&(_tg__ZTV6dd0651__7ee20651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee20651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee20651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee20651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee20651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee20651[3]), 3,4},
+ {&(_ZTV7ee20651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee20651[];
+extern VTBL_ENTRY _ZTV7ee20651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20651[];
+static VTBL_ENTRY alt_thunk_names837[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee206513fooEv,_ZTv0_n12_N7ee206513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee206513fooEv,_ZThn20_N7ee206513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20651 = { "ee20651", // class name
+ bases_ee20651, 4,
+ &(vtc_ee20651[0]), // expected_vtbl_contents
+ &(vtt_ee20651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names837,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30651 : virtual dd0651 {
+ int e;
+ virtual void foo(); // _ZN7ee306513fooEv
+ ~ee30651(); // tgen
+ ee30651(); // tgen
+};
+//SIG(1 ee30651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30651 ::foo(){vfunc_called(this, "_ZN7ee306513fooEv");}
+ee30651 ::~ee30651(){ note_dtor("ee30651", this);} // tgen
+ee30651 ::ee30651(){ note_ctor("ee30651", this);} // tgen
+
+static void Test_ee30651()
+{
+ extern Class_Descriptor cd_ee30651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30651, buf);
+ ee30651 *dp, &lv = *(dp=new (buf) ee30651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(40,24), "ee30651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), ABISELECT(16,8), "ee30651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), ABISELECT(16,8), "ee30651");
+ check_base_class_offset(lv, (dd0651*), ABISELECT(16,8), "ee30651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30651.e");
+ test_class_info(&lv, &cd_ee30651);
+ dp->~ee30651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30651(Test_ee30651, "ee30651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30651C1Ev();
+extern void _ZN7ee30651D1Ev();
+Name_Map name_map_ee30651[] = {
+ NSPAIR(_ZN7ee30651C1Ev),
+ NSPAIR(_ZN7ee30651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee30651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30651[];
+extern void _ZN7ee306513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee306513fooEv,_ZTv0_n20_N7ee306513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306513fooEv,_ZThn8_N7ee306513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee306513fooEv,_ZTv0_n12_N7ee306513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee306513fooEv,_ZThn24_N7ee306513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30651[0]),
+ (VTBL_ENTRY)&_ZN7ee306513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee306513fooEv,_ZTv0_n20_N7ee306513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306513fooEv,_ZTv0_n12_N7ee306513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee30651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee30651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee30651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee30651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee30651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee30651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee30651[] = {
+ {&(_ZTV7ee30651[4]), 4,16},
+ {&(_ZTV7ee30651[10]), 10,16},
+ {&(_ZTV7ee30651[15]), 15,16},
+ {&(_tg__ZTV6dd0651__7ee30651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee30651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee30651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee30651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee30651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee30651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30651[];
+extern VTBL_ENTRY _ZTV7ee30651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30651[];
+static VTBL_ENTRY alt_thunk_names838[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306513fooEv,_ZTv0_n12_N7ee306513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee306513fooEv,_ZThn24_N7ee306513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee306513fooEv,_ZTv0_n20_N7ee306513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306513fooEv,_ZThn8_N7ee306513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30651 = { "ee30651", // class name
+ bases_ee30651, 4,
+ &(vtc_ee30651[0]), // expected_vtbl_contents
+ &(vtt_ee30651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names838,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40651 : dd0651 {
+ int e;
+ virtual void bar(); // _ZN7ee406513barEv
+ ~ee40651(); // tgen
+ ee40651(); // tgen
+};
+//SIG(1 ee40651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40651 ::bar(){vfunc_called(this, "_ZN7ee406513barEv");}
+ee40651 ::~ee40651(){ note_dtor("ee40651", this);} // tgen
+ee40651 ::ee40651(){ note_ctor("ee40651", this);} // tgen
+
+static void Test_ee40651()
+{
+ extern Class_Descriptor cd_ee40651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40651, buf);
+ ee40651 *dp, &lv = *(dp=new (buf) ee40651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(24,20), "ee40651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), 0, "ee40651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), 0, "ee40651");
+ check_base_class_offset(lv, (dd0651*), 0, "ee40651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40651.e");
+ test_class_info(&lv, &cd_ee40651);
+ dp->~ee40651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40651(Test_ee40651, "ee40651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40651C1Ev();
+extern void _ZN7ee40651D1Ev();
+Name_Map name_map_ee40651[] = {
+ NSPAIR(_ZN7ee40651C1Ev),
+ NSPAIR(_ZN7ee40651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee40651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40651[];
+extern void _ZN7ee406513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40651[0]),
+ (VTBL_ENTRY)&_ZN7ee406513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee40651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee40651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee40651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee40651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee40651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee40651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee40651[] = {
+ {&(_ZTV7ee40651[3]), 3,9},
+ {&(_tg__ZTV6dd0651__7ee40651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee40651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee40651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee40651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee40651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee40651[3]), 3,4},
+ {&(_ZTV7ee40651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee40651[];
+extern VTBL_ENTRY _ZTV7ee40651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40651[];
+static VTBL_ENTRY alt_thunk_names839[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40651 = { "ee40651", // class name
+ bases_ee40651, 4,
+ &(vtc_ee40651[0]), // expected_vtbl_contents
+ &(vtt_ee40651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names839,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50651 : virtual dd0651 {
+ int e;
+ virtual void bar(); // _ZN7ee506513barEv
+ ~ee50651(); // tgen
+ ee50651(); // tgen
+};
+//SIG(1 ee50651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50651 ::bar(){vfunc_called(this, "_ZN7ee506513barEv");}
+ee50651 ::~ee50651(){ note_dtor("ee50651", this);} // tgen
+ee50651 ::ee50651(){ note_ctor("ee50651", this);} // tgen
+
+static void Test_ee50651()
+{
+ extern Class_Descriptor cd_ee50651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50651, buf);
+ ee50651 *dp, &lv = *(dp=new (buf) ee50651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(40,24), "ee50651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), ABISELECT(16,8), "ee50651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), ABISELECT(16,8), "ee50651");
+ check_base_class_offset(lv, (dd0651*), ABISELECT(16,8), "ee50651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50651.e");
+ test_class_info(&lv, &cd_ee50651);
+ dp->~ee50651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50651(Test_ee50651, "ee50651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50651C1Ev();
+extern void _ZN7ee50651D1Ev();
+Name_Map name_map_ee50651[] = {
+ NSPAIR(_ZN7ee50651C1Ev),
+ NSPAIR(_ZN7ee50651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee50651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50651[];
+extern void _ZN7ee506513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506513barEv,_ZTv0_n16_N7ee506513barEv)();
+extern void ABISELECT(_ZThn16_N7ee506513barEv,_ZThn8_N7ee506513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50651[0]),
+ (VTBL_ENTRY)&_ZN7ee506513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506513barEv,_ZTv0_n16_N7ee506513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee50651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee50651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee50651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee50651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee50651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee50651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee50651[] = {
+ {&(_ZTV7ee50651[4]), 4,16},
+ {&(_ZTV7ee50651[10]), 10,16},
+ {&(_ZTV7ee50651[15]), 15,16},
+ {&(_tg__ZTV6dd0651__7ee50651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee50651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee50651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee50651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee50651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee50651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50651[];
+extern VTBL_ENTRY _ZTV7ee50651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50651[];
+static VTBL_ENTRY alt_thunk_names840[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506513barEv,_ZTv0_n16_N7ee506513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506513barEv,_ZThn8_N7ee506513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50651 = { "ee50651", // class name
+ bases_ee50651, 4,
+ &(vtc_ee50651[0]), // expected_vtbl_contents
+ &(vtt_ee50651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names840,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60651 : dd0651 {
+ int e;
+ virtual void foo(); // _ZN7ee606513fooEv
+ virtual void bar(); // _ZN7ee606513barEv
+ ~ee60651(); // tgen
+ ee60651(); // tgen
+};
+//SIG(1 ee60651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60651 ::foo(){vfunc_called(this, "_ZN7ee606513fooEv");}
+void ee60651 ::bar(){vfunc_called(this, "_ZN7ee606513barEv");}
+ee60651 ::~ee60651(){ note_dtor("ee60651", this);} // tgen
+ee60651 ::ee60651(){ note_ctor("ee60651", this);} // tgen
+
+static void Test_ee60651()
+{
+ extern Class_Descriptor cd_ee60651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60651, buf);
+ ee60651 *dp, &lv = *(dp=new (buf) ee60651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(24,20), "ee60651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), 0, "ee60651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), 0, "ee60651");
+ check_base_class_offset(lv, (dd0651*), 0, "ee60651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60651.e");
+ test_class_info(&lv, &cd_ee60651);
+ dp->~ee60651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60651(Test_ee60651, "ee60651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60651C1Ev();
+extern void _ZN7ee60651D1Ev();
+Name_Map name_map_ee60651[] = {
+ NSPAIR(_ZN7ee60651C1Ev),
+ NSPAIR(_ZN7ee60651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee60651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60651[];
+extern void _ZN7ee606513barEv();
+extern void _ZN7ee606513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee606513fooEv,_ZTv0_n12_N7ee606513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee606513fooEv,_ZThn20_N7ee606513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60651[0]),
+ (VTBL_ENTRY)&_ZN7ee606513barEv,
+ (VTBL_ENTRY)&_ZN7ee606513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee606513fooEv,_ZTv0_n12_N7ee606513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee60651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee60651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee60651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee60651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee60651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee60651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee60651[] = {
+ {&(_ZTV7ee60651[3]), 3,9},
+ {&(_tg__ZTV6dd0651__7ee60651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee60651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee60651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee60651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee60651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee60651[3]), 3,4},
+ {&(_ZTV7ee60651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee60651[];
+extern VTBL_ENTRY _ZTV7ee60651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60651[];
+static VTBL_ENTRY alt_thunk_names841[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee606513fooEv,_ZTv0_n12_N7ee606513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee606513fooEv,_ZThn20_N7ee606513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60651 = { "ee60651", // class name
+ bases_ee60651, 4,
+ &(vtc_ee60651[0]), // expected_vtbl_contents
+ &(vtt_ee60651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names841,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70651 : virtual dd0651 {
+ int e;
+ virtual void foo(); // _ZN7ee706513fooEv
+ virtual void bar(); // _ZN7ee706513barEv
+ ~ee70651(); // tgen
+ ee70651(); // tgen
+};
+//SIG(1 ee70651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70651 ::foo(){vfunc_called(this, "_ZN7ee706513fooEv");}
+void ee70651 ::bar(){vfunc_called(this, "_ZN7ee706513barEv");}
+ee70651 ::~ee70651(){ note_dtor("ee70651", this);} // tgen
+ee70651 ::ee70651(){ note_ctor("ee70651", this);} // tgen
+
+static void Test_ee70651()
+{
+ extern Class_Descriptor cd_ee70651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70651, buf);
+ ee70651 *dp, &lv = *(dp=new (buf) ee70651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd0651*), ABISELECT(40,24), "ee70651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd0651*), ABISELECT(16,8), "ee70651");
+ check_base_class_offset(lv, (cc651*)(dd0651*), ABISELECT(16,8), "ee70651");
+ check_base_class_offset(lv, (dd0651*), ABISELECT(16,8), "ee70651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70651.e");
+ test_class_info(&lv, &cd_ee70651);
+ dp->~ee70651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70651(Test_ee70651, "ee70651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70651C1Ev();
+extern void _ZN7ee70651D1Ev();
+Name_Map name_map_ee70651[] = {
+ NSPAIR(_ZN7ee70651C1Ev),
+ NSPAIR(_ZN7ee70651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd0651;
+extern VTBL_ENTRY _ZTI6dd0651[];
+extern VTBL_ENTRY _ZTV6dd0651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0651[];
+static Base_Class bases_ee70651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70651[];
+extern void _ZN7ee706513fooEv();
+extern void _ZN7ee706513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee706513barEv,_ZTv0_n16_N7ee706513barEv)();
+extern void ABISELECT(_ZThn16_N7ee706513barEv,_ZThn8_N7ee706513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee706513fooEv,_ZTv0_n20_N7ee706513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706513fooEv,_ZThn8_N7ee706513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee706513fooEv,_ZTv0_n12_N7ee706513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee706513fooEv,_ZThn24_N7ee706513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70651[0]),
+ (VTBL_ENTRY)&_ZN7ee706513fooEv,
+ (VTBL_ENTRY)&_ZN7ee706513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706513barEv,_ZTv0_n16_N7ee706513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee706513fooEv,_ZTv0_n20_N7ee706513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706513fooEv,_ZTv0_n12_N7ee706513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0651__7ee70651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd0651__7ee70651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd0651__7ee70651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd0651__7ee70651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd0651__7ee70651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0651__7ee70651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee70651[] = {
+ {&(_ZTV7ee70651[4]), 4,17},
+ {&(_ZTV7ee70651[11]), 11,17},
+ {&(_ZTV7ee70651[16]), 16,17},
+ {&(_tg__ZTV6dd0651__7ee70651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd0651__7ee70651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd0651__7ee70651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd0651__7ee70651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd0651__7ee70651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd0651__7ee70651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70651[];
+extern VTBL_ENTRY _ZTV7ee70651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70651[];
+static VTBL_ENTRY alt_thunk_names842[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706513fooEv,_ZTv0_n12_N7ee706513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee706513fooEv,_ZThn24_N7ee706513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee706513fooEv,_ZTv0_n20_N7ee706513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706513fooEv,_ZThn8_N7ee706513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706513barEv,_ZTv0_n16_N7ee706513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706513barEv,_ZThn8_N7ee706513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70651 = { "ee70651", // class name
+ bases_ee70651, 4,
+ &(vtc_ee70651[0]), // expected_vtbl_contents
+ &(vtt_ee70651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names842,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1651 : virtual cc651 {
+ int d;
+ ~dd1651(); // tgen
+ dd1651(); // tgen
+};
+//SIG(-1 dd1651) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1651 ::~dd1651(){ note_dtor("dd1651", this);} // tgen
+dd1651 ::dd1651(){ note_ctor("dd1651", this);} // tgen
+
+static void Test_dd1651()
+{
+ extern Class_Descriptor cd_dd1651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1651, buf);
+ dd1651 *dp, &lv = *(dp=new (buf) dd1651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,20), "dd1651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,8), "dd1651");
+ check_base_class_offset(lv, (cc651*), ABISELECT(16,8), "dd1651");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1651.d");
+ test_class_info(&lv, &cd_dd1651);
+ dp->~dd1651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1651(Test_dd1651, "dd1651", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1651C1Ev();
+extern void _ZN6dd1651D1Ev();
+Name_Map name_map_dd1651[] = {
+ NSPAIR(_ZN6dd1651C1Ev),
+ NSPAIR(_ZN6dd1651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd1651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd1651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd1651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd1651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd1651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd1651[] = {
+ {&(_ZTV6dd1651[4]), 4,15},
+ {&(_ZTV6dd1651[9]), 9,15},
+ {&(_ZTV6dd1651[14]), 14,15},
+ {&(_tg__ZTV5cc651__6dd1651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd1651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd1651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd1651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static VTBL_ENTRY alt_thunk_names843[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1651 = { "dd1651", // class name
+ bases_dd1651, 3,
+ &(vtc_dd1651[0]), // expected_vtbl_contents
+ &(vtt_dd1651[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1651),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names843,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01651 : dd1651 {
+ int e;
+ ~ee01651(); // tgen
+ ee01651(); // tgen
+};
+//SIG(1 ee01651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01651 ::~ee01651(){ note_dtor("ee01651", this);} // tgen
+ee01651 ::ee01651(){ note_ctor("ee01651", this);} // tgen
+
+static void Test_ee01651()
+{
+ extern Class_Descriptor cd_ee01651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01651, buf);
+ ee01651 *dp, &lv = *(dp=new (buf) ee01651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee01651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee01651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(16,12), "ee01651");
+ check_base_class_offset(lv, (dd1651*), 0, "ee01651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01651.e");
+ test_class_info(&lv, &cd_ee01651);
+ dp->~ee01651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01651(Test_ee01651, "ee01651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01651C1Ev();
+extern void _ZN7ee01651D1Ev();
+Name_Map name_map_ee01651[] = {
+ NSPAIR(_ZN7ee01651C1Ev),
+ NSPAIR(_ZN7ee01651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee01651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01651[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee01651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee01651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee01651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee01651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee01651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee01651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee01651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee01651[] = {
+ {&(_ZTV7ee01651[4]), 4,15},
+ {&(_tg__ZTV6dd1651__7ee01651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee01651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee01651[3]), 3,4},
+ {&(_ZTV7ee01651[9]), 9,15},
+ {&(_ZTV7ee01651[14]), 14,15},
+ {&(_tg__ZTV5cc651__7ee01651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee01651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee01651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee01651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01651[];
+extern VTBL_ENTRY _ZTV7ee01651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01651[];
+static VTBL_ENTRY alt_thunk_names844[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01651 = { "ee01651", // class name
+ bases_ee01651, 4,
+ &(vtc_ee01651[0]), // expected_vtbl_contents
+ &(vtt_ee01651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names844,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11651 : virtual dd1651 {
+ int e;
+ ~ee11651(); // tgen
+ ee11651(); // tgen
+};
+//SIG(1 ee11651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11651 ::~ee11651(){ note_dtor("ee11651", this);} // tgen
+ee11651 ::ee11651(){ note_ctor("ee11651", this);} // tgen
+
+static void Test_ee11651()
+{
+ extern Class_Descriptor cd_ee11651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11651, buf);
+ ee11651 *dp, &lv = *(dp=new (buf) ee11651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee11651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee11651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(32,16), "ee11651");
+ check_base_class_offset(lv, (dd1651*), ABISELECT(16,8), "ee11651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11651.e");
+ test_class_info(&lv, &cd_ee11651);
+ dp->~ee11651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11651(Test_ee11651, "ee11651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11651C1Ev();
+extern void _ZN7ee11651D1Ev();
+Name_Map name_map_ee11651[] = {
+ NSPAIR(_ZN7ee11651C1Ev),
+ NSPAIR(_ZN7ee11651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee11651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 16, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11651[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11651[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee11651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee11651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee11651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee11651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee11651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee11651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee11651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee11651[] = {
+ {&(_ZTV7ee11651[5]), 5,20},
+ {&(_ZTV7ee11651[9]), 9,20},
+ {&(_ZTV7ee11651[14]), 14,20},
+ {&(_ZTV7ee11651[19]), 19,20},
+ {&(_tg__ZTV6dd1651__7ee11651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee11651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee11651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee11651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee11651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee11651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee11651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11651[];
+extern VTBL_ENTRY _ZTV7ee11651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11651[];
+static VTBL_ENTRY alt_thunk_names845[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11651 = { "ee11651", // class name
+ bases_ee11651, 4,
+ &(vtc_ee11651[0]), // expected_vtbl_contents
+ &(vtt_ee11651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11651),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names845,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21651 : dd1651 {
+ int e;
+ virtual void foo(); // _ZN7ee216513fooEv
+ ~ee21651(); // tgen
+ ee21651(); // tgen
+};
+//SIG(1 ee21651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21651 ::foo(){vfunc_called(this, "_ZN7ee216513fooEv");}
+ee21651 ::~ee21651(){ note_dtor("ee21651", this);} // tgen
+ee21651 ::ee21651(){ note_ctor("ee21651", this);} // tgen
+
+static void Test_ee21651()
+{
+ extern Class_Descriptor cd_ee21651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21651, buf);
+ ee21651 *dp, &lv = *(dp=new (buf) ee21651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee21651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee21651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(16,12), "ee21651");
+ check_base_class_offset(lv, (dd1651*), 0, "ee21651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21651.e");
+ test_class_info(&lv, &cd_ee21651);
+ dp->~ee21651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21651(Test_ee21651, "ee21651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21651C1Ev();
+extern void _ZN7ee21651D1Ev();
+Name_Map name_map_ee21651[] = {
+ NSPAIR(_ZN7ee21651C1Ev),
+ NSPAIR(_ZN7ee21651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee21651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21651[];
+extern void _ZN7ee216513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee216513fooEv,_ZTv0_n20_N7ee216513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216513fooEv,_ZThn12_N7ee216513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee216513fooEv,_ZTv0_n12_N7ee216513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee216513fooEv,_ZThn24_N7ee216513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21651[0]),
+ (VTBL_ENTRY)&_ZN7ee216513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee216513fooEv,_ZTv0_n20_N7ee216513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216513fooEv,_ZTv0_n12_N7ee216513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee21651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee21651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee21651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee21651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee21651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee21651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee21651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee21651[] = {
+ {&(_ZTV7ee21651[4]), 4,16},
+ {&(_tg__ZTV6dd1651__7ee21651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee21651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee21651[3]), 3,4},
+ {&(_ZTV7ee21651[10]), 10,16},
+ {&(_ZTV7ee21651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee21651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee21651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee21651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee21651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21651[];
+extern VTBL_ENTRY _ZTV7ee21651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21651[];
+static VTBL_ENTRY alt_thunk_names846[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216513fooEv,_ZTv0_n12_N7ee216513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee216513fooEv,_ZThn24_N7ee216513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee216513fooEv,_ZTv0_n20_N7ee216513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216513fooEv,_ZThn12_N7ee216513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21651 = { "ee21651", // class name
+ bases_ee21651, 4,
+ &(vtc_ee21651[0]), // expected_vtbl_contents
+ &(vtt_ee21651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names846,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31651 : virtual dd1651 {
+ int e;
+ virtual void foo(); // _ZN7ee316513fooEv
+ ~ee31651(); // tgen
+ ee31651(); // tgen
+};
+//SIG(1 ee31651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31651 ::foo(){vfunc_called(this, "_ZN7ee316513fooEv");}
+ee31651 ::~ee31651(){ note_dtor("ee31651", this);} // tgen
+ee31651 ::ee31651(){ note_ctor("ee31651", this);} // tgen
+
+static void Test_ee31651()
+{
+ extern Class_Descriptor cd_ee31651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31651, buf);
+ ee31651 *dp, &lv = *(dp=new (buf) ee31651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee31651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee31651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(32,16), "ee31651");
+ check_base_class_offset(lv, (dd1651*), ABISELECT(16,8), "ee31651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31651.e");
+ test_class_info(&lv, &cd_ee31651);
+ dp->~ee31651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31651(Test_ee31651, "ee31651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31651C1Ev();
+extern void _ZN7ee31651D1Ev();
+Name_Map name_map_ee31651[] = {
+ NSPAIR(_ZN7ee31651C1Ev),
+ NSPAIR(_ZN7ee31651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee31651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31651[];
+extern void _ZN7ee316513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee316513fooEv,_ZTv0_n20_N7ee316513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316513fooEv,_ZThn16_N7ee316513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee316513fooEv,_ZTv0_n12_N7ee316513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee316513fooEv,_ZThn28_N7ee316513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31651[0]),
+ (VTBL_ENTRY)&_ZN7ee316513fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31651[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee316513fooEv,_ZTv0_n20_N7ee316513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316513fooEv,_ZTv0_n12_N7ee316513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee31651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee31651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee31651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee31651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee31651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee31651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee31651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee31651[] = {
+ {&(_ZTV7ee31651[5]), 5,21},
+ {&(_ZTV7ee31651[10]), 10,21},
+ {&(_ZTV7ee31651[15]), 15,21},
+ {&(_ZTV7ee31651[20]), 20,21},
+ {&(_tg__ZTV6dd1651__7ee31651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee31651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee31651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee31651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee31651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee31651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee31651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31651[];
+extern VTBL_ENTRY _ZTV7ee31651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31651[];
+static VTBL_ENTRY alt_thunk_names847[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316513fooEv,_ZTv0_n12_N7ee316513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee316513fooEv,_ZThn28_N7ee316513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee316513fooEv,_ZTv0_n20_N7ee316513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316513fooEv,_ZThn16_N7ee316513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31651 = { "ee31651", // class name
+ bases_ee31651, 4,
+ &(vtc_ee31651[0]), // expected_vtbl_contents
+ &(vtt_ee31651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31651),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names847,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41651 : dd1651 {
+ int e;
+ virtual void bar(); // _ZN7ee416513barEv
+ ~ee41651(); // tgen
+ ee41651(); // tgen
+};
+//SIG(1 ee41651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41651 ::bar(){vfunc_called(this, "_ZN7ee416513barEv");}
+ee41651 ::~ee41651(){ note_dtor("ee41651", this);} // tgen
+ee41651 ::ee41651(){ note_ctor("ee41651", this);} // tgen
+
+static void Test_ee41651()
+{
+ extern Class_Descriptor cd_ee41651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41651, buf);
+ ee41651 *dp, &lv = *(dp=new (buf) ee41651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee41651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee41651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(16,12), "ee41651");
+ check_base_class_offset(lv, (dd1651*), 0, "ee41651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41651.e");
+ test_class_info(&lv, &cd_ee41651);
+ dp->~ee41651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41651(Test_ee41651, "ee41651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41651C1Ev();
+extern void _ZN7ee41651D1Ev();
+Name_Map name_map_ee41651[] = {
+ NSPAIR(_ZN7ee41651C1Ev),
+ NSPAIR(_ZN7ee41651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee41651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41651[];
+extern void _ZN7ee416513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416513barEv,_ZTv0_n16_N7ee416513barEv)();
+extern void ABISELECT(_ZThn16_N7ee416513barEv,_ZThn12_N7ee416513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41651[0]),
+ (VTBL_ENTRY)&_ZN7ee416513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416513barEv,_ZTv0_n16_N7ee416513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee41651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee41651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee41651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee41651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee41651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee41651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee41651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee41651[] = {
+ {&(_ZTV7ee41651[4]), 4,16},
+ {&(_tg__ZTV6dd1651__7ee41651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee41651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee41651[3]), 3,4},
+ {&(_ZTV7ee41651[10]), 10,16},
+ {&(_ZTV7ee41651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee41651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee41651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee41651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee41651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41651[];
+extern VTBL_ENTRY _ZTV7ee41651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41651[];
+static VTBL_ENTRY alt_thunk_names848[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416513barEv,_ZTv0_n16_N7ee416513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416513barEv,_ZThn12_N7ee416513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41651 = { "ee41651", // class name
+ bases_ee41651, 4,
+ &(vtc_ee41651[0]), // expected_vtbl_contents
+ &(vtt_ee41651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names848,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51651 : virtual dd1651 {
+ int e;
+ virtual void bar(); // _ZN7ee516513barEv
+ ~ee51651(); // tgen
+ ee51651(); // tgen
+};
+//SIG(1 ee51651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51651 ::bar(){vfunc_called(this, "_ZN7ee516513barEv");}
+ee51651 ::~ee51651(){ note_dtor("ee51651", this);} // tgen
+ee51651 ::ee51651(){ note_ctor("ee51651", this);} // tgen
+
+static void Test_ee51651()
+{
+ extern Class_Descriptor cd_ee51651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51651, buf);
+ ee51651 *dp, &lv = *(dp=new (buf) ee51651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee51651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee51651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(32,16), "ee51651");
+ check_base_class_offset(lv, (dd1651*), ABISELECT(16,8), "ee51651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51651.e");
+ test_class_info(&lv, &cd_ee51651);
+ dp->~ee51651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51651(Test_ee51651, "ee51651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51651C1Ev();
+extern void _ZN7ee51651D1Ev();
+Name_Map name_map_ee51651[] = {
+ NSPAIR(_ZN7ee51651C1Ev),
+ NSPAIR(_ZN7ee51651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee51651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51651[];
+extern void _ZN7ee516513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516513barEv,_ZTv0_n16_N7ee516513barEv)();
+extern void ABISELECT(_ZThn32_N7ee516513barEv,_ZThn16_N7ee516513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51651[0]),
+ (VTBL_ENTRY)&_ZN7ee516513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51651[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516513barEv,_ZTv0_n16_N7ee516513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee51651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee51651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee51651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee51651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee51651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee51651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee51651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee51651[] = {
+ {&(_ZTV7ee51651[5]), 5,21},
+ {&(_ZTV7ee51651[10]), 10,21},
+ {&(_ZTV7ee51651[15]), 15,21},
+ {&(_ZTV7ee51651[20]), 20,21},
+ {&(_tg__ZTV6dd1651__7ee51651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee51651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee51651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee51651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee51651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee51651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee51651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51651[];
+extern VTBL_ENTRY _ZTV7ee51651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51651[];
+static VTBL_ENTRY alt_thunk_names849[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516513barEv,_ZTv0_n16_N7ee516513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516513barEv,_ZThn16_N7ee516513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51651 = { "ee51651", // class name
+ bases_ee51651, 4,
+ &(vtc_ee51651[0]), // expected_vtbl_contents
+ &(vtt_ee51651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51651),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names849,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61651 : dd1651 {
+ int e;
+ virtual void foo(); // _ZN7ee616513fooEv
+ virtual void bar(); // _ZN7ee616513barEv
+ ~ee61651(); // tgen
+ ee61651(); // tgen
+};
+//SIG(1 ee61651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61651 ::foo(){vfunc_called(this, "_ZN7ee616513fooEv");}
+void ee61651 ::bar(){vfunc_called(this, "_ZN7ee616513barEv");}
+ee61651 ::~ee61651(){ note_dtor("ee61651", this);} // tgen
+ee61651 ::ee61651(){ note_ctor("ee61651", this);} // tgen
+
+static void Test_ee61651()
+{
+ extern Class_Descriptor cd_ee61651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61651, buf);
+ ee61651 *dp, &lv = *(dp=new (buf) ee61651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee61651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee61651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(16,12), "ee61651");
+ check_base_class_offset(lv, (dd1651*), 0, "ee61651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61651.e");
+ test_class_info(&lv, &cd_ee61651);
+ dp->~ee61651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61651(Test_ee61651, "ee61651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61651C1Ev();
+extern void _ZN7ee61651D1Ev();
+Name_Map name_map_ee61651[] = {
+ NSPAIR(_ZN7ee61651C1Ev),
+ NSPAIR(_ZN7ee61651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee61651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61651[];
+extern void _ZN7ee616513fooEv();
+extern void _ZN7ee616513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee616513barEv,_ZTv0_n16_N7ee616513barEv)();
+extern void ABISELECT(_ZThn16_N7ee616513barEv,_ZThn12_N7ee616513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee616513fooEv,_ZTv0_n20_N7ee616513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616513fooEv,_ZThn12_N7ee616513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee616513fooEv,_ZTv0_n12_N7ee616513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee616513fooEv,_ZThn24_N7ee616513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61651[0]),
+ (VTBL_ENTRY)&_ZN7ee616513fooEv,
+ (VTBL_ENTRY)&_ZN7ee616513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616513barEv,_ZTv0_n16_N7ee616513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee616513fooEv,_ZTv0_n20_N7ee616513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616513fooEv,_ZTv0_n12_N7ee616513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee61651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee61651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee61651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee61651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee61651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee61651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee61651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee61651[] = {
+ {&(_ZTV7ee61651[4]), 4,17},
+ {&(_tg__ZTV6dd1651__7ee61651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee61651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee61651[3]), 3,4},
+ {&(_ZTV7ee61651[11]), 11,17},
+ {&(_ZTV7ee61651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee61651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee61651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee61651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee61651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61651[];
+extern VTBL_ENTRY _ZTV7ee61651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61651[];
+static VTBL_ENTRY alt_thunk_names850[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616513fooEv,_ZTv0_n12_N7ee616513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee616513fooEv,_ZThn24_N7ee616513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee616513fooEv,_ZTv0_n20_N7ee616513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616513fooEv,_ZThn12_N7ee616513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616513barEv,_ZTv0_n16_N7ee616513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616513barEv,_ZThn12_N7ee616513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61651 = { "ee61651", // class name
+ bases_ee61651, 4,
+ &(vtc_ee61651[0]), // expected_vtbl_contents
+ &(vtt_ee61651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names850,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71651 : virtual dd1651 {
+ int e;
+ virtual void foo(); // _ZN7ee716513fooEv
+ virtual void bar(); // _ZN7ee716513barEv
+ ~ee71651(); // tgen
+ ee71651(); // tgen
+};
+//SIG(1 ee71651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71651 ::foo(){vfunc_called(this, "_ZN7ee716513fooEv");}
+void ee71651 ::bar(){vfunc_called(this, "_ZN7ee716513barEv");}
+ee71651 ::~ee71651(){ note_dtor("ee71651", this);} // tgen
+ee71651 ::ee71651(){ note_ctor("ee71651", this);} // tgen
+
+static void Test_ee71651()
+{
+ extern Class_Descriptor cd_ee71651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71651, buf);
+ ee71651 *dp, &lv = *(dp=new (buf) ee71651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee71651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee71651");
+ check_base_class_offset(lv, (cc651*)(dd1651*), ABISELECT(32,16), "ee71651");
+ check_base_class_offset(lv, (dd1651*), ABISELECT(16,8), "ee71651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71651.e");
+ test_class_info(&lv, &cd_ee71651);
+ dp->~ee71651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71651(Test_ee71651, "ee71651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71651C1Ev();
+extern void _ZN7ee71651D1Ev();
+Name_Map name_map_ee71651[] = {
+ NSPAIR(_ZN7ee71651C1Ev),
+ NSPAIR(_ZN7ee71651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd1651;
+extern VTBL_ENTRY _ZTI6dd1651[];
+extern VTBL_ENTRY _ZTV6dd1651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1651[];
+static Base_Class bases_ee71651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1651, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71651[];
+extern void _ZN7ee716513fooEv();
+extern void _ZN7ee716513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee716513barEv,_ZTv0_n16_N7ee716513barEv)();
+extern void ABISELECT(_ZThn32_N7ee716513barEv,_ZThn16_N7ee716513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee716513fooEv,_ZTv0_n20_N7ee716513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716513fooEv,_ZThn16_N7ee716513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee716513fooEv,_ZTv0_n12_N7ee716513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee716513fooEv,_ZThn28_N7ee716513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71651[0]),
+ (VTBL_ENTRY)&_ZN7ee716513fooEv,
+ (VTBL_ENTRY)&_ZN7ee716513barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71651[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716513barEv,_ZTv0_n16_N7ee716513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee716513fooEv,_ZTv0_n20_N7ee716513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716513fooEv,_ZTv0_n12_N7ee716513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71651[];
+static VTBL_ENTRY _tg__ZTV6dd1651__7ee71651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd1651__7ee71651[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1651__7ee71651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee71651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee71651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee71651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee71651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee71651[] = {
+ {&(_ZTV7ee71651[5]), 5,22},
+ {&(_ZTV7ee71651[11]), 11,22},
+ {&(_ZTV7ee71651[16]), 16,22},
+ {&(_ZTV7ee71651[21]), 21,22},
+ {&(_tg__ZTV6dd1651__7ee71651[4]), 4,4},
+ {&(_tg__ZTV5cc651__6dd1651__7ee71651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd1651__7ee71651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee71651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee71651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee71651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee71651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71651[];
+extern VTBL_ENTRY _ZTV7ee71651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71651[];
+static VTBL_ENTRY alt_thunk_names851[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716513fooEv,_ZTv0_n12_N7ee716513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee716513fooEv,_ZThn28_N7ee716513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee716513fooEv,_ZTv0_n20_N7ee716513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716513fooEv,_ZThn16_N7ee716513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716513barEv,_ZTv0_n16_N7ee716513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716513barEv,_ZThn16_N7ee716513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71651 = { "ee71651", // class name
+ bases_ee71651, 4,
+ &(vtc_ee71651[0]), // expected_vtbl_contents
+ &(vtt_ee71651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71651),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names851,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2651 : cc651 {
+ int d;
+ virtual void foo(); // _ZN6dd26513fooEv
+ ~dd2651(); // tgen
+ dd2651(); // tgen
+};
+//SIG(-1 dd2651) C1{ BC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2651 ::foo(){vfunc_called(this, "_ZN6dd26513fooEv");}
+dd2651 ::~dd2651(){ note_dtor("dd2651", this);} // tgen
+dd2651 ::dd2651(){ note_ctor("dd2651", this);} // tgen
+
+static void Test_dd2651()
+{
+ extern Class_Descriptor cd_dd2651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2651, buf);
+ dd2651 *dp, &lv = *(dp=new (buf) dd2651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(24,16), "dd2651");
+ check_base_class_offset(lv, (bb51*)(cc651*), 0, "dd2651");
+ check_base_class_offset(lv, (cc651*), 0, "dd2651");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2651.d");
+ test_class_info(&lv, &cd_dd2651);
+ dp->~dd2651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2651(Test_dd2651, "dd2651", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2651C1Ev();
+extern void _ZN6dd2651D1Ev();
+Name_Map name_map_dd2651[] = {
+ NSPAIR(_ZN6dd2651C1Ev),
+ NSPAIR(_ZN6dd2651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd2651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd2651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd2651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd2651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd2651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd2651[] = {
+ {&(_ZTV6dd2651[3]), 3,9},
+ {&(_tg__ZTV5cc651__6dd2651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd2651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd2651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd2651[3]), 3,4},
+ {&(_ZTV6dd2651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static VTBL_ENTRY alt_thunk_names852[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2651 = { "dd2651", // class name
+ bases_dd2651, 3,
+ &(vtc_dd2651[0]), // expected_vtbl_contents
+ &(vtt_dd2651[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2651),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names852,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02651 : dd2651 {
+ int e;
+ ~ee02651(); // tgen
+ ee02651(); // tgen
+};
+//SIG(1 ee02651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02651 ::~ee02651(){ note_dtor("ee02651", this);} // tgen
+ee02651 ::ee02651(){ note_ctor("ee02651", this);} // tgen
+
+static void Test_ee02651()
+{
+ extern Class_Descriptor cd_ee02651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02651, buf);
+ ee02651 *dp, &lv = *(dp=new (buf) ee02651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(24,20), "ee02651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), 0, "ee02651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), 0, "ee02651");
+ check_base_class_offset(lv, (dd2651*), 0, "ee02651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02651.e");
+ test_class_info(&lv, &cd_ee02651);
+ dp->~ee02651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02651(Test_ee02651, "ee02651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02651C1Ev();
+extern void _ZN7ee02651D1Ev();
+Name_Map name_map_ee02651[] = {
+ NSPAIR(_ZN7ee02651C1Ev),
+ NSPAIR(_ZN7ee02651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee02651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee02651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee02651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee02651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee02651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee02651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee02651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee02651[] = {
+ {&(_ZTV7ee02651[3]), 3,9},
+ {&(_tg__ZTV6dd2651__7ee02651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee02651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee02651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee02651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee02651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee02651[3]), 3,4},
+ {&(_ZTV7ee02651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee02651[];
+extern VTBL_ENTRY _ZTV7ee02651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02651[];
+static VTBL_ENTRY alt_thunk_names853[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02651 = { "ee02651", // class name
+ bases_ee02651, 4,
+ &(vtc_ee02651[0]), // expected_vtbl_contents
+ &(vtt_ee02651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names853,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12651 : virtual dd2651 {
+ int e;
+ ~ee12651(); // tgen
+ ee12651(); // tgen
+};
+//SIG(1 ee12651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12651 ::~ee12651(){ note_dtor("ee12651", this);} // tgen
+ee12651 ::ee12651(){ note_ctor("ee12651", this);} // tgen
+
+static void Test_ee12651()
+{
+ extern Class_Descriptor cd_ee12651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12651, buf);
+ ee12651 *dp, &lv = *(dp=new (buf) ee12651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(40,24), "ee12651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), ABISELECT(16,8), "ee12651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), ABISELECT(16,8), "ee12651");
+ check_base_class_offset(lv, (dd2651*), ABISELECT(16,8), "ee12651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12651.e");
+ test_class_info(&lv, &cd_ee12651);
+ dp->~ee12651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12651(Test_ee12651, "ee12651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12651C1Ev();
+extern void _ZN7ee12651D1Ev();
+Name_Map name_map_ee12651[] = {
+ NSPAIR(_ZN7ee12651C1Ev),
+ NSPAIR(_ZN7ee12651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee12651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12651[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee12651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee12651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee12651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee12651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee12651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee12651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee12651[] = {
+ {&(_ZTV7ee12651[4]), 4,15},
+ {&(_ZTV7ee12651[9]), 9,15},
+ {&(_ZTV7ee12651[14]), 14,15},
+ {&(_tg__ZTV6dd2651__7ee12651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee12651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee12651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee12651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee12651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee12651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12651[];
+extern VTBL_ENTRY _ZTV7ee12651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12651[];
+static VTBL_ENTRY alt_thunk_names854[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12651 = { "ee12651", // class name
+ bases_ee12651, 4,
+ &(vtc_ee12651[0]), // expected_vtbl_contents
+ &(vtt_ee12651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names854,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22651 : dd2651 {
+ int e;
+ virtual void foo(); // _ZN7ee226513fooEv
+ ~ee22651(); // tgen
+ ee22651(); // tgen
+};
+//SIG(1 ee22651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22651 ::foo(){vfunc_called(this, "_ZN7ee226513fooEv");}
+ee22651 ::~ee22651(){ note_dtor("ee22651", this);} // tgen
+ee22651 ::ee22651(){ note_ctor("ee22651", this);} // tgen
+
+static void Test_ee22651()
+{
+ extern Class_Descriptor cd_ee22651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22651, buf);
+ ee22651 *dp, &lv = *(dp=new (buf) ee22651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(24,20), "ee22651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), 0, "ee22651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), 0, "ee22651");
+ check_base_class_offset(lv, (dd2651*), 0, "ee22651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22651.e");
+ test_class_info(&lv, &cd_ee22651);
+ dp->~ee22651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22651(Test_ee22651, "ee22651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22651C1Ev();
+extern void _ZN7ee22651D1Ev();
+Name_Map name_map_ee22651[] = {
+ NSPAIR(_ZN7ee22651C1Ev),
+ NSPAIR(_ZN7ee22651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee22651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN7ee226513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee226513fooEv,_ZTv0_n12_N7ee226513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee226513fooEv,_ZThn20_N7ee226513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN7ee226513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee226513fooEv,_ZTv0_n12_N7ee226513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee22651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee22651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee22651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee22651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee22651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee22651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee22651[] = {
+ {&(_ZTV7ee22651[3]), 3,9},
+ {&(_tg__ZTV6dd2651__7ee22651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee22651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee22651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee22651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee22651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee22651[3]), 3,4},
+ {&(_ZTV7ee22651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee22651[];
+extern VTBL_ENTRY _ZTV7ee22651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22651[];
+static VTBL_ENTRY alt_thunk_names855[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee226513fooEv,_ZTv0_n12_N7ee226513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee226513fooEv,_ZThn20_N7ee226513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22651 = { "ee22651", // class name
+ bases_ee22651, 4,
+ &(vtc_ee22651[0]), // expected_vtbl_contents
+ &(vtt_ee22651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names855,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32651 : virtual dd2651 {
+ int e;
+ virtual void foo(); // _ZN7ee326513fooEv
+ ~ee32651(); // tgen
+ ee32651(); // tgen
+};
+//SIG(1 ee32651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32651 ::foo(){vfunc_called(this, "_ZN7ee326513fooEv");}
+ee32651 ::~ee32651(){ note_dtor("ee32651", this);} // tgen
+ee32651 ::ee32651(){ note_ctor("ee32651", this);} // tgen
+
+static void Test_ee32651()
+{
+ extern Class_Descriptor cd_ee32651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32651, buf);
+ ee32651 *dp, &lv = *(dp=new (buf) ee32651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(40,24), "ee32651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), ABISELECT(16,8), "ee32651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), ABISELECT(16,8), "ee32651");
+ check_base_class_offset(lv, (dd2651*), ABISELECT(16,8), "ee32651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32651.e");
+ test_class_info(&lv, &cd_ee32651);
+ dp->~ee32651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32651(Test_ee32651, "ee32651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32651C1Ev();
+extern void _ZN7ee32651D1Ev();
+Name_Map name_map_ee32651[] = {
+ NSPAIR(_ZN7ee32651C1Ev),
+ NSPAIR(_ZN7ee32651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee32651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32651[];
+extern void _ZN7ee326513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee326513fooEv,_ZTv0_n20_N7ee326513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326513fooEv,_ZThn8_N7ee326513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee326513fooEv,_ZTv0_n12_N7ee326513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee326513fooEv,_ZThn24_N7ee326513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32651[0]),
+ (VTBL_ENTRY)&_ZN7ee326513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee326513fooEv,_ZTv0_n20_N7ee326513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326513fooEv,_ZTv0_n12_N7ee326513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee32651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee32651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee32651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee32651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee32651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee32651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee32651[] = {
+ {&(_ZTV7ee32651[4]), 4,16},
+ {&(_ZTV7ee32651[10]), 10,16},
+ {&(_ZTV7ee32651[15]), 15,16},
+ {&(_tg__ZTV6dd2651__7ee32651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee32651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee32651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee32651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee32651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee32651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32651[];
+extern VTBL_ENTRY _ZTV7ee32651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32651[];
+static VTBL_ENTRY alt_thunk_names856[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326513fooEv,_ZTv0_n12_N7ee326513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee326513fooEv,_ZThn24_N7ee326513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee326513fooEv,_ZTv0_n20_N7ee326513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326513fooEv,_ZThn8_N7ee326513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32651 = { "ee32651", // class name
+ bases_ee32651, 4,
+ &(vtc_ee32651[0]), // expected_vtbl_contents
+ &(vtt_ee32651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names856,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42651 : dd2651 {
+ int e;
+ virtual void bar(); // _ZN7ee426513barEv
+ ~ee42651(); // tgen
+ ee42651(); // tgen
+};
+//SIG(1 ee42651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42651 ::bar(){vfunc_called(this, "_ZN7ee426513barEv");}
+ee42651 ::~ee42651(){ note_dtor("ee42651", this);} // tgen
+ee42651 ::ee42651(){ note_ctor("ee42651", this);} // tgen
+
+static void Test_ee42651()
+{
+ extern Class_Descriptor cd_ee42651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42651, buf);
+ ee42651 *dp, &lv = *(dp=new (buf) ee42651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(24,20), "ee42651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), 0, "ee42651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), 0, "ee42651");
+ check_base_class_offset(lv, (dd2651*), 0, "ee42651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42651.e");
+ test_class_info(&lv, &cd_ee42651);
+ dp->~ee42651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42651(Test_ee42651, "ee42651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42651C1Ev();
+extern void _ZN7ee42651D1Ev();
+Name_Map name_map_ee42651[] = {
+ NSPAIR(_ZN7ee42651C1Ev),
+ NSPAIR(_ZN7ee42651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee42651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42651[];
+extern void _ZN7ee426513barEv();
+extern void _ZN6dd26513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42651[0]),
+ (VTBL_ENTRY)&_ZN7ee426513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee42651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee42651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee42651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee42651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee42651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee42651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee42651[] = {
+ {&(_ZTV7ee42651[3]), 3,9},
+ {&(_tg__ZTV6dd2651__7ee42651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee42651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee42651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee42651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee42651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee42651[3]), 3,4},
+ {&(_ZTV7ee42651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee42651[];
+extern VTBL_ENTRY _ZTV7ee42651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42651[];
+static VTBL_ENTRY alt_thunk_names857[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42651 = { "ee42651", // class name
+ bases_ee42651, 4,
+ &(vtc_ee42651[0]), // expected_vtbl_contents
+ &(vtt_ee42651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names857,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52651 : virtual dd2651 {
+ int e;
+ virtual void bar(); // _ZN7ee526513barEv
+ ~ee52651(); // tgen
+ ee52651(); // tgen
+};
+//SIG(1 ee52651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52651 ::bar(){vfunc_called(this, "_ZN7ee526513barEv");}
+ee52651 ::~ee52651(){ note_dtor("ee52651", this);} // tgen
+ee52651 ::ee52651(){ note_ctor("ee52651", this);} // tgen
+
+static void Test_ee52651()
+{
+ extern Class_Descriptor cd_ee52651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52651, buf);
+ ee52651 *dp, &lv = *(dp=new (buf) ee52651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(40,24), "ee52651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), ABISELECT(16,8), "ee52651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), ABISELECT(16,8), "ee52651");
+ check_base_class_offset(lv, (dd2651*), ABISELECT(16,8), "ee52651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52651.e");
+ test_class_info(&lv, &cd_ee52651);
+ dp->~ee52651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52651(Test_ee52651, "ee52651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52651C1Ev();
+extern void _ZN7ee52651D1Ev();
+Name_Map name_map_ee52651[] = {
+ NSPAIR(_ZN7ee52651C1Ev),
+ NSPAIR(_ZN7ee52651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee52651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52651[];
+extern void _ZN7ee526513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526513barEv,_ZTv0_n16_N7ee526513barEv)();
+extern void ABISELECT(_ZThn16_N7ee526513barEv,_ZThn8_N7ee526513barEv)() __attribute__((weak));
+extern void _ZN6dd26513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52651[0]),
+ (VTBL_ENTRY)&_ZN7ee526513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526513barEv,_ZTv0_n16_N7ee526513barEv),
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee52651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee52651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee52651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee52651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee52651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee52651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee52651[] = {
+ {&(_ZTV7ee52651[4]), 4,16},
+ {&(_ZTV7ee52651[10]), 10,16},
+ {&(_ZTV7ee52651[15]), 15,16},
+ {&(_tg__ZTV6dd2651__7ee52651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee52651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee52651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee52651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee52651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee52651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52651[];
+extern VTBL_ENTRY _ZTV7ee52651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52651[];
+static VTBL_ENTRY alt_thunk_names858[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526513barEv,_ZTv0_n16_N7ee526513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526513barEv,_ZThn8_N7ee526513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52651 = { "ee52651", // class name
+ bases_ee52651, 4,
+ &(vtc_ee52651[0]), // expected_vtbl_contents
+ &(vtt_ee52651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names858,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62651 : dd2651 {
+ int e;
+ virtual void foo(); // _ZN7ee626513fooEv
+ virtual void bar(); // _ZN7ee626513barEv
+ ~ee62651(); // tgen
+ ee62651(); // tgen
+};
+//SIG(1 ee62651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62651 ::foo(){vfunc_called(this, "_ZN7ee626513fooEv");}
+void ee62651 ::bar(){vfunc_called(this, "_ZN7ee626513barEv");}
+ee62651 ::~ee62651(){ note_dtor("ee62651", this);} // tgen
+ee62651 ::ee62651(){ note_ctor("ee62651", this);} // tgen
+
+static void Test_ee62651()
+{
+ extern Class_Descriptor cd_ee62651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62651, buf);
+ ee62651 *dp, &lv = *(dp=new (buf) ee62651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(24,20), "ee62651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), 0, "ee62651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), 0, "ee62651");
+ check_base_class_offset(lv, (dd2651*), 0, "ee62651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62651.e");
+ test_class_info(&lv, &cd_ee62651);
+ dp->~ee62651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62651(Test_ee62651, "ee62651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62651C1Ev();
+extern void _ZN7ee62651D1Ev();
+Name_Map name_map_ee62651[] = {
+ NSPAIR(_ZN7ee62651C1Ev),
+ NSPAIR(_ZN7ee62651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee62651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62651[];
+extern void _ZN7ee626513barEv();
+extern void _ZN7ee626513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee626513fooEv,_ZTv0_n12_N7ee626513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee626513fooEv,_ZThn20_N7ee626513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62651[0]),
+ (VTBL_ENTRY)&_ZN7ee626513barEv,
+ (VTBL_ENTRY)&_ZN7ee626513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee626513fooEv,_ZTv0_n12_N7ee626513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee62651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee62651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee62651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee62651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee62651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee62651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee62651[] = {
+ {&(_ZTV7ee62651[3]), 3,9},
+ {&(_tg__ZTV6dd2651__7ee62651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee62651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee62651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee62651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee62651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee62651[3]), 3,4},
+ {&(_ZTV7ee62651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee62651[];
+extern VTBL_ENTRY _ZTV7ee62651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62651[];
+static VTBL_ENTRY alt_thunk_names859[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn20_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee626513fooEv,_ZTv0_n12_N7ee626513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee626513fooEv,_ZThn20_N7ee626513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62651 = { "ee62651", // class name
+ bases_ee62651, 4,
+ &(vtc_ee62651[0]), // expected_vtbl_contents
+ &(vtt_ee62651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names859,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72651 : virtual dd2651 {
+ int e;
+ virtual void foo(); // _ZN7ee726513fooEv
+ virtual void bar(); // _ZN7ee726513barEv
+ ~ee72651(); // tgen
+ ee72651(); // tgen
+};
+//SIG(1 ee72651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72651 ::foo(){vfunc_called(this, "_ZN7ee726513fooEv");}
+void ee72651 ::bar(){vfunc_called(this, "_ZN7ee726513barEv");}
+ee72651 ::~ee72651(){ note_dtor("ee72651", this);} // tgen
+ee72651 ::ee72651(){ note_ctor("ee72651", this);} // tgen
+
+static void Test_ee72651()
+{
+ extern Class_Descriptor cd_ee72651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72651, buf);
+ ee72651 *dp, &lv = *(dp=new (buf) ee72651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd2651*), ABISELECT(40,24), "ee72651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd2651*), ABISELECT(16,8), "ee72651");
+ check_base_class_offset(lv, (cc651*)(dd2651*), ABISELECT(16,8), "ee72651");
+ check_base_class_offset(lv, (dd2651*), ABISELECT(16,8), "ee72651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72651.e");
+ test_class_info(&lv, &cd_ee72651);
+ dp->~ee72651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72651(Test_ee72651, "ee72651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72651C1Ev();
+extern void _ZN7ee72651D1Ev();
+Name_Map name_map_ee72651[] = {
+ NSPAIR(_ZN7ee72651C1Ev),
+ NSPAIR(_ZN7ee72651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd2651;
+extern VTBL_ENTRY _ZTI6dd2651[];
+extern VTBL_ENTRY _ZTV6dd2651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2651[];
+static Base_Class bases_ee72651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72651[];
+extern void _ZN7ee726513fooEv();
+extern void _ZN7ee726513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee726513barEv,_ZTv0_n16_N7ee726513barEv)();
+extern void ABISELECT(_ZThn16_N7ee726513barEv,_ZThn8_N7ee726513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee726513fooEv,_ZTv0_n20_N7ee726513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726513fooEv,_ZThn8_N7ee726513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee726513fooEv,_ZTv0_n12_N7ee726513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee726513fooEv,_ZThn24_N7ee726513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72651[0]),
+ (VTBL_ENTRY)&_ZN7ee726513fooEv,
+ (VTBL_ENTRY)&_ZN7ee726513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726513barEv,_ZTv0_n16_N7ee726513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee726513fooEv,_ZTv0_n20_N7ee726513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726513fooEv,_ZTv0_n12_N7ee726513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN6dd26513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2651__7ee72651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN6dd26513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd2651__7ee72651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd2651__7ee72651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd2651__7ee72651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd2651__7ee72651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2651__7ee72651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv),
+};
+static VTT_ENTRY vtt_ee72651[] = {
+ {&(_ZTV7ee72651[4]), 4,17},
+ {&(_ZTV7ee72651[11]), 11,17},
+ {&(_ZTV7ee72651[16]), 16,17},
+ {&(_tg__ZTV6dd2651__7ee72651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd2651__7ee72651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd2651__7ee72651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd2651__7ee72651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd2651__7ee72651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd2651__7ee72651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72651[];
+extern VTBL_ENTRY _ZTV7ee72651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72651[];
+static VTBL_ENTRY alt_thunk_names860[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26513fooEv,_ZTv0_n12_N6dd26513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26513fooEv,_ZThn16_N6dd26513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726513fooEv,_ZTv0_n12_N7ee726513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee726513fooEv,_ZThn24_N7ee726513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee726513fooEv,_ZTv0_n20_N7ee726513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726513fooEv,_ZThn8_N7ee726513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726513barEv,_ZTv0_n16_N7ee726513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726513barEv,_ZThn8_N7ee726513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72651 = { "ee72651", // class name
+ bases_ee72651, 4,
+ &(vtc_ee72651[0]), // expected_vtbl_contents
+ &(vtt_ee72651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names860,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3651 : virtual cc651 {
+ int d;
+ virtual void foo(); // _ZN6dd36513fooEv
+ ~dd3651(); // tgen
+ dd3651(); // tgen
+};
+//SIG(-1 dd3651) C1{ VBC2{ BC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3651 ::foo(){vfunc_called(this, "_ZN6dd36513fooEv");}
+dd3651 ::~dd3651(){ note_dtor("dd3651", this);} // tgen
+dd3651 ::dd3651(){ note_ctor("dd3651", this);} // tgen
+
+static void Test_dd3651()
+{
+ extern Class_Descriptor cd_dd3651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3651, buf);
+ dd3651 *dp, &lv = *(dp=new (buf) dd3651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,20), "dd3651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,8), "dd3651");
+ check_base_class_offset(lv, (cc651*), ABISELECT(16,8), "dd3651");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3651.d");
+ test_class_info(&lv, &cd_dd3651);
+ dp->~dd3651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3651(Test_dd3651, "dd3651", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3651C1Ev();
+extern void _ZN6dd3651D1Ev();
+Name_Map name_map_dd3651[] = {
+ NSPAIR(_ZN6dd3651C1Ev),
+ NSPAIR(_ZN6dd3651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd3651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd3651[];
+extern void _ZN6dd36513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd3651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd3651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd3651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd3651[] = {
+ {&(_ZTV6dd3651[4]), 4,16},
+ {&(_ZTV6dd3651[10]), 10,16},
+ {&(_ZTV6dd3651[15]), 15,16},
+ {&(_tg__ZTV5cc651__6dd3651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd3651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd3651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd3651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static VTBL_ENTRY alt_thunk_names861[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3651 = { "dd3651", // class name
+ bases_dd3651, 3,
+ &(vtc_dd3651[0]), // expected_vtbl_contents
+ &(vtt_dd3651[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3651),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names861,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03651 : dd3651 {
+ int e;
+ ~ee03651(); // tgen
+ ee03651(); // tgen
+};
+//SIG(1 ee03651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03651 ::~ee03651(){ note_dtor("ee03651", this);} // tgen
+ee03651 ::ee03651(){ note_ctor("ee03651", this);} // tgen
+
+static void Test_ee03651()
+{
+ extern Class_Descriptor cd_ee03651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03651, buf);
+ ee03651 *dp, &lv = *(dp=new (buf) ee03651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee03651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee03651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(16,12), "ee03651");
+ check_base_class_offset(lv, (dd3651*), 0, "ee03651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03651.e");
+ test_class_info(&lv, &cd_ee03651);
+ dp->~ee03651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03651(Test_ee03651, "ee03651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03651C1Ev();
+extern void _ZN7ee03651D1Ev();
+Name_Map name_map_ee03651[] = {
+ NSPAIR(_ZN7ee03651C1Ev),
+ NSPAIR(_ZN7ee03651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee03651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03651[];
+extern void _ZN6dd36513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee03651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee03651[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee03651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee03651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee03651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee03651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee03651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee03651[] = {
+ {&(_ZTV7ee03651[4]), 4,16},
+ {&(_tg__ZTV6dd3651__7ee03651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee03651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee03651[3]), 3,4},
+ {&(_ZTV7ee03651[10]), 10,16},
+ {&(_ZTV7ee03651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee03651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee03651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee03651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee03651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03651[];
+extern VTBL_ENTRY _ZTV7ee03651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03651[];
+static VTBL_ENTRY alt_thunk_names862[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03651 = { "ee03651", // class name
+ bases_ee03651, 4,
+ &(vtc_ee03651[0]), // expected_vtbl_contents
+ &(vtt_ee03651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names862,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13651 : virtual dd3651 {
+ int e;
+ ~ee13651(); // tgen
+ ee13651(); // tgen
+};
+//SIG(1 ee13651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13651 ::~ee13651(){ note_dtor("ee13651", this);} // tgen
+ee13651 ::ee13651(){ note_ctor("ee13651", this);} // tgen
+
+static void Test_ee13651()
+{
+ extern Class_Descriptor cd_ee13651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13651, buf);
+ ee13651 *dp, &lv = *(dp=new (buf) ee13651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee13651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee13651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(32,16), "ee13651");
+ check_base_class_offset(lv, (dd3651*), ABISELECT(16,8), "ee13651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13651.e");
+ test_class_info(&lv, &cd_ee13651);
+ dp->~ee13651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13651(Test_ee13651, "ee13651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13651C1Ev();
+extern void _ZN7ee13651D1Ev();
+Name_Map name_map_ee13651[] = {
+ NSPAIR(_ZN7ee13651C1Ev),
+ NSPAIR(_ZN7ee13651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee13651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13651[];
+extern void _ZN6dd36513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13651[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee13651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee13651[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee13651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee13651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee13651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee13651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee13651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee13651[] = {
+ {&(_ZTV7ee13651[5]), 5,22},
+ {&(_ZTV7ee13651[10]), 10,22},
+ {&(_ZTV7ee13651[16]), 16,22},
+ {&(_ZTV7ee13651[21]), 21,22},
+ {&(_tg__ZTV6dd3651__7ee13651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee13651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee13651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee13651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee13651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee13651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee13651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13651[];
+extern VTBL_ENTRY _ZTV7ee13651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13651[];
+static VTBL_ENTRY alt_thunk_names863[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13651 = { "ee13651", // class name
+ bases_ee13651, 4,
+ &(vtc_ee13651[0]), // expected_vtbl_contents
+ &(vtt_ee13651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13651),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names863,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23651 : dd3651 {
+ int e;
+ virtual void foo(); // _ZN7ee236513fooEv
+ ~ee23651(); // tgen
+ ee23651(); // tgen
+};
+//SIG(1 ee23651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23651 ::foo(){vfunc_called(this, "_ZN7ee236513fooEv");}
+ee23651 ::~ee23651(){ note_dtor("ee23651", this);} // tgen
+ee23651 ::ee23651(){ note_ctor("ee23651", this);} // tgen
+
+static void Test_ee23651()
+{
+ extern Class_Descriptor cd_ee23651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23651, buf);
+ ee23651 *dp, &lv = *(dp=new (buf) ee23651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee23651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee23651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(16,12), "ee23651");
+ check_base_class_offset(lv, (dd3651*), 0, "ee23651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23651.e");
+ test_class_info(&lv, &cd_ee23651);
+ dp->~ee23651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23651(Test_ee23651, "ee23651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23651C1Ev();
+extern void _ZN7ee23651D1Ev();
+Name_Map name_map_ee23651[] = {
+ NSPAIR(_ZN7ee23651C1Ev),
+ NSPAIR(_ZN7ee23651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee23651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23651[];
+extern void _ZN7ee236513fooEv();
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee236513fooEv,_ZTv0_n20_N7ee236513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236513fooEv,_ZThn12_N7ee236513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee236513fooEv,_ZTv0_n12_N7ee236513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee236513fooEv,_ZThn24_N7ee236513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23651[0]),
+ (VTBL_ENTRY)&_ZN7ee236513fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee236513fooEv,_ZTv0_n20_N7ee236513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236513fooEv,_ZTv0_n12_N7ee236513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee23651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee23651[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee23651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee23651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee23651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee23651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee23651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee23651[] = {
+ {&(_ZTV7ee23651[4]), 4,16},
+ {&(_tg__ZTV6dd3651__7ee23651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee23651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee23651[3]), 3,4},
+ {&(_ZTV7ee23651[10]), 10,16},
+ {&(_ZTV7ee23651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee23651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee23651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee23651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee23651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23651[];
+extern VTBL_ENTRY _ZTV7ee23651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23651[];
+static VTBL_ENTRY alt_thunk_names864[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236513fooEv,_ZTv0_n12_N7ee236513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee236513fooEv,_ZThn24_N7ee236513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee236513fooEv,_ZTv0_n20_N7ee236513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236513fooEv,_ZThn12_N7ee236513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23651 = { "ee23651", // class name
+ bases_ee23651, 4,
+ &(vtc_ee23651[0]), // expected_vtbl_contents
+ &(vtt_ee23651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names864,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33651 : virtual dd3651 {
+ int e;
+ virtual void foo(); // _ZN7ee336513fooEv
+ ~ee33651(); // tgen
+ ee33651(); // tgen
+};
+//SIG(1 ee33651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33651 ::foo(){vfunc_called(this, "_ZN7ee336513fooEv");}
+ee33651 ::~ee33651(){ note_dtor("ee33651", this);} // tgen
+ee33651 ::ee33651(){ note_ctor("ee33651", this);} // tgen
+
+static void Test_ee33651()
+{
+ extern Class_Descriptor cd_ee33651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33651, buf);
+ ee33651 *dp, &lv = *(dp=new (buf) ee33651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee33651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee33651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(32,16), "ee33651");
+ check_base_class_offset(lv, (dd3651*), ABISELECT(16,8), "ee33651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33651.e");
+ test_class_info(&lv, &cd_ee33651);
+ dp->~ee33651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33651(Test_ee33651, "ee33651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33651C1Ev();
+extern void _ZN7ee33651D1Ev();
+Name_Map name_map_ee33651[] = {
+ NSPAIR(_ZN7ee33651C1Ev),
+ NSPAIR(_ZN7ee33651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee33651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33651[];
+extern void _ZN7ee336513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336513fooEv,_ZTv0_n20_N7ee336513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336513fooEv,_ZThn8_N7ee336513fooEv)() __attribute__((weak));
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336513fooEv,_ZTv0_n20_N7ee336513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336513fooEv,_ZThn16_N7ee336513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336513fooEv,_ZTv0_n12_N7ee336513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee336513fooEv,_ZThn28_N7ee336513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33651[0]),
+ (VTBL_ENTRY)&_ZN7ee336513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336513fooEv,_ZTv0_n20_N7ee336513fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336513fooEv,_ZTv0_n20_N7ee336513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336513fooEv,_ZTv0_n12_N7ee336513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee33651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee33651[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee33651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee33651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee33651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee33651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee33651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee33651[] = {
+ {&(_ZTV7ee33651[5]), 5,23},
+ {&(_ZTV7ee33651[11]), 11,23},
+ {&(_ZTV7ee33651[17]), 17,23},
+ {&(_ZTV7ee33651[22]), 22,23},
+ {&(_tg__ZTV6dd3651__7ee33651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee33651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee33651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee33651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee33651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee33651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee33651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33651[];
+extern VTBL_ENTRY _ZTV7ee33651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33651[];
+static VTBL_ENTRY alt_thunk_names865[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336513fooEv,_ZTv0_n12_N7ee336513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee336513fooEv,_ZThn28_N7ee336513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee336513fooEv,_ZTv0_n20_N7ee336513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336513fooEv,_ZThn16_N7ee336513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336513fooEv,_ZThn8_N7ee336513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33651 = { "ee33651", // class name
+ bases_ee33651, 4,
+ &(vtc_ee33651[0]), // expected_vtbl_contents
+ &(vtt_ee33651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33651),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names865,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43651 : dd3651 {
+ int e;
+ virtual void bar(); // _ZN7ee436513barEv
+ ~ee43651(); // tgen
+ ee43651(); // tgen
+};
+//SIG(1 ee43651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43651 ::bar(){vfunc_called(this, "_ZN7ee436513barEv");}
+ee43651 ::~ee43651(){ note_dtor("ee43651", this);} // tgen
+ee43651 ::ee43651(){ note_ctor("ee43651", this);} // tgen
+
+static void Test_ee43651()
+{
+ extern Class_Descriptor cd_ee43651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43651, buf);
+ ee43651 *dp, &lv = *(dp=new (buf) ee43651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee43651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee43651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(16,12), "ee43651");
+ check_base_class_offset(lv, (dd3651*), 0, "ee43651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43651.e");
+ test_class_info(&lv, &cd_ee43651);
+ dp->~ee43651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43651(Test_ee43651, "ee43651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43651C1Ev();
+extern void _ZN7ee43651D1Ev();
+Name_Map name_map_ee43651[] = {
+ NSPAIR(_ZN7ee43651C1Ev),
+ NSPAIR(_ZN7ee43651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee43651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43651[];
+extern void _ZN6dd36513fooEv();
+extern void _ZN7ee436513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee436513barEv,_ZTv0_n16_N7ee436513barEv)();
+extern void ABISELECT(_ZThn16_N7ee436513barEv,_ZThn12_N7ee436513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+ (VTBL_ENTRY)&_ZN7ee436513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436513barEv,_ZTv0_n16_N7ee436513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee43651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee43651[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee43651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee43651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee43651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee43651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee43651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee43651[] = {
+ {&(_ZTV7ee43651[4]), 4,17},
+ {&(_tg__ZTV6dd3651__7ee43651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee43651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee43651[3]), 3,4},
+ {&(_ZTV7ee43651[11]), 11,17},
+ {&(_ZTV7ee43651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee43651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee43651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee43651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee43651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43651[];
+extern VTBL_ENTRY _ZTV7ee43651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43651[];
+static VTBL_ENTRY alt_thunk_names866[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436513barEv,_ZTv0_n16_N7ee436513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436513barEv,_ZThn12_N7ee436513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43651 = { "ee43651", // class name
+ bases_ee43651, 4,
+ &(vtc_ee43651[0]), // expected_vtbl_contents
+ &(vtt_ee43651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names866,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53651 : virtual dd3651 {
+ int e;
+ virtual void bar(); // _ZN7ee536513barEv
+ ~ee53651(); // tgen
+ ee53651(); // tgen
+};
+//SIG(1 ee53651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53651 ::bar(){vfunc_called(this, "_ZN7ee536513barEv");}
+ee53651 ::~ee53651(){ note_dtor("ee53651", this);} // tgen
+ee53651 ::ee53651(){ note_ctor("ee53651", this);} // tgen
+
+static void Test_ee53651()
+{
+ extern Class_Descriptor cd_ee53651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53651, buf);
+ ee53651 *dp, &lv = *(dp=new (buf) ee53651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee53651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee53651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(32,16), "ee53651");
+ check_base_class_offset(lv, (dd3651*), ABISELECT(16,8), "ee53651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53651.e");
+ test_class_info(&lv, &cd_ee53651);
+ dp->~ee53651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53651(Test_ee53651, "ee53651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53651C1Ev();
+extern void _ZN7ee53651D1Ev();
+Name_Map name_map_ee53651[] = {
+ NSPAIR(_ZN7ee53651C1Ev),
+ NSPAIR(_ZN7ee53651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee53651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53651[];
+extern void _ZN7ee536513barEv();
+extern void _ZN6dd36513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee536513barEv,_ZTv0_n16_N7ee536513barEv)();
+extern void ABISELECT(_ZThn32_N7ee536513barEv,_ZThn16_N7ee536513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53651[0]),
+ (VTBL_ENTRY)&_ZN7ee536513barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536513barEv,_ZTv0_n16_N7ee536513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee53651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee53651[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee53651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee53651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee53651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee53651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee53651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee53651[] = {
+ {&(_ZTV7ee53651[5]), 5,23},
+ {&(_ZTV7ee53651[11]), 11,23},
+ {&(_ZTV7ee53651[17]), 17,23},
+ {&(_ZTV7ee53651[22]), 22,23},
+ {&(_tg__ZTV6dd3651__7ee53651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee53651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee53651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee53651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee53651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee53651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee53651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53651[];
+extern VTBL_ENTRY _ZTV7ee53651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53651[];
+static VTBL_ENTRY alt_thunk_names867[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536513barEv,_ZTv0_n16_N7ee536513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536513barEv,_ZThn16_N7ee536513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53651 = { "ee53651", // class name
+ bases_ee53651, 4,
+ &(vtc_ee53651[0]), // expected_vtbl_contents
+ &(vtt_ee53651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53651),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names867,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63651 : dd3651 {
+ int e;
+ virtual void foo(); // _ZN7ee636513fooEv
+ virtual void bar(); // _ZN7ee636513barEv
+ ~ee63651(); // tgen
+ ee63651(); // tgen
+};
+//SIG(1 ee63651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63651 ::foo(){vfunc_called(this, "_ZN7ee636513fooEv");}
+void ee63651 ::bar(){vfunc_called(this, "_ZN7ee636513barEv");}
+ee63651 ::~ee63651(){ note_dtor("ee63651", this);} // tgen
+ee63651 ::ee63651(){ note_ctor("ee63651", this);} // tgen
+
+static void Test_ee63651()
+{
+ extern Class_Descriptor cd_ee63651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63651, buf);
+ ee63651 *dp, &lv = *(dp=new (buf) ee63651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee63651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee63651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(16,12), "ee63651");
+ check_base_class_offset(lv, (dd3651*), 0, "ee63651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63651.e");
+ test_class_info(&lv, &cd_ee63651);
+ dp->~ee63651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63651(Test_ee63651, "ee63651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63651C1Ev();
+extern void _ZN7ee63651D1Ev();
+Name_Map name_map_ee63651[] = {
+ NSPAIR(_ZN7ee63651C1Ev),
+ NSPAIR(_ZN7ee63651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee63651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63651[];
+extern void _ZN7ee636513fooEv();
+extern void _ZN7ee636513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee636513barEv,_ZTv0_n16_N7ee636513barEv)();
+extern void ABISELECT(_ZThn16_N7ee636513barEv,_ZThn12_N7ee636513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee636513fooEv,_ZTv0_n20_N7ee636513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636513fooEv,_ZThn12_N7ee636513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee636513fooEv,_ZTv0_n12_N7ee636513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee636513fooEv,_ZThn24_N7ee636513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63651[0]),
+ (VTBL_ENTRY)&_ZN7ee636513fooEv,
+ (VTBL_ENTRY)&_ZN7ee636513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636513barEv,_ZTv0_n16_N7ee636513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee636513fooEv,_ZTv0_n20_N7ee636513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636513fooEv,_ZTv0_n12_N7ee636513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee63651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee63651[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee63651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee63651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee63651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee63651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee63651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee63651[] = {
+ {&(_ZTV7ee63651[4]), 4,17},
+ {&(_tg__ZTV6dd3651__7ee63651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee63651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee63651[3]), 3,4},
+ {&(_ZTV7ee63651[11]), 11,17},
+ {&(_ZTV7ee63651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee63651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee63651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee63651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee63651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63651[];
+extern VTBL_ENTRY _ZTV7ee63651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63651[];
+static VTBL_ENTRY alt_thunk_names868[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn24_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn12_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636513fooEv,_ZTv0_n12_N7ee636513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee636513fooEv,_ZThn24_N7ee636513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee636513fooEv,_ZTv0_n20_N7ee636513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636513fooEv,_ZThn12_N7ee636513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636513barEv,_ZTv0_n16_N7ee636513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636513barEv,_ZThn12_N7ee636513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63651 = { "ee63651", // class name
+ bases_ee63651, 4,
+ &(vtc_ee63651[0]), // expected_vtbl_contents
+ &(vtt_ee63651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names868,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73651 : virtual dd3651 {
+ int e;
+ virtual void foo(); // _ZN7ee736513fooEv
+ virtual void bar(); // _ZN7ee736513barEv
+ ~ee73651(); // tgen
+ ee73651(); // tgen
+};
+//SIG(1 ee73651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73651 ::foo(){vfunc_called(this, "_ZN7ee736513fooEv");}
+void ee73651 ::bar(){vfunc_called(this, "_ZN7ee736513barEv");}
+ee73651 ::~ee73651(){ note_dtor("ee73651", this);} // tgen
+ee73651 ::ee73651(){ note_ctor("ee73651", this);} // tgen
+
+static void Test_ee73651()
+{
+ extern Class_Descriptor cd_ee73651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73651, buf);
+ ee73651 *dp, &lv = *(dp=new (buf) ee73651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee73651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee73651");
+ check_base_class_offset(lv, (cc651*)(dd3651*), ABISELECT(32,16), "ee73651");
+ check_base_class_offset(lv, (dd3651*), ABISELECT(16,8), "ee73651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73651.e");
+ test_class_info(&lv, &cd_ee73651);
+ dp->~ee73651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73651(Test_ee73651, "ee73651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73651C1Ev();
+extern void _ZN7ee73651D1Ev();
+Name_Map name_map_ee73651[] = {
+ NSPAIR(_ZN7ee73651C1Ev),
+ NSPAIR(_ZN7ee73651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd3651;
+extern VTBL_ENTRY _ZTI6dd3651[];
+extern VTBL_ENTRY _ZTV6dd3651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3651[];
+static Base_Class bases_ee73651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3651, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73651[];
+extern void _ZN7ee736513fooEv();
+extern void _ZN7ee736513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee736513fooEv,_ZTv0_n20_N7ee736513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736513fooEv,_ZThn8_N7ee736513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736513barEv,_ZTv0_n16_N7ee736513barEv)();
+extern void ABISELECT(_ZThn32_N7ee736513barEv,_ZThn16_N7ee736513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee736513fooEv,_ZTv0_n20_N7ee736513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736513fooEv,_ZThn16_N7ee736513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736513fooEv,_ZTv0_n12_N7ee736513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee736513fooEv,_ZThn28_N7ee736513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73651[0]),
+ (VTBL_ENTRY)&_ZN7ee736513fooEv,
+ (VTBL_ENTRY)&_ZN7ee736513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736513fooEv,_ZTv0_n20_N7ee736513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736513barEv,_ZTv0_n16_N7ee736513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736513fooEv,_ZTv0_n20_N7ee736513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736513fooEv,_ZTv0_n12_N7ee736513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73651[];
+extern void _ZN6dd36513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3651__7ee73651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN6dd36513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd3651__7ee73651[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3651__7ee73651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee73651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee73651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee73651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee73651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee73651[] = {
+ {&(_ZTV7ee73651[5]), 5,24},
+ {&(_ZTV7ee73651[12]), 12,24},
+ {&(_ZTV7ee73651[18]), 18,24},
+ {&(_ZTV7ee73651[23]), 23,24},
+ {&(_tg__ZTV6dd3651__7ee73651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd3651__7ee73651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd3651__7ee73651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee73651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee73651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee73651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee73651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73651[];
+extern VTBL_ENTRY _ZTV7ee73651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73651[];
+static VTBL_ENTRY alt_thunk_names869[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36513fooEv,_ZTv0_n12_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36513fooEv,_ZThn20_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36513fooEv,_ZTv0_n20_N6dd36513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36513fooEv,_ZThn8_N6dd36513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736513fooEv,_ZTv0_n12_N7ee736513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee736513fooEv,_ZThn28_N7ee736513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736513barEv,_ZTv0_n16_N7ee736513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736513barEv,_ZThn16_N7ee736513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee736513fooEv,_ZTv0_n20_N7ee736513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736513fooEv,_ZThn16_N7ee736513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736513fooEv,_ZThn8_N7ee736513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73651 = { "ee73651", // class name
+ bases_ee73651, 4,
+ &(vtc_ee73651[0]), // expected_vtbl_contents
+ &(vtt_ee73651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73651),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names869,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4651 : cc651 {
+ int d;
+ virtual void bar(); // _ZN6dd46513barEv
+ ~dd4651(); // tgen
+ dd4651(); // tgen
+};
+//SIG(-1 dd4651) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4651 ::bar(){vfunc_called(this, "_ZN6dd46513barEv");}
+dd4651 ::~dd4651(){ note_dtor("dd4651", this);} // tgen
+dd4651 ::dd4651(){ note_ctor("dd4651", this);} // tgen
+
+static void Test_dd4651()
+{
+ extern Class_Descriptor cd_dd4651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4651, buf);
+ dd4651 *dp, &lv = *(dp=new (buf) dd4651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(24,16), "dd4651");
+ check_base_class_offset(lv, (bb51*)(cc651*), 0, "dd4651");
+ check_base_class_offset(lv, (cc651*), 0, "dd4651");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4651.d");
+ test_class_info(&lv, &cd_dd4651);
+ dp->~dd4651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4651(Test_dd4651, "dd4651", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4651C1Ev();
+extern void _ZN6dd4651D1Ev();
+Name_Map name_map_dd4651[] = {
+ NSPAIR(_ZN6dd4651C1Ev),
+ NSPAIR(_ZN6dd4651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd4651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd4651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd4651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd4651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd4651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd4651[] = {
+ {&(_ZTV6dd4651[3]), 3,9},
+ {&(_tg__ZTV5cc651__6dd4651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd4651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd4651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd4651[3]), 3,4},
+ {&(_ZTV6dd4651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static VTBL_ENTRY alt_thunk_names870[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4651 = { "dd4651", // class name
+ bases_dd4651, 3,
+ &(vtc_dd4651[0]), // expected_vtbl_contents
+ &(vtt_dd4651[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4651),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names870,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04651 : dd4651 {
+ int e;
+ ~ee04651(); // tgen
+ ee04651(); // tgen
+};
+//SIG(1 ee04651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04651 ::~ee04651(){ note_dtor("ee04651", this);} // tgen
+ee04651 ::ee04651(){ note_ctor("ee04651", this);} // tgen
+
+static void Test_ee04651()
+{
+ extern Class_Descriptor cd_ee04651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04651, buf);
+ ee04651 *dp, &lv = *(dp=new (buf) ee04651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(24,20), "ee04651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), 0, "ee04651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), 0, "ee04651");
+ check_base_class_offset(lv, (dd4651*), 0, "ee04651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04651.e");
+ test_class_info(&lv, &cd_ee04651);
+ dp->~ee04651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04651(Test_ee04651, "ee04651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04651C1Ev();
+extern void _ZN7ee04651D1Ev();
+Name_Map name_map_ee04651[] = {
+ NSPAIR(_ZN7ee04651C1Ev),
+ NSPAIR(_ZN7ee04651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee04651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee04651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee04651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee04651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee04651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee04651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee04651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee04651[] = {
+ {&(_ZTV7ee04651[3]), 3,9},
+ {&(_tg__ZTV6dd4651__7ee04651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee04651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee04651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee04651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee04651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee04651[3]), 3,4},
+ {&(_ZTV7ee04651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee04651[];
+extern VTBL_ENTRY _ZTV7ee04651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04651[];
+static VTBL_ENTRY alt_thunk_names871[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04651 = { "ee04651", // class name
+ bases_ee04651, 4,
+ &(vtc_ee04651[0]), // expected_vtbl_contents
+ &(vtt_ee04651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names871,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14651 : virtual dd4651 {
+ int e;
+ ~ee14651(); // tgen
+ ee14651(); // tgen
+};
+//SIG(1 ee14651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14651 ::~ee14651(){ note_dtor("ee14651", this);} // tgen
+ee14651 ::ee14651(){ note_ctor("ee14651", this);} // tgen
+
+static void Test_ee14651()
+{
+ extern Class_Descriptor cd_ee14651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14651, buf);
+ ee14651 *dp, &lv = *(dp=new (buf) ee14651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(40,24), "ee14651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), ABISELECT(16,8), "ee14651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), ABISELECT(16,8), "ee14651");
+ check_base_class_offset(lv, (dd4651*), ABISELECT(16,8), "ee14651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14651.e");
+ test_class_info(&lv, &cd_ee14651);
+ dp->~ee14651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14651(Test_ee14651, "ee14651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14651C1Ev();
+extern void _ZN7ee14651D1Ev();
+Name_Map name_map_ee14651[] = {
+ NSPAIR(_ZN7ee14651C1Ev),
+ NSPAIR(_ZN7ee14651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee14651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14651[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee14651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee14651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee14651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee14651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee14651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee14651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee14651[] = {
+ {&(_ZTV7ee14651[4]), 4,15},
+ {&(_ZTV7ee14651[9]), 9,15},
+ {&(_ZTV7ee14651[14]), 14,15},
+ {&(_tg__ZTV6dd4651__7ee14651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee14651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee14651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee14651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee14651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee14651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14651[];
+extern VTBL_ENTRY _ZTV7ee14651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14651[];
+static VTBL_ENTRY alt_thunk_names872[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14651 = { "ee14651", // class name
+ bases_ee14651, 4,
+ &(vtc_ee14651[0]), // expected_vtbl_contents
+ &(vtt_ee14651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names872,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24651 : dd4651 {
+ int e;
+ virtual void foo(); // _ZN7ee246513fooEv
+ ~ee24651(); // tgen
+ ee24651(); // tgen
+};
+//SIG(1 ee24651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24651 ::foo(){vfunc_called(this, "_ZN7ee246513fooEv");}
+ee24651 ::~ee24651(){ note_dtor("ee24651", this);} // tgen
+ee24651 ::ee24651(){ note_ctor("ee24651", this);} // tgen
+
+static void Test_ee24651()
+{
+ extern Class_Descriptor cd_ee24651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24651, buf);
+ ee24651 *dp, &lv = *(dp=new (buf) ee24651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(24,20), "ee24651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), 0, "ee24651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), 0, "ee24651");
+ check_base_class_offset(lv, (dd4651*), 0, "ee24651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24651.e");
+ test_class_info(&lv, &cd_ee24651);
+ dp->~ee24651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24651(Test_ee24651, "ee24651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24651C1Ev();
+extern void _ZN7ee24651D1Ev();
+Name_Map name_map_ee24651[] = {
+ NSPAIR(_ZN7ee24651C1Ev),
+ NSPAIR(_ZN7ee24651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee24651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN7ee246513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee246513fooEv,_ZTv0_n12_N7ee246513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee246513fooEv,_ZThn20_N7ee246513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN7ee246513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee246513fooEv,_ZTv0_n12_N7ee246513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee24651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee24651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee24651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee24651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee24651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee24651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee24651[] = {
+ {&(_ZTV7ee24651[3]), 3,9},
+ {&(_tg__ZTV6dd4651__7ee24651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee24651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee24651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee24651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee24651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee24651[3]), 3,4},
+ {&(_ZTV7ee24651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee24651[];
+extern VTBL_ENTRY _ZTV7ee24651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24651[];
+static VTBL_ENTRY alt_thunk_names873[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee246513fooEv,_ZTv0_n12_N7ee246513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee246513fooEv,_ZThn20_N7ee246513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24651 = { "ee24651", // class name
+ bases_ee24651, 4,
+ &(vtc_ee24651[0]), // expected_vtbl_contents
+ &(vtt_ee24651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names873,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34651 : virtual dd4651 {
+ int e;
+ virtual void foo(); // _ZN7ee346513fooEv
+ ~ee34651(); // tgen
+ ee34651(); // tgen
+};
+//SIG(1 ee34651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34651 ::foo(){vfunc_called(this, "_ZN7ee346513fooEv");}
+ee34651 ::~ee34651(){ note_dtor("ee34651", this);} // tgen
+ee34651 ::ee34651(){ note_ctor("ee34651", this);} // tgen
+
+static void Test_ee34651()
+{
+ extern Class_Descriptor cd_ee34651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34651, buf);
+ ee34651 *dp, &lv = *(dp=new (buf) ee34651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(40,24), "ee34651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), ABISELECT(16,8), "ee34651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), ABISELECT(16,8), "ee34651");
+ check_base_class_offset(lv, (dd4651*), ABISELECT(16,8), "ee34651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34651.e");
+ test_class_info(&lv, &cd_ee34651);
+ dp->~ee34651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34651(Test_ee34651, "ee34651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34651C1Ev();
+extern void _ZN7ee34651D1Ev();
+Name_Map name_map_ee34651[] = {
+ NSPAIR(_ZN7ee34651C1Ev),
+ NSPAIR(_ZN7ee34651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee34651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34651[];
+extern void _ZN7ee346513fooEv();
+extern void _ZN6dd46513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee346513fooEv,_ZTv0_n20_N7ee346513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346513fooEv,_ZThn8_N7ee346513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee346513fooEv,_ZTv0_n12_N7ee346513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee346513fooEv,_ZThn24_N7ee346513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34651[0]),
+ (VTBL_ENTRY)&_ZN7ee346513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee346513fooEv,_ZTv0_n20_N7ee346513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346513fooEv,_ZTv0_n12_N7ee346513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee34651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee34651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee34651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee34651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee34651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee34651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee34651[] = {
+ {&(_ZTV7ee34651[4]), 4,16},
+ {&(_ZTV7ee34651[10]), 10,16},
+ {&(_ZTV7ee34651[15]), 15,16},
+ {&(_tg__ZTV6dd4651__7ee34651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee34651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee34651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee34651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee34651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee34651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34651[];
+extern VTBL_ENTRY _ZTV7ee34651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34651[];
+static VTBL_ENTRY alt_thunk_names874[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346513fooEv,_ZTv0_n12_N7ee346513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee346513fooEv,_ZThn24_N7ee346513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee346513fooEv,_ZTv0_n20_N7ee346513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346513fooEv,_ZThn8_N7ee346513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34651 = { "ee34651", // class name
+ bases_ee34651, 4,
+ &(vtc_ee34651[0]), // expected_vtbl_contents
+ &(vtt_ee34651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names874,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44651 : dd4651 {
+ int e;
+ virtual void bar(); // _ZN7ee446513barEv
+ ~ee44651(); // tgen
+ ee44651(); // tgen
+};
+//SIG(1 ee44651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44651 ::bar(){vfunc_called(this, "_ZN7ee446513barEv");}
+ee44651 ::~ee44651(){ note_dtor("ee44651", this);} // tgen
+ee44651 ::ee44651(){ note_ctor("ee44651", this);} // tgen
+
+static void Test_ee44651()
+{
+ extern Class_Descriptor cd_ee44651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44651, buf);
+ ee44651 *dp, &lv = *(dp=new (buf) ee44651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(24,20), "ee44651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), 0, "ee44651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), 0, "ee44651");
+ check_base_class_offset(lv, (dd4651*), 0, "ee44651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44651.e");
+ test_class_info(&lv, &cd_ee44651);
+ dp->~ee44651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44651(Test_ee44651, "ee44651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44651C1Ev();
+extern void _ZN7ee44651D1Ev();
+Name_Map name_map_ee44651[] = {
+ NSPAIR(_ZN7ee44651C1Ev),
+ NSPAIR(_ZN7ee44651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee44651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44651[];
+extern void _ZN7ee446513barEv();
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44651[0]),
+ (VTBL_ENTRY)&_ZN7ee446513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee44651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee44651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee44651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee44651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee44651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee44651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee44651[] = {
+ {&(_ZTV7ee44651[3]), 3,9},
+ {&(_tg__ZTV6dd4651__7ee44651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee44651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee44651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee44651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee44651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee44651[3]), 3,4},
+ {&(_ZTV7ee44651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee44651[];
+extern VTBL_ENTRY _ZTV7ee44651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44651[];
+static VTBL_ENTRY alt_thunk_names875[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44651 = { "ee44651", // class name
+ bases_ee44651, 4,
+ &(vtc_ee44651[0]), // expected_vtbl_contents
+ &(vtt_ee44651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names875,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54651 : virtual dd4651 {
+ int e;
+ virtual void bar(); // _ZN7ee546513barEv
+ ~ee54651(); // tgen
+ ee54651(); // tgen
+};
+//SIG(1 ee54651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54651 ::bar(){vfunc_called(this, "_ZN7ee546513barEv");}
+ee54651 ::~ee54651(){ note_dtor("ee54651", this);} // tgen
+ee54651 ::ee54651(){ note_ctor("ee54651", this);} // tgen
+
+static void Test_ee54651()
+{
+ extern Class_Descriptor cd_ee54651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54651, buf);
+ ee54651 *dp, &lv = *(dp=new (buf) ee54651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(40,24), "ee54651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), ABISELECT(16,8), "ee54651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), ABISELECT(16,8), "ee54651");
+ check_base_class_offset(lv, (dd4651*), ABISELECT(16,8), "ee54651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54651.e");
+ test_class_info(&lv, &cd_ee54651);
+ dp->~ee54651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54651(Test_ee54651, "ee54651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54651C1Ev();
+extern void _ZN7ee54651D1Ev();
+Name_Map name_map_ee54651[] = {
+ NSPAIR(_ZN7ee54651C1Ev),
+ NSPAIR(_ZN7ee54651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee54651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54651[];
+extern void _ZN7ee546513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546513barEv,_ZTv0_n16_N7ee546513barEv)();
+extern void ABISELECT(_ZThn16_N7ee546513barEv,_ZThn8_N7ee546513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54651[0]),
+ (VTBL_ENTRY)&_ZN7ee546513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546513barEv,_ZTv0_n16_N7ee546513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee54651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee54651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee54651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee54651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee54651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee54651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee54651[] = {
+ {&(_ZTV7ee54651[4]), 4,16},
+ {&(_ZTV7ee54651[10]), 10,16},
+ {&(_ZTV7ee54651[15]), 15,16},
+ {&(_tg__ZTV6dd4651__7ee54651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee54651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee54651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee54651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee54651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee54651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54651[];
+extern VTBL_ENTRY _ZTV7ee54651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54651[];
+static VTBL_ENTRY alt_thunk_names876[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546513barEv,_ZTv0_n16_N7ee546513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546513barEv,_ZThn8_N7ee546513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54651 = { "ee54651", // class name
+ bases_ee54651, 4,
+ &(vtc_ee54651[0]), // expected_vtbl_contents
+ &(vtt_ee54651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names876,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64651 : dd4651 {
+ int e;
+ virtual void foo(); // _ZN7ee646513fooEv
+ virtual void bar(); // _ZN7ee646513barEv
+ ~ee64651(); // tgen
+ ee64651(); // tgen
+};
+//SIG(1 ee64651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64651 ::foo(){vfunc_called(this, "_ZN7ee646513fooEv");}
+void ee64651 ::bar(){vfunc_called(this, "_ZN7ee646513barEv");}
+ee64651 ::~ee64651(){ note_dtor("ee64651", this);} // tgen
+ee64651 ::ee64651(){ note_ctor("ee64651", this);} // tgen
+
+static void Test_ee64651()
+{
+ extern Class_Descriptor cd_ee64651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64651, buf);
+ ee64651 *dp, &lv = *(dp=new (buf) ee64651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(24,20), "ee64651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), 0, "ee64651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), 0, "ee64651");
+ check_base_class_offset(lv, (dd4651*), 0, "ee64651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64651.e");
+ test_class_info(&lv, &cd_ee64651);
+ dp->~ee64651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64651(Test_ee64651, "ee64651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64651C1Ev();
+extern void _ZN7ee64651D1Ev();
+Name_Map name_map_ee64651[] = {
+ NSPAIR(_ZN7ee64651C1Ev),
+ NSPAIR(_ZN7ee64651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee64651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64651[];
+extern void _ZN7ee646513barEv();
+extern void _ZN7ee646513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee646513fooEv,_ZTv0_n12_N7ee646513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee646513fooEv,_ZThn20_N7ee646513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64651[0]),
+ (VTBL_ENTRY)&_ZN7ee646513barEv,
+ (VTBL_ENTRY)&_ZN7ee646513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee646513fooEv,_ZTv0_n12_N7ee646513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee64651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee64651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee64651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee64651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee64651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee64651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee64651[] = {
+ {&(_ZTV7ee64651[3]), 3,9},
+ {&(_tg__ZTV6dd4651__7ee64651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee64651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee64651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee64651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee64651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee64651[3]), 3,4},
+ {&(_ZTV7ee64651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee64651[];
+extern VTBL_ENTRY _ZTV7ee64651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64651[];
+static VTBL_ENTRY alt_thunk_names877[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee646513fooEv,_ZTv0_n12_N7ee646513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee646513fooEv,_ZThn20_N7ee646513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64651 = { "ee64651", // class name
+ bases_ee64651, 4,
+ &(vtc_ee64651[0]), // expected_vtbl_contents
+ &(vtt_ee64651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names877,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74651 : virtual dd4651 {
+ int e;
+ virtual void foo(); // _ZN7ee746513fooEv
+ virtual void bar(); // _ZN7ee746513barEv
+ ~ee74651(); // tgen
+ ee74651(); // tgen
+};
+//SIG(1 ee74651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74651 ::foo(){vfunc_called(this, "_ZN7ee746513fooEv");}
+void ee74651 ::bar(){vfunc_called(this, "_ZN7ee746513barEv");}
+ee74651 ::~ee74651(){ note_dtor("ee74651", this);} // tgen
+ee74651 ::ee74651(){ note_ctor("ee74651", this);} // tgen
+
+static void Test_ee74651()
+{
+ extern Class_Descriptor cd_ee74651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74651, buf);
+ ee74651 *dp, &lv = *(dp=new (buf) ee74651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd4651*), ABISELECT(40,24), "ee74651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd4651*), ABISELECT(16,8), "ee74651");
+ check_base_class_offset(lv, (cc651*)(dd4651*), ABISELECT(16,8), "ee74651");
+ check_base_class_offset(lv, (dd4651*), ABISELECT(16,8), "ee74651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74651.e");
+ test_class_info(&lv, &cd_ee74651);
+ dp->~ee74651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74651(Test_ee74651, "ee74651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74651C1Ev();
+extern void _ZN7ee74651D1Ev();
+Name_Map name_map_ee74651[] = {
+ NSPAIR(_ZN7ee74651C1Ev),
+ NSPAIR(_ZN7ee74651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd4651;
+extern VTBL_ENTRY _ZTI6dd4651[];
+extern VTBL_ENTRY _ZTV6dd4651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4651[];
+static Base_Class bases_ee74651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74651[];
+extern void _ZN7ee746513fooEv();
+extern void _ZN7ee746513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee746513barEv,_ZTv0_n16_N7ee746513barEv)();
+extern void ABISELECT(_ZThn16_N7ee746513barEv,_ZThn8_N7ee746513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee746513fooEv,_ZTv0_n20_N7ee746513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746513fooEv,_ZThn8_N7ee746513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee746513fooEv,_ZTv0_n12_N7ee746513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee746513fooEv,_ZThn24_N7ee746513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74651[0]),
+ (VTBL_ENTRY)&_ZN7ee746513fooEv,
+ (VTBL_ENTRY)&_ZN7ee746513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746513barEv,_ZTv0_n16_N7ee746513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee746513fooEv,_ZTv0_n20_N7ee746513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746513fooEv,_ZTv0_n12_N7ee746513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74651[];
+extern void _ZN6dd46513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4651__7ee74651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&_ZN6dd46513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd4651__7ee74651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd4651__7ee74651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd4651__7ee74651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd4651__7ee74651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4651__7ee74651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee74651[] = {
+ {&(_ZTV7ee74651[4]), 4,17},
+ {&(_ZTV7ee74651[11]), 11,17},
+ {&(_ZTV7ee74651[16]), 16,17},
+ {&(_tg__ZTV6dd4651__7ee74651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd4651__7ee74651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd4651__7ee74651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd4651__7ee74651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd4651__7ee74651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd4651__7ee74651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74651[];
+extern VTBL_ENTRY _ZTV7ee74651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74651[];
+static VTBL_ENTRY alt_thunk_names878[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746513fooEv,_ZTv0_n12_N7ee746513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee746513fooEv,_ZThn24_N7ee746513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee746513fooEv,_ZTv0_n20_N7ee746513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746513fooEv,_ZThn8_N7ee746513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746513barEv,_ZTv0_n16_N7ee746513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746513barEv,_ZThn8_N7ee746513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74651 = { "ee74651", // class name
+ bases_ee74651, 4,
+ &(vtc_ee74651[0]), // expected_vtbl_contents
+ &(vtt_ee74651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names878,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5651 : virtual cc651 {
+ int d;
+ virtual void bar(); // _ZN6dd56513barEv
+ ~dd5651(); // tgen
+ dd5651(); // tgen
+};
+//SIG(-1 dd5651) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5651 ::bar(){vfunc_called(this, "_ZN6dd56513barEv");}
+dd5651 ::~dd5651(){ note_dtor("dd5651", this);} // tgen
+dd5651 ::dd5651(){ note_ctor("dd5651", this);} // tgen
+
+static void Test_dd5651()
+{
+ extern Class_Descriptor cd_dd5651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5651, buf);
+ dd5651 *dp, &lv = *(dp=new (buf) dd5651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,20), "dd5651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,8), "dd5651");
+ check_base_class_offset(lv, (cc651*), ABISELECT(16,8), "dd5651");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5651.d");
+ test_class_info(&lv, &cd_dd5651);
+ dp->~dd5651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5651(Test_dd5651, "dd5651", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5651C1Ev();
+extern void _ZN6dd5651D1Ev();
+Name_Map name_map_dd5651[] = {
+ NSPAIR(_ZN6dd5651C1Ev),
+ NSPAIR(_ZN6dd5651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd5651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd5651[];
+extern void _ZN6dd56513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd5651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd5651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd5651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd5651[] = {
+ {&(_ZTV6dd5651[4]), 4,16},
+ {&(_ZTV6dd5651[10]), 10,16},
+ {&(_ZTV6dd5651[15]), 15,16},
+ {&(_tg__ZTV5cc651__6dd5651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd5651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd5651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd5651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static VTBL_ENTRY alt_thunk_names879[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5651 = { "dd5651", // class name
+ bases_dd5651, 3,
+ &(vtc_dd5651[0]), // expected_vtbl_contents
+ &(vtt_dd5651[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5651),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names879,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05651 : dd5651 {
+ int e;
+ ~ee05651(); // tgen
+ ee05651(); // tgen
+};
+//SIG(1 ee05651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05651 ::~ee05651(){ note_dtor("ee05651", this);} // tgen
+ee05651 ::ee05651(){ note_ctor("ee05651", this);} // tgen
+
+static void Test_ee05651()
+{
+ extern Class_Descriptor cd_ee05651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05651, buf);
+ ee05651 *dp, &lv = *(dp=new (buf) ee05651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee05651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee05651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(16,12), "ee05651");
+ check_base_class_offset(lv, (dd5651*), 0, "ee05651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05651.e");
+ test_class_info(&lv, &cd_ee05651);
+ dp->~ee05651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05651(Test_ee05651, "ee05651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05651C1Ev();
+extern void _ZN7ee05651D1Ev();
+Name_Map name_map_ee05651[] = {
+ NSPAIR(_ZN7ee05651C1Ev),
+ NSPAIR(_ZN7ee05651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee05651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05651[];
+extern void _ZN6dd56513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee05651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee05651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee05651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee05651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee05651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee05651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee05651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee05651[] = {
+ {&(_ZTV7ee05651[4]), 4,16},
+ {&(_tg__ZTV6dd5651__7ee05651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee05651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee05651[3]), 3,4},
+ {&(_ZTV7ee05651[10]), 10,16},
+ {&(_ZTV7ee05651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee05651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee05651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee05651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee05651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05651[];
+extern VTBL_ENTRY _ZTV7ee05651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05651[];
+static VTBL_ENTRY alt_thunk_names880[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05651 = { "ee05651", // class name
+ bases_ee05651, 4,
+ &(vtc_ee05651[0]), // expected_vtbl_contents
+ &(vtt_ee05651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names880,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15651 : virtual dd5651 {
+ int e;
+ ~ee15651(); // tgen
+ ee15651(); // tgen
+};
+//SIG(1 ee15651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15651 ::~ee15651(){ note_dtor("ee15651", this);} // tgen
+ee15651 ::ee15651(){ note_ctor("ee15651", this);} // tgen
+
+static void Test_ee15651()
+{
+ extern Class_Descriptor cd_ee15651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15651, buf);
+ ee15651 *dp, &lv = *(dp=new (buf) ee15651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee15651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee15651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(32,16), "ee15651");
+ check_base_class_offset(lv, (dd5651*), ABISELECT(16,8), "ee15651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15651.e");
+ test_class_info(&lv, &cd_ee15651);
+ dp->~ee15651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15651(Test_ee15651, "ee15651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15651C1Ev();
+extern void _ZN7ee15651D1Ev();
+Name_Map name_map_ee15651[] = {
+ NSPAIR(_ZN7ee15651C1Ev),
+ NSPAIR(_ZN7ee15651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee15651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15651[];
+extern void _ZN6dd56513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15651[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee15651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee15651[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee15651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee15651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee15651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee15651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee15651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee15651[] = {
+ {&(_ZTV7ee15651[5]), 5,22},
+ {&(_ZTV7ee15651[10]), 10,22},
+ {&(_ZTV7ee15651[16]), 16,22},
+ {&(_ZTV7ee15651[21]), 21,22},
+ {&(_tg__ZTV6dd5651__7ee15651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee15651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee15651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee15651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee15651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee15651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee15651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15651[];
+extern VTBL_ENTRY _ZTV7ee15651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15651[];
+static VTBL_ENTRY alt_thunk_names881[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15651 = { "ee15651", // class name
+ bases_ee15651, 4,
+ &(vtc_ee15651[0]), // expected_vtbl_contents
+ &(vtt_ee15651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15651),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names881,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25651 : dd5651 {
+ int e;
+ virtual void foo(); // _ZN7ee256513fooEv
+ ~ee25651(); // tgen
+ ee25651(); // tgen
+};
+//SIG(1 ee25651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25651 ::foo(){vfunc_called(this, "_ZN7ee256513fooEv");}
+ee25651 ::~ee25651(){ note_dtor("ee25651", this);} // tgen
+ee25651 ::ee25651(){ note_ctor("ee25651", this);} // tgen
+
+static void Test_ee25651()
+{
+ extern Class_Descriptor cd_ee25651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25651, buf);
+ ee25651 *dp, &lv = *(dp=new (buf) ee25651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee25651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee25651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(16,12), "ee25651");
+ check_base_class_offset(lv, (dd5651*), 0, "ee25651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25651.e");
+ test_class_info(&lv, &cd_ee25651);
+ dp->~ee25651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25651(Test_ee25651, "ee25651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25651C1Ev();
+extern void _ZN7ee25651D1Ev();
+Name_Map name_map_ee25651[] = {
+ NSPAIR(_ZN7ee25651C1Ev),
+ NSPAIR(_ZN7ee25651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee25651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25651[];
+extern void _ZN6dd56513barEv();
+extern void _ZN7ee256513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee256513fooEv,_ZTv0_n20_N7ee256513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256513fooEv,_ZThn12_N7ee256513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee256513fooEv,_ZTv0_n12_N7ee256513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee256513fooEv,_ZThn24_N7ee256513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+ (VTBL_ENTRY)&_ZN7ee256513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee256513fooEv,_ZTv0_n20_N7ee256513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256513fooEv,_ZTv0_n12_N7ee256513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee25651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee25651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee25651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee25651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee25651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee25651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee25651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee25651[] = {
+ {&(_ZTV7ee25651[4]), 4,17},
+ {&(_tg__ZTV6dd5651__7ee25651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee25651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee25651[3]), 3,4},
+ {&(_ZTV7ee25651[11]), 11,17},
+ {&(_ZTV7ee25651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee25651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee25651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee25651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee25651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25651[];
+extern VTBL_ENTRY _ZTV7ee25651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25651[];
+static VTBL_ENTRY alt_thunk_names882[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256513fooEv,_ZTv0_n12_N7ee256513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee256513fooEv,_ZThn24_N7ee256513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee256513fooEv,_ZTv0_n20_N7ee256513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256513fooEv,_ZThn12_N7ee256513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25651 = { "ee25651", // class name
+ bases_ee25651, 4,
+ &(vtc_ee25651[0]), // expected_vtbl_contents
+ &(vtt_ee25651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names882,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35651 : virtual dd5651 {
+ int e;
+ virtual void foo(); // _ZN7ee356513fooEv
+ ~ee35651(); // tgen
+ ee35651(); // tgen
+};
+//SIG(1 ee35651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35651 ::foo(){vfunc_called(this, "_ZN7ee356513fooEv");}
+ee35651 ::~ee35651(){ note_dtor("ee35651", this);} // tgen
+ee35651 ::ee35651(){ note_ctor("ee35651", this);} // tgen
+
+static void Test_ee35651()
+{
+ extern Class_Descriptor cd_ee35651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35651, buf);
+ ee35651 *dp, &lv = *(dp=new (buf) ee35651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee35651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee35651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(32,16), "ee35651");
+ check_base_class_offset(lv, (dd5651*), ABISELECT(16,8), "ee35651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35651.e");
+ test_class_info(&lv, &cd_ee35651);
+ dp->~ee35651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35651(Test_ee35651, "ee35651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35651C1Ev();
+extern void _ZN7ee35651D1Ev();
+Name_Map name_map_ee35651[] = {
+ NSPAIR(_ZN7ee35651C1Ev),
+ NSPAIR(_ZN7ee35651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee35651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35651[];
+extern void _ZN7ee356513fooEv();
+extern void _ZN6dd56513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee356513fooEv,_ZTv0_n20_N7ee356513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356513fooEv,_ZThn16_N7ee356513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee356513fooEv,_ZTv0_n12_N7ee356513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee356513fooEv,_ZThn28_N7ee356513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35651[0]),
+ (VTBL_ENTRY)&_ZN7ee356513fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee356513fooEv,_ZTv0_n20_N7ee356513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356513fooEv,_ZTv0_n12_N7ee356513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee35651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee35651[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee35651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee35651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee35651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee35651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee35651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee35651[] = {
+ {&(_ZTV7ee35651[5]), 5,23},
+ {&(_ZTV7ee35651[11]), 11,23},
+ {&(_ZTV7ee35651[17]), 17,23},
+ {&(_ZTV7ee35651[22]), 22,23},
+ {&(_tg__ZTV6dd5651__7ee35651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee35651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee35651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee35651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee35651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee35651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee35651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35651[];
+extern VTBL_ENTRY _ZTV7ee35651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35651[];
+static VTBL_ENTRY alt_thunk_names883[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356513fooEv,_ZTv0_n12_N7ee356513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee356513fooEv,_ZThn28_N7ee356513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee356513fooEv,_ZTv0_n20_N7ee356513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356513fooEv,_ZThn16_N7ee356513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35651 = { "ee35651", // class name
+ bases_ee35651, 4,
+ &(vtc_ee35651[0]), // expected_vtbl_contents
+ &(vtt_ee35651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35651),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names883,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45651 : dd5651 {
+ int e;
+ virtual void bar(); // _ZN7ee456513barEv
+ ~ee45651(); // tgen
+ ee45651(); // tgen
+};
+//SIG(1 ee45651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45651 ::bar(){vfunc_called(this, "_ZN7ee456513barEv");}
+ee45651 ::~ee45651(){ note_dtor("ee45651", this);} // tgen
+ee45651 ::ee45651(){ note_ctor("ee45651", this);} // tgen
+
+static void Test_ee45651()
+{
+ extern Class_Descriptor cd_ee45651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45651, buf);
+ ee45651 *dp, &lv = *(dp=new (buf) ee45651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee45651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee45651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(16,12), "ee45651");
+ check_base_class_offset(lv, (dd5651*), 0, "ee45651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45651.e");
+ test_class_info(&lv, &cd_ee45651);
+ dp->~ee45651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45651(Test_ee45651, "ee45651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45651C1Ev();
+extern void _ZN7ee45651D1Ev();
+Name_Map name_map_ee45651[] = {
+ NSPAIR(_ZN7ee45651C1Ev),
+ NSPAIR(_ZN7ee45651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee45651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45651[];
+extern void _ZN7ee456513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456513barEv,_ZTv0_n16_N7ee456513barEv)();
+extern void ABISELECT(_ZThn16_N7ee456513barEv,_ZThn12_N7ee456513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45651[0]),
+ (VTBL_ENTRY)&_ZN7ee456513barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456513barEv,_ZTv0_n16_N7ee456513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee45651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee45651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee45651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee45651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee45651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee45651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee45651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee45651[] = {
+ {&(_ZTV7ee45651[4]), 4,16},
+ {&(_tg__ZTV6dd5651__7ee45651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee45651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee45651[3]), 3,4},
+ {&(_ZTV7ee45651[10]), 10,16},
+ {&(_ZTV7ee45651[15]), 15,16},
+ {&(_tg__ZTV5cc651__7ee45651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee45651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee45651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee45651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45651[];
+extern VTBL_ENTRY _ZTV7ee45651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45651[];
+static VTBL_ENTRY alt_thunk_names884[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456513barEv,_ZTv0_n16_N7ee456513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456513barEv,_ZThn12_N7ee456513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45651 = { "ee45651", // class name
+ bases_ee45651, 4,
+ &(vtc_ee45651[0]), // expected_vtbl_contents
+ &(vtt_ee45651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names884,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55651 : virtual dd5651 {
+ int e;
+ virtual void bar(); // _ZN7ee556513barEv
+ ~ee55651(); // tgen
+ ee55651(); // tgen
+};
+//SIG(1 ee55651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55651 ::bar(){vfunc_called(this, "_ZN7ee556513barEv");}
+ee55651 ::~ee55651(){ note_dtor("ee55651", this);} // tgen
+ee55651 ::ee55651(){ note_ctor("ee55651", this);} // tgen
+
+static void Test_ee55651()
+{
+ extern Class_Descriptor cd_ee55651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55651, buf);
+ ee55651 *dp, &lv = *(dp=new (buf) ee55651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee55651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee55651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(32,16), "ee55651");
+ check_base_class_offset(lv, (dd5651*), ABISELECT(16,8), "ee55651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55651.e");
+ test_class_info(&lv, &cd_ee55651);
+ dp->~ee55651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55651(Test_ee55651, "ee55651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55651C1Ev();
+extern void _ZN7ee55651D1Ev();
+Name_Map name_map_ee55651[] = {
+ NSPAIR(_ZN7ee55651C1Ev),
+ NSPAIR(_ZN7ee55651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee55651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55651[];
+extern void _ZN7ee556513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee556513barEv,_ZTv0_n20_N7ee556513barEv)();
+extern void ABISELECT(_ZThn16_N7ee556513barEv,_ZThn8_N7ee556513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee556513barEv,_ZTv0_n16_N7ee556513barEv)();
+extern void ABISELECT(_ZThn32_N7ee556513barEv,_ZThn16_N7ee556513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55651[0]),
+ (VTBL_ENTRY)&_ZN7ee556513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee556513barEv,_ZTv0_n20_N7ee556513barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556513barEv,_ZTv0_n16_N7ee556513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee55651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee55651[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee55651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee55651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee55651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee55651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee55651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee55651[] = {
+ {&(_ZTV7ee55651[5]), 5,23},
+ {&(_ZTV7ee55651[11]), 11,23},
+ {&(_ZTV7ee55651[17]), 17,23},
+ {&(_ZTV7ee55651[22]), 22,23},
+ {&(_tg__ZTV6dd5651__7ee55651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee55651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee55651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee55651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee55651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee55651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee55651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55651[];
+extern VTBL_ENTRY _ZTV7ee55651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55651[];
+static VTBL_ENTRY alt_thunk_names885[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556513barEv,_ZTv0_n16_N7ee556513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556513barEv,_ZThn16_N7ee556513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee556513barEv,_ZTv0_n20_N7ee556513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556513barEv,_ZThn8_N7ee556513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55651 = { "ee55651", // class name
+ bases_ee55651, 4,
+ &(vtc_ee55651[0]), // expected_vtbl_contents
+ &(vtt_ee55651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55651),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names885,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65651 : dd5651 {
+ int e;
+ virtual void foo(); // _ZN7ee656513fooEv
+ virtual void bar(); // _ZN7ee656513barEv
+ ~ee65651(); // tgen
+ ee65651(); // tgen
+};
+//SIG(1 ee65651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65651 ::foo(){vfunc_called(this, "_ZN7ee656513fooEv");}
+void ee65651 ::bar(){vfunc_called(this, "_ZN7ee656513barEv");}
+ee65651 ::~ee65651(){ note_dtor("ee65651", this);} // tgen
+ee65651 ::ee65651(){ note_ctor("ee65651", this);} // tgen
+
+static void Test_ee65651()
+{
+ extern Class_Descriptor cd_ee65651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65651, buf);
+ ee65651 *dp, &lv = *(dp=new (buf) ee65651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee65651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee65651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(16,12), "ee65651");
+ check_base_class_offset(lv, (dd5651*), 0, "ee65651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65651.e");
+ test_class_info(&lv, &cd_ee65651);
+ dp->~ee65651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65651(Test_ee65651, "ee65651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65651C1Ev();
+extern void _ZN7ee65651D1Ev();
+Name_Map name_map_ee65651[] = {
+ NSPAIR(_ZN7ee65651C1Ev),
+ NSPAIR(_ZN7ee65651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee65651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65651[];
+extern void _ZN7ee656513barEv();
+extern void _ZN7ee656513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee656513barEv,_ZTv0_n16_N7ee656513barEv)();
+extern void ABISELECT(_ZThn16_N7ee656513barEv,_ZThn12_N7ee656513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee656513fooEv,_ZTv0_n20_N7ee656513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656513fooEv,_ZThn12_N7ee656513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee656513fooEv,_ZTv0_n12_N7ee656513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee656513fooEv,_ZThn24_N7ee656513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65651[0]),
+ (VTBL_ENTRY)&_ZN7ee656513barEv,
+ (VTBL_ENTRY)&_ZN7ee656513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656513barEv,_ZTv0_n16_N7ee656513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee656513fooEv,_ZTv0_n20_N7ee656513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656513fooEv,_ZTv0_n12_N7ee656513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee65651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee65651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee65651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee65651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee65651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee65651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee65651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee65651[] = {
+ {&(_ZTV7ee65651[4]), 4,17},
+ {&(_tg__ZTV6dd5651__7ee65651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee65651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee65651[3]), 3,4},
+ {&(_ZTV7ee65651[11]), 11,17},
+ {&(_ZTV7ee65651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee65651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee65651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee65651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee65651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65651[];
+extern VTBL_ENTRY _ZTV7ee65651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65651[];
+static VTBL_ENTRY alt_thunk_names886[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn12_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656513fooEv,_ZTv0_n12_N7ee656513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee656513fooEv,_ZThn24_N7ee656513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee656513fooEv,_ZTv0_n20_N7ee656513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656513fooEv,_ZThn12_N7ee656513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656513barEv,_ZTv0_n16_N7ee656513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656513barEv,_ZThn12_N7ee656513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65651 = { "ee65651", // class name
+ bases_ee65651, 4,
+ &(vtc_ee65651[0]), // expected_vtbl_contents
+ &(vtt_ee65651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names886,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75651 : virtual dd5651 {
+ int e;
+ virtual void foo(); // _ZN7ee756513fooEv
+ virtual void bar(); // _ZN7ee756513barEv
+ ~ee75651(); // tgen
+ ee75651(); // tgen
+};
+//SIG(1 ee75651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75651 ::foo(){vfunc_called(this, "_ZN7ee756513fooEv");}
+void ee75651 ::bar(){vfunc_called(this, "_ZN7ee756513barEv");}
+ee75651 ::~ee75651(){ note_dtor("ee75651", this);} // tgen
+ee75651 ::ee75651(){ note_ctor("ee75651", this);} // tgen
+
+static void Test_ee75651()
+{
+ extern Class_Descriptor cd_ee75651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75651, buf);
+ ee75651 *dp, &lv = *(dp=new (buf) ee75651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee75651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee75651");
+ check_base_class_offset(lv, (cc651*)(dd5651*), ABISELECT(32,16), "ee75651");
+ check_base_class_offset(lv, (dd5651*), ABISELECT(16,8), "ee75651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75651.e");
+ test_class_info(&lv, &cd_ee75651);
+ dp->~ee75651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75651(Test_ee75651, "ee75651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75651C1Ev();
+extern void _ZN7ee75651D1Ev();
+Name_Map name_map_ee75651[] = {
+ NSPAIR(_ZN7ee75651C1Ev),
+ NSPAIR(_ZN7ee75651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd5651;
+extern VTBL_ENTRY _ZTI6dd5651[];
+extern VTBL_ENTRY _ZTV6dd5651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5651[];
+static Base_Class bases_ee75651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5651, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75651[];
+extern void _ZN7ee756513fooEv();
+extern void _ZN7ee756513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee756513barEv,_ZTv0_n20_N7ee756513barEv)();
+extern void ABISELECT(_ZThn16_N7ee756513barEv,_ZThn8_N7ee756513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756513barEv,_ZTv0_n16_N7ee756513barEv)();
+extern void ABISELECT(_ZThn32_N7ee756513barEv,_ZThn16_N7ee756513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee756513fooEv,_ZTv0_n20_N7ee756513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756513fooEv,_ZThn16_N7ee756513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756513fooEv,_ZTv0_n12_N7ee756513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee756513fooEv,_ZThn28_N7ee756513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75651[0]),
+ (VTBL_ENTRY)&_ZN7ee756513fooEv,
+ (VTBL_ENTRY)&_ZN7ee756513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756513barEv,_ZTv0_n20_N7ee756513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756513barEv,_ZTv0_n16_N7ee756513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756513fooEv,_ZTv0_n20_N7ee756513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756513fooEv,_ZTv0_n12_N7ee756513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75651[];
+extern void _ZN6dd56513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5651__7ee75651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&_ZN6dd56513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv)();
+extern void ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv)() __attribute__((weak));
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd5651__7ee75651[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv),
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5651__7ee75651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee75651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee75651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee75651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee75651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee75651[] = {
+ {&(_ZTV7ee75651[5]), 5,24},
+ {&(_ZTV7ee75651[12]), 12,24},
+ {&(_ZTV7ee75651[18]), 18,24},
+ {&(_ZTV7ee75651[23]), 23,24},
+ {&(_tg__ZTV6dd5651__7ee75651[4]), 4,5},
+ {&(_tg__ZTV5cc651__6dd5651__7ee75651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd5651__7ee75651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee75651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee75651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee75651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee75651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75651[];
+extern VTBL_ENTRY _ZTV7ee75651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75651[];
+static VTBL_ENTRY alt_thunk_names887[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56513barEv,_ZTv0_n16_N6dd56513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56513barEv,_ZThn8_N6dd56513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756513fooEv,_ZTv0_n12_N7ee756513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee756513fooEv,_ZThn28_N7ee756513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756513fooEv,_ZTv0_n20_N7ee756513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756513fooEv,_ZThn16_N7ee756513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756513barEv,_ZTv0_n16_N7ee756513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756513barEv,_ZThn16_N7ee756513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756513barEv,_ZTv0_n20_N7ee756513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756513barEv,_ZThn8_N7ee756513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75651 = { "ee75651", // class name
+ bases_ee75651, 4,
+ &(vtc_ee75651[0]), // expected_vtbl_contents
+ &(vtt_ee75651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75651),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names887,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6651 : cc651 {
+ int d;
+ virtual void bar(); // _ZN6dd66513barEv
+ virtual void foo(); // _ZN6dd66513fooEv
+ ~dd6651(); // tgen
+ dd6651(); // tgen
+};
+//SIG(-1 dd6651) C1{ BC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6651 ::bar(){vfunc_called(this, "_ZN6dd66513barEv");}
+void dd6651 ::foo(){vfunc_called(this, "_ZN6dd66513fooEv");}
+dd6651 ::~dd6651(){ note_dtor("dd6651", this);} // tgen
+dd6651 ::dd6651(){ note_ctor("dd6651", this);} // tgen
+
+static void Test_dd6651()
+{
+ extern Class_Descriptor cd_dd6651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6651, buf);
+ dd6651 *dp, &lv = *(dp=new (buf) dd6651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(24,16), "dd6651");
+ check_base_class_offset(lv, (bb51*)(cc651*), 0, "dd6651");
+ check_base_class_offset(lv, (cc651*), 0, "dd6651");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6651.d");
+ test_class_info(&lv, &cd_dd6651);
+ dp->~dd6651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6651(Test_dd6651, "dd6651", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6651C1Ev();
+extern void _ZN6dd6651D1Ev();
+Name_Map name_map_dd6651[] = {
+ NSPAIR(_ZN6dd6651C1Ev),
+ NSPAIR(_ZN6dd6651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd6651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,16), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd6651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd6651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd6651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd6651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd6651[] = {
+ {&(_ZTV6dd6651[3]), 3,9},
+ {&(_tg__ZTV5cc651__6dd6651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd6651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd6651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd6651[3]), 3,4},
+ {&(_ZTV6dd6651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static VTBL_ENTRY alt_thunk_names888[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6651 = { "dd6651", // class name
+ bases_dd6651, 3,
+ &(vtc_dd6651[0]), // expected_vtbl_contents
+ &(vtt_dd6651[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6651),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names888,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06651 : dd6651 {
+ int e;
+ ~ee06651(); // tgen
+ ee06651(); // tgen
+};
+//SIG(1 ee06651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06651 ::~ee06651(){ note_dtor("ee06651", this);} // tgen
+ee06651 ::ee06651(){ note_ctor("ee06651", this);} // tgen
+
+static void Test_ee06651()
+{
+ extern Class_Descriptor cd_ee06651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06651, buf);
+ ee06651 *dp, &lv = *(dp=new (buf) ee06651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(24,20), "ee06651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), 0, "ee06651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), 0, "ee06651");
+ check_base_class_offset(lv, (dd6651*), 0, "ee06651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06651.e");
+ test_class_info(&lv, &cd_ee06651);
+ dp->~ee06651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06651(Test_ee06651, "ee06651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06651C1Ev();
+extern void _ZN7ee06651D1Ev();
+Name_Map name_map_ee06651[] = {
+ NSPAIR(_ZN7ee06651C1Ev),
+ NSPAIR(_ZN7ee06651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee06651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee06651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee06651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee06651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee06651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee06651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee06651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee06651[] = {
+ {&(_ZTV7ee06651[3]), 3,9},
+ {&(_tg__ZTV6dd6651__7ee06651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee06651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee06651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee06651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee06651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee06651[3]), 3,4},
+ {&(_ZTV7ee06651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee06651[];
+extern VTBL_ENTRY _ZTV7ee06651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06651[];
+static VTBL_ENTRY alt_thunk_names889[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06651 = { "ee06651", // class name
+ bases_ee06651, 4,
+ &(vtc_ee06651[0]), // expected_vtbl_contents
+ &(vtt_ee06651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names889,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16651 : virtual dd6651 {
+ int e;
+ ~ee16651(); // tgen
+ ee16651(); // tgen
+};
+//SIG(1 ee16651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16651 ::~ee16651(){ note_dtor("ee16651", this);} // tgen
+ee16651 ::ee16651(){ note_ctor("ee16651", this);} // tgen
+
+static void Test_ee16651()
+{
+ extern Class_Descriptor cd_ee16651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16651, buf);
+ ee16651 *dp, &lv = *(dp=new (buf) ee16651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(40,24), "ee16651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), ABISELECT(16,8), "ee16651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), ABISELECT(16,8), "ee16651");
+ check_base_class_offset(lv, (dd6651*), ABISELECT(16,8), "ee16651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16651.e");
+ test_class_info(&lv, &cd_ee16651);
+ dp->~ee16651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16651(Test_ee16651, "ee16651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16651C1Ev();
+extern void _ZN7ee16651D1Ev();
+Name_Map name_map_ee16651[] = {
+ NSPAIR(_ZN7ee16651C1Ev),
+ NSPAIR(_ZN7ee16651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee16651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16651[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee16651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee16651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee16651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee16651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee16651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee16651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee16651[] = {
+ {&(_ZTV7ee16651[4]), 4,15},
+ {&(_ZTV7ee16651[9]), 9,15},
+ {&(_ZTV7ee16651[14]), 14,15},
+ {&(_tg__ZTV6dd6651__7ee16651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee16651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee16651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee16651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee16651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee16651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16651[];
+extern VTBL_ENTRY _ZTV7ee16651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16651[];
+static VTBL_ENTRY alt_thunk_names890[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16651 = { "ee16651", // class name
+ bases_ee16651, 4,
+ &(vtc_ee16651[0]), // expected_vtbl_contents
+ &(vtt_ee16651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16651),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names890,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26651 : dd6651 {
+ int e;
+ virtual void foo(); // _ZN7ee266513fooEv
+ ~ee26651(); // tgen
+ ee26651(); // tgen
+};
+//SIG(1 ee26651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26651 ::foo(){vfunc_called(this, "_ZN7ee266513fooEv");}
+ee26651 ::~ee26651(){ note_dtor("ee26651", this);} // tgen
+ee26651 ::ee26651(){ note_ctor("ee26651", this);} // tgen
+
+static void Test_ee26651()
+{
+ extern Class_Descriptor cd_ee26651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26651, buf);
+ ee26651 *dp, &lv = *(dp=new (buf) ee26651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(24,20), "ee26651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), 0, "ee26651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), 0, "ee26651");
+ check_base_class_offset(lv, (dd6651*), 0, "ee26651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26651.e");
+ test_class_info(&lv, &cd_ee26651);
+ dp->~ee26651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26651(Test_ee26651, "ee26651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26651C1Ev();
+extern void _ZN7ee26651D1Ev();
+Name_Map name_map_ee26651[] = {
+ NSPAIR(_ZN7ee26651C1Ev),
+ NSPAIR(_ZN7ee26651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee26651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN7ee266513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee266513fooEv,_ZTv0_n12_N7ee266513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee266513fooEv,_ZThn20_N7ee266513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN7ee266513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee266513fooEv,_ZTv0_n12_N7ee266513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee26651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee26651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee26651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee26651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee26651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee26651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee26651[] = {
+ {&(_ZTV7ee26651[3]), 3,9},
+ {&(_tg__ZTV6dd6651__7ee26651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee26651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee26651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee26651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee26651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee26651[3]), 3,4},
+ {&(_ZTV7ee26651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee26651[];
+extern VTBL_ENTRY _ZTV7ee26651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26651[];
+static VTBL_ENTRY alt_thunk_names891[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee266513fooEv,_ZTv0_n12_N7ee266513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee266513fooEv,_ZThn20_N7ee266513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26651 = { "ee26651", // class name
+ bases_ee26651, 4,
+ &(vtc_ee26651[0]), // expected_vtbl_contents
+ &(vtt_ee26651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names891,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36651 : virtual dd6651 {
+ int e;
+ virtual void foo(); // _ZN7ee366513fooEv
+ ~ee36651(); // tgen
+ ee36651(); // tgen
+};
+//SIG(1 ee36651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36651 ::foo(){vfunc_called(this, "_ZN7ee366513fooEv");}
+ee36651 ::~ee36651(){ note_dtor("ee36651", this);} // tgen
+ee36651 ::ee36651(){ note_ctor("ee36651", this);} // tgen
+
+static void Test_ee36651()
+{
+ extern Class_Descriptor cd_ee36651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36651, buf);
+ ee36651 *dp, &lv = *(dp=new (buf) ee36651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(40,24), "ee36651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), ABISELECT(16,8), "ee36651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), ABISELECT(16,8), "ee36651");
+ check_base_class_offset(lv, (dd6651*), ABISELECT(16,8), "ee36651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36651.e");
+ test_class_info(&lv, &cd_ee36651);
+ dp->~ee36651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36651(Test_ee36651, "ee36651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36651C1Ev();
+extern void _ZN7ee36651D1Ev();
+Name_Map name_map_ee36651[] = {
+ NSPAIR(_ZN7ee36651C1Ev),
+ NSPAIR(_ZN7ee36651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee36651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36651[];
+extern void _ZN7ee366513fooEv();
+extern void _ZN6dd66513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee366513fooEv,_ZTv0_n20_N7ee366513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366513fooEv,_ZThn8_N7ee366513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee366513fooEv,_ZTv0_n12_N7ee366513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee366513fooEv,_ZThn24_N7ee366513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36651[0]),
+ (VTBL_ENTRY)&_ZN7ee366513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee366513fooEv,_ZTv0_n20_N7ee366513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366513fooEv,_ZTv0_n12_N7ee366513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee36651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee36651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee36651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee36651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee36651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee36651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee36651[] = {
+ {&(_ZTV7ee36651[4]), 4,16},
+ {&(_ZTV7ee36651[10]), 10,16},
+ {&(_ZTV7ee36651[15]), 15,16},
+ {&(_tg__ZTV6dd6651__7ee36651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee36651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee36651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee36651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee36651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee36651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36651[];
+extern VTBL_ENTRY _ZTV7ee36651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36651[];
+static VTBL_ENTRY alt_thunk_names892[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366513fooEv,_ZTv0_n12_N7ee366513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee366513fooEv,_ZThn24_N7ee366513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee366513fooEv,_ZTv0_n20_N7ee366513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366513fooEv,_ZThn8_N7ee366513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36651 = { "ee36651", // class name
+ bases_ee36651, 4,
+ &(vtc_ee36651[0]), // expected_vtbl_contents
+ &(vtt_ee36651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names892,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46651 : dd6651 {
+ int e;
+ virtual void bar(); // _ZN7ee466513barEv
+ ~ee46651(); // tgen
+ ee46651(); // tgen
+};
+//SIG(1 ee46651) C1{ BC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46651 ::bar(){vfunc_called(this, "_ZN7ee466513barEv");}
+ee46651 ::~ee46651(){ note_dtor("ee46651", this);} // tgen
+ee46651 ::ee46651(){ note_ctor("ee46651", this);} // tgen
+
+static void Test_ee46651()
+{
+ extern Class_Descriptor cd_ee46651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46651, buf);
+ ee46651 *dp, &lv = *(dp=new (buf) ee46651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(24,20), "ee46651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), 0, "ee46651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), 0, "ee46651");
+ check_base_class_offset(lv, (dd6651*), 0, "ee46651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46651.e");
+ test_class_info(&lv, &cd_ee46651);
+ dp->~ee46651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46651(Test_ee46651, "ee46651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46651C1Ev();
+extern void _ZN7ee46651D1Ev();
+Name_Map name_map_ee46651[] = {
+ NSPAIR(_ZN7ee46651C1Ev),
+ NSPAIR(_ZN7ee46651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee46651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46651[];
+extern void _ZN7ee466513barEv();
+extern void _ZN6dd66513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46651[0]),
+ (VTBL_ENTRY)&_ZN7ee466513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee46651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee46651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee46651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee46651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee46651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee46651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee46651[] = {
+ {&(_ZTV7ee46651[3]), 3,9},
+ {&(_tg__ZTV6dd6651__7ee46651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee46651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee46651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee46651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee46651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee46651[3]), 3,4},
+ {&(_ZTV7ee46651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee46651[];
+extern VTBL_ENTRY _ZTV7ee46651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46651[];
+static VTBL_ENTRY alt_thunk_names893[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46651 = { "ee46651", // class name
+ bases_ee46651, 4,
+ &(vtc_ee46651[0]), // expected_vtbl_contents
+ &(vtt_ee46651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names893,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56651 : virtual dd6651 {
+ int e;
+ virtual void bar(); // _ZN7ee566513barEv
+ ~ee56651(); // tgen
+ ee56651(); // tgen
+};
+//SIG(1 ee56651) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56651 ::bar(){vfunc_called(this, "_ZN7ee566513barEv");}
+ee56651 ::~ee56651(){ note_dtor("ee56651", this);} // tgen
+ee56651 ::ee56651(){ note_ctor("ee56651", this);} // tgen
+
+static void Test_ee56651()
+{
+ extern Class_Descriptor cd_ee56651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56651, buf);
+ ee56651 *dp, &lv = *(dp=new (buf) ee56651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(40,24), "ee56651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), ABISELECT(16,8), "ee56651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), ABISELECT(16,8), "ee56651");
+ check_base_class_offset(lv, (dd6651*), ABISELECT(16,8), "ee56651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56651.e");
+ test_class_info(&lv, &cd_ee56651);
+ dp->~ee56651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56651(Test_ee56651, "ee56651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56651C1Ev();
+extern void _ZN7ee56651D1Ev();
+Name_Map name_map_ee56651[] = {
+ NSPAIR(_ZN7ee56651C1Ev),
+ NSPAIR(_ZN7ee56651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee56651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56651[];
+extern void _ZN7ee566513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566513barEv,_ZTv0_n16_N7ee566513barEv)();
+extern void ABISELECT(_ZThn16_N7ee566513barEv,_ZThn8_N7ee566513barEv)() __attribute__((weak));
+extern void _ZN6dd66513fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56651[0]),
+ (VTBL_ENTRY)&_ZN7ee566513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566513barEv,_ZTv0_n16_N7ee566513barEv),
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee56651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee56651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee56651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee56651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee56651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee56651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee56651[] = {
+ {&(_ZTV7ee56651[4]), 4,16},
+ {&(_ZTV7ee56651[10]), 10,16},
+ {&(_ZTV7ee56651[15]), 15,16},
+ {&(_tg__ZTV6dd6651__7ee56651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee56651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee56651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee56651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee56651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee56651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56651[];
+extern VTBL_ENTRY _ZTV7ee56651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56651[];
+static VTBL_ENTRY alt_thunk_names894[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566513barEv,_ZTv0_n16_N7ee566513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566513barEv,_ZThn8_N7ee566513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56651 = { "ee56651", // class name
+ bases_ee56651, 4,
+ &(vtc_ee56651[0]), // expected_vtbl_contents
+ &(vtt_ee56651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56651),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names894,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66651 : dd6651 {
+ int e;
+ virtual void foo(); // _ZN7ee666513fooEv
+ virtual void bar(); // _ZN7ee666513barEv
+ ~ee66651(); // tgen
+ ee66651(); // tgen
+};
+//SIG(1 ee66651) C1{ BC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66651 ::foo(){vfunc_called(this, "_ZN7ee666513fooEv");}
+void ee66651 ::bar(){vfunc_called(this, "_ZN7ee666513barEv");}
+ee66651 ::~ee66651(){ note_dtor("ee66651", this);} // tgen
+ee66651 ::ee66651(){ note_ctor("ee66651", this);} // tgen
+
+static void Test_ee66651()
+{
+ extern Class_Descriptor cd_ee66651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66651, buf);
+ ee66651 *dp, &lv = *(dp=new (buf) ee66651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(24,20), "ee66651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), 0, "ee66651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), 0, "ee66651");
+ check_base_class_offset(lv, (dd6651*), 0, "ee66651");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66651.e");
+ test_class_info(&lv, &cd_ee66651);
+ dp->~ee66651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66651(Test_ee66651, "ee66651", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66651C1Ev();
+extern void _ZN7ee66651D1Ev();
+Name_Map name_map_ee66651[] = {
+ NSPAIR(_ZN7ee66651C1Ev),
+ NSPAIR(_ZN7ee66651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee66651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(24,20), //bcp->offset
+ 5, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66651[];
+extern void _ZN7ee666513barEv();
+extern void _ZN7ee666513fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee666513fooEv,_ZTv0_n12_N7ee666513fooEv)();
+extern void ABISELECT(_ZThn24_N7ee666513fooEv,_ZThn20_N7ee666513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66651[0]),
+ (VTBL_ENTRY)&_ZN7ee666513barEv,
+ (VTBL_ENTRY)&_ZN7ee666513fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee666513fooEv,_ZTv0_n12_N7ee666513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee66651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee66651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee66651[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee66651[] = {
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee66651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee66651[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee66651[] = {
+ {&(_ZTV7ee66651[3]), 3,9},
+ {&(_tg__ZTV6dd6651__7ee66651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee66651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee66651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee66651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee66651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee66651[3]), 3,4},
+ {&(_ZTV7ee66651[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI7ee66651[];
+extern VTBL_ENTRY _ZTV7ee66651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66651[];
+static VTBL_ENTRY alt_thunk_names895[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn20_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn20_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee666513fooEv,_ZTv0_n12_N7ee666513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee666513fooEv,_ZThn20_N7ee666513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66651 = { "ee66651", // class name
+ bases_ee66651, 4,
+ &(vtc_ee66651[0]), // expected_vtbl_contents
+ &(vtt_ee66651[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66651),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66651),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names895,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76651 : virtual dd6651 {
+ int e;
+ virtual void foo(); // _ZN7ee766513fooEv
+ virtual void bar(); // _ZN7ee766513barEv
+ ~ee76651(); // tgen
+ ee76651(); // tgen
+};
+//SIG(1 ee76651) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76651 ::foo(){vfunc_called(this, "_ZN7ee766513fooEv");}
+void ee76651 ::bar(){vfunc_called(this, "_ZN7ee766513barEv");}
+ee76651 ::~ee76651(){ note_dtor("ee76651", this);} // tgen
+ee76651 ::ee76651(){ note_ctor("ee76651", this);} // tgen
+
+static void Test_ee76651()
+{
+ extern Class_Descriptor cd_ee76651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76651, buf);
+ ee76651 *dp, &lv = *(dp=new (buf) ee76651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*)(dd6651*), ABISELECT(40,24), "ee76651");
+ check_base_class_offset(lv, (bb51*)(cc651*)(dd6651*), ABISELECT(16,8), "ee76651");
+ check_base_class_offset(lv, (cc651*)(dd6651*), ABISELECT(16,8), "ee76651");
+ check_base_class_offset(lv, (dd6651*), ABISELECT(16,8), "ee76651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76651.e");
+ test_class_info(&lv, &cd_ee76651);
+ dp->~ee76651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76651(Test_ee76651, "ee76651", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76651C1Ev();
+extern void _ZN7ee76651D1Ev();
+Name_Map name_map_ee76651[] = {
+ NSPAIR(_ZN7ee76651C1Ev),
+ NSPAIR(_ZN7ee76651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd6651;
+extern VTBL_ENTRY _ZTI6dd6651[];
+extern VTBL_ENTRY _ZTV6dd6651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6651[];
+static Base_Class bases_ee76651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76651[];
+extern void _ZN7ee766513fooEv();
+extern void _ZN7ee766513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee766513barEv,_ZTv0_n16_N7ee766513barEv)();
+extern void ABISELECT(_ZThn16_N7ee766513barEv,_ZThn8_N7ee766513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee766513fooEv,_ZTv0_n20_N7ee766513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766513fooEv,_ZThn8_N7ee766513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee766513fooEv,_ZTv0_n12_N7ee766513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee766513fooEv,_ZThn24_N7ee766513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76651[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76651[0]),
+ (VTBL_ENTRY)&_ZN7ee766513fooEv,
+ (VTBL_ENTRY)&_ZN7ee766513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766513barEv,_ZTv0_n16_N7ee766513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee766513fooEv,_ZTv0_n20_N7ee766513fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766513fooEv,_ZTv0_n12_N7ee766513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76651[];
+extern void _ZN6dd66513barEv();
+extern void _ZN6dd66513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6651__7ee76651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&_ZN6dd66513barEv,
+ (VTBL_ENTRY)&_ZN6dd66513fooEv,
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6516dd6651__7ee76651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc6516dd6651__7ee76651[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc6516dd6651__7ee76651[] = {
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc6516dd6651__7ee76651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6651__7ee76651[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv),
+};
+static VTT_ENTRY vtt_ee76651[] = {
+ {&(_ZTV7ee76651[4]), 4,17},
+ {&(_ZTV7ee76651[11]), 11,17},
+ {&(_ZTV7ee76651[16]), 16,17},
+ {&(_tg__ZTV6dd6651__7ee76651[3]), 3,5},
+ {&(_tg__ZTV5cc6516dd6651__7ee76651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc6516dd6651__7ee76651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc6516dd6651__7ee76651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc6516dd6651__7ee76651[3]), 3,4},
+ {&(_tg__ZTV3aa1__6dd6651__7ee76651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76651[];
+extern VTBL_ENTRY _ZTV7ee76651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76651[];
+static VTBL_ENTRY alt_thunk_names896[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66513fooEv,_ZTv0_n12_N6dd66513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66513fooEv,_ZThn16_N6dd66513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6513fooEv,_ZThn16_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766513fooEv,_ZTv0_n12_N7ee766513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee766513fooEv,_ZThn24_N7ee766513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee766513fooEv,_ZTv0_n20_N7ee766513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766513fooEv,_ZThn8_N7ee766513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766513barEv,_ZTv0_n16_N7ee766513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766513barEv,_ZThn8_N7ee766513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76651 = { "ee76651", // class name
+ bases_ee76651, 4,
+ &(vtc_ee76651[0]), // expected_vtbl_contents
+ &(vtt_ee76651[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76651),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names896,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7651 : virtual cc651 {
+ int d;
+ virtual void bar(); // _ZN6dd76513barEv
+ virtual void foo(); // _ZN6dd76513fooEv
+ ~dd7651(); // tgen
+ dd7651(); // tgen
+};
+//SIG(-1 dd7651) C1{ VBC2{ BC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7651 ::bar(){vfunc_called(this, "_ZN6dd76513barEv");}
+void dd7651 ::foo(){vfunc_called(this, "_ZN6dd76513fooEv");}
+dd7651 ::~dd7651(){ note_dtor("dd7651", this);} // tgen
+dd7651 ::dd7651(){ note_ctor("dd7651", this);} // tgen
+
+static void Test_dd7651()
+{
+ extern Class_Descriptor cd_dd7651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7651, buf);
+ dd7651 *dp, &lv = *(dp=new (buf) dd7651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,20), "dd7651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,8), "dd7651");
+ check_base_class_offset(lv, (cc651*), ABISELECT(16,8), "dd7651");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7651.d");
+ test_class_info(&lv, &cd_dd7651);
+ dp->~dd7651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7651(Test_dd7651, "dd7651", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7651C1Ev();
+extern void _ZN6dd7651D1Ev();
+Name_Map name_map_dd7651[] = {
+ NSPAIR(_ZN6dd7651C1Ev),
+ NSPAIR(_ZN6dd7651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+static Base_Class bases_dd7651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd7651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__6dd7651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__6dd7651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__6dd7651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_dd7651[] = {
+ {&(_ZTV6dd7651[4]), 4,17},
+ {&(_ZTV6dd7651[11]), 11,17},
+ {&(_ZTV6dd7651[16]), 16,17},
+ {&(_tg__ZTV5cc651__6dd7651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__6dd7651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__6dd7651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__6dd7651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static VTBL_ENTRY alt_thunk_names897[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7651 = { "dd7651", // class name
+ bases_dd7651, 3,
+ &(vtc_dd7651[0]), // expected_vtbl_contents
+ &(vtt_dd7651[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7651),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names897,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07651 : dd7651 {
+ int e;
+ ~ee07651(); // tgen
+ ee07651(); // tgen
+};
+//SIG(1 ee07651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07651 ::~ee07651(){ note_dtor("ee07651", this);} // tgen
+ee07651 ::ee07651(){ note_ctor("ee07651", this);} // tgen
+
+static void Test_ee07651()
+{
+ extern Class_Descriptor cd_ee07651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07651, buf);
+ ee07651 *dp, &lv = *(dp=new (buf) ee07651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee07651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee07651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(16,12), "ee07651");
+ check_base_class_offset(lv, (dd7651*), 0, "ee07651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07651.e");
+ test_class_info(&lv, &cd_ee07651);
+ dp->~ee07651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07651(Test_ee07651, "ee07651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07651C1Ev();
+extern void _ZN7ee07651D1Ev();
+Name_Map name_map_ee07651[] = {
+ NSPAIR(_ZN7ee07651C1Ev),
+ NSPAIR(_ZN7ee07651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee07651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee07651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee07651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee07651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee07651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee07651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee07651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee07651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee07651[] = {
+ {&(_ZTV7ee07651[4]), 4,17},
+ {&(_tg__ZTV6dd7651__7ee07651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee07651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee07651[3]), 3,4},
+ {&(_ZTV7ee07651[11]), 11,17},
+ {&(_ZTV7ee07651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee07651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee07651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee07651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee07651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07651[];
+extern VTBL_ENTRY _ZTV7ee07651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07651[];
+static VTBL_ENTRY alt_thunk_names898[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07651 = { "ee07651", // class name
+ bases_ee07651, 4,
+ &(vtc_ee07651[0]), // expected_vtbl_contents
+ &(vtt_ee07651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names898,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17651 : virtual dd7651 {
+ int e;
+ ~ee17651(); // tgen
+ ee17651(); // tgen
+};
+//SIG(1 ee17651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17651 ::~ee17651(){ note_dtor("ee17651", this);} // tgen
+ee17651 ::ee17651(){ note_ctor("ee17651", this);} // tgen
+
+static void Test_ee17651()
+{
+ extern Class_Descriptor cd_ee17651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17651, buf);
+ ee17651 *dp, &lv = *(dp=new (buf) ee17651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee17651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee17651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(32,16), "ee17651");
+ check_base_class_offset(lv, (dd7651*), ABISELECT(16,8), "ee17651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17651.e");
+ test_class_info(&lv, &cd_ee17651);
+ dp->~ee17651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17651(Test_ee17651, "ee17651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17651C1Ev();
+extern void _ZN7ee17651D1Ev();
+Name_Map name_map_ee17651[] = {
+ NSPAIR(_ZN7ee17651C1Ev),
+ NSPAIR(_ZN7ee17651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee17651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17651[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee17651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee17651[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee17651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee17651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee17651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee17651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee17651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee17651[] = {
+ {&(_ZTV7ee17651[5]), 5,24},
+ {&(_ZTV7ee17651[11]), 11,24},
+ {&(_ZTV7ee17651[18]), 18,24},
+ {&(_ZTV7ee17651[23]), 23,24},
+ {&(_tg__ZTV6dd7651__7ee17651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee17651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee17651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee17651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee17651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee17651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee17651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17651[];
+extern VTBL_ENTRY _ZTV7ee17651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17651[];
+static VTBL_ENTRY alt_thunk_names899[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17651 = { "ee17651", // class name
+ bases_ee17651, 4,
+ &(vtc_ee17651[0]), // expected_vtbl_contents
+ &(vtt_ee17651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17651),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names899,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27651 : dd7651 {
+ int e;
+ virtual void foo(); // _ZN7ee276513fooEv
+ ~ee27651(); // tgen
+ ee27651(); // tgen
+};
+//SIG(1 ee27651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27651 ::foo(){vfunc_called(this, "_ZN7ee276513fooEv");}
+ee27651 ::~ee27651(){ note_dtor("ee27651", this);} // tgen
+ee27651 ::ee27651(){ note_ctor("ee27651", this);} // tgen
+
+static void Test_ee27651()
+{
+ extern Class_Descriptor cd_ee27651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27651, buf);
+ ee27651 *dp, &lv = *(dp=new (buf) ee27651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee27651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee27651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(16,12), "ee27651");
+ check_base_class_offset(lv, (dd7651*), 0, "ee27651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27651.e");
+ test_class_info(&lv, &cd_ee27651);
+ dp->~ee27651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27651(Test_ee27651, "ee27651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27651C1Ev();
+extern void _ZN7ee27651D1Ev();
+Name_Map name_map_ee27651[] = {
+ NSPAIR(_ZN7ee27651C1Ev),
+ NSPAIR(_ZN7ee27651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee27651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN7ee276513fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee276513fooEv,_ZTv0_n20_N7ee276513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276513fooEv,_ZThn12_N7ee276513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee276513fooEv,_ZTv0_n12_N7ee276513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee276513fooEv,_ZThn24_N7ee276513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN7ee276513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee276513fooEv,_ZTv0_n20_N7ee276513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276513fooEv,_ZTv0_n12_N7ee276513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee27651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee27651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee27651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee27651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee27651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee27651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee27651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee27651[] = {
+ {&(_ZTV7ee27651[4]), 4,17},
+ {&(_tg__ZTV6dd7651__7ee27651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee27651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee27651[3]), 3,4},
+ {&(_ZTV7ee27651[11]), 11,17},
+ {&(_ZTV7ee27651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee27651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee27651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee27651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee27651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27651[];
+extern VTBL_ENTRY _ZTV7ee27651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27651[];
+static VTBL_ENTRY alt_thunk_names900[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276513fooEv,_ZTv0_n12_N7ee276513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee276513fooEv,_ZThn24_N7ee276513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee276513fooEv,_ZTv0_n20_N7ee276513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276513fooEv,_ZThn12_N7ee276513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27651 = { "ee27651", // class name
+ bases_ee27651, 4,
+ &(vtc_ee27651[0]), // expected_vtbl_contents
+ &(vtt_ee27651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names900,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37651 : virtual dd7651 {
+ int e;
+ virtual void foo(); // _ZN7ee376513fooEv
+ ~ee37651(); // tgen
+ ee37651(); // tgen
+};
+//SIG(1 ee37651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37651 ::foo(){vfunc_called(this, "_ZN7ee376513fooEv");}
+ee37651 ::~ee37651(){ note_dtor("ee37651", this);} // tgen
+ee37651 ::ee37651(){ note_ctor("ee37651", this);} // tgen
+
+static void Test_ee37651()
+{
+ extern Class_Descriptor cd_ee37651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37651, buf);
+ ee37651 *dp, &lv = *(dp=new (buf) ee37651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee37651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee37651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(32,16), "ee37651");
+ check_base_class_offset(lv, (dd7651*), ABISELECT(16,8), "ee37651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37651.e");
+ test_class_info(&lv, &cd_ee37651);
+ dp->~ee37651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37651(Test_ee37651, "ee37651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37651C1Ev();
+extern void _ZN7ee37651D1Ev();
+Name_Map name_map_ee37651[] = {
+ NSPAIR(_ZN7ee37651C1Ev),
+ NSPAIR(_ZN7ee37651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee37651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 21, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37651[];
+extern void _ZN7ee376513fooEv();
+extern void _ZN6dd76513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee376513fooEv,_ZTv0_n24_N7ee376513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376513fooEv,_ZThn8_N7ee376513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee376513fooEv,_ZTv0_n20_N7ee376513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376513fooEv,_ZThn16_N7ee376513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376513fooEv,_ZTv0_n12_N7ee376513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee376513fooEv,_ZThn28_N7ee376513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37651[0]),
+ (VTBL_ENTRY)&_ZN7ee376513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee376513fooEv,_ZTv0_n24_N7ee376513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376513fooEv,_ZTv0_n20_N7ee376513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376513fooEv,_ZTv0_n12_N7ee376513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee37651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee37651[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee37651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee37651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee37651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee37651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee37651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee37651[] = {
+ {&(_ZTV7ee37651[5]), 5,25},
+ {&(_ZTV7ee37651[12]), 12,25},
+ {&(_ZTV7ee37651[19]), 19,25},
+ {&(_ZTV7ee37651[24]), 24,25},
+ {&(_tg__ZTV6dd7651__7ee37651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee37651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee37651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee37651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee37651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee37651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee37651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37651[];
+extern VTBL_ENTRY _ZTV7ee37651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37651[];
+static VTBL_ENTRY alt_thunk_names901[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376513fooEv,_ZTv0_n12_N7ee376513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee376513fooEv,_ZThn28_N7ee376513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376513fooEv,_ZTv0_n20_N7ee376513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376513fooEv,_ZThn16_N7ee376513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee376513fooEv,_ZTv0_n24_N7ee376513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376513fooEv,_ZThn8_N7ee376513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37651 = { "ee37651", // class name
+ bases_ee37651, 4,
+ &(vtc_ee37651[0]), // expected_vtbl_contents
+ &(vtt_ee37651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37651),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names901,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47651 : dd7651 {
+ int e;
+ virtual void bar(); // _ZN7ee476513barEv
+ ~ee47651(); // tgen
+ ee47651(); // tgen
+};
+//SIG(1 ee47651) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47651 ::bar(){vfunc_called(this, "_ZN7ee476513barEv");}
+ee47651 ::~ee47651(){ note_dtor("ee47651", this);} // tgen
+ee47651 ::ee47651(){ note_ctor("ee47651", this);} // tgen
+
+static void Test_ee47651()
+{
+ extern Class_Descriptor cd_ee47651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47651, buf);
+ ee47651 *dp, &lv = *(dp=new (buf) ee47651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee47651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee47651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(16,12), "ee47651");
+ check_base_class_offset(lv, (dd7651*), 0, "ee47651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47651.e");
+ test_class_info(&lv, &cd_ee47651);
+ dp->~ee47651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47651(Test_ee47651, "ee47651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47651C1Ev();
+extern void _ZN7ee47651D1Ev();
+Name_Map name_map_ee47651[] = {
+ NSPAIR(_ZN7ee47651C1Ev),
+ NSPAIR(_ZN7ee47651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee47651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47651[];
+extern void _ZN7ee476513barEv();
+extern void _ZN6dd76513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee476513barEv,_ZTv0_n16_N7ee476513barEv)();
+extern void ABISELECT(_ZThn16_N7ee476513barEv,_ZThn12_N7ee476513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47651[0]),
+ (VTBL_ENTRY)&_ZN7ee476513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476513barEv,_ZTv0_n16_N7ee476513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee47651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee47651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee47651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee47651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee47651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee47651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee47651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee47651[] = {
+ {&(_ZTV7ee47651[4]), 4,17},
+ {&(_tg__ZTV6dd7651__7ee47651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee47651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee47651[3]), 3,4},
+ {&(_ZTV7ee47651[11]), 11,17},
+ {&(_ZTV7ee47651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee47651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee47651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee47651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee47651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47651[];
+extern VTBL_ENTRY _ZTV7ee47651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47651[];
+static VTBL_ENTRY alt_thunk_names902[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476513barEv,_ZTv0_n16_N7ee476513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476513barEv,_ZThn12_N7ee476513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47651 = { "ee47651", // class name
+ bases_ee47651, 4,
+ &(vtc_ee47651[0]), // expected_vtbl_contents
+ &(vtt_ee47651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names902,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57651 : virtual dd7651 {
+ int e;
+ virtual void bar(); // _ZN7ee576513barEv
+ ~ee57651(); // tgen
+ ee57651(); // tgen
+};
+//SIG(1 ee57651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57651 ::bar(){vfunc_called(this, "_ZN7ee576513barEv");}
+ee57651 ::~ee57651(){ note_dtor("ee57651", this);} // tgen
+ee57651 ::ee57651(){ note_ctor("ee57651", this);} // tgen
+
+static void Test_ee57651()
+{
+ extern Class_Descriptor cd_ee57651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57651, buf);
+ ee57651 *dp, &lv = *(dp=new (buf) ee57651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee57651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee57651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(32,16), "ee57651");
+ check_base_class_offset(lv, (dd7651*), ABISELECT(16,8), "ee57651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57651.e");
+ test_class_info(&lv, &cd_ee57651);
+ dp->~ee57651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57651(Test_ee57651, "ee57651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57651C1Ev();
+extern void _ZN7ee57651D1Ev();
+Name_Map name_map_ee57651[] = {
+ NSPAIR(_ZN7ee57651C1Ev),
+ NSPAIR(_ZN7ee57651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee57651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 21, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57651[];
+extern void _ZN7ee576513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee576513barEv,_ZTv0_n20_N7ee576513barEv)();
+extern void ABISELECT(_ZThn16_N7ee576513barEv,_ZThn8_N7ee576513barEv)() __attribute__((weak));
+extern void _ZN6dd76513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576513barEv,_ZTv0_n16_N7ee576513barEv)();
+extern void ABISELECT(_ZThn32_N7ee576513barEv,_ZThn16_N7ee576513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57651[0]),
+ (VTBL_ENTRY)&_ZN7ee576513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee576513barEv,_ZTv0_n20_N7ee576513barEv),
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576513barEv,_ZTv0_n16_N7ee576513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee57651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee57651[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee57651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee57651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee57651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee57651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee57651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee57651[] = {
+ {&(_ZTV7ee57651[5]), 5,25},
+ {&(_ZTV7ee57651[12]), 12,25},
+ {&(_ZTV7ee57651[19]), 19,25},
+ {&(_ZTV7ee57651[24]), 24,25},
+ {&(_tg__ZTV6dd7651__7ee57651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee57651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee57651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee57651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee57651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee57651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee57651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57651[];
+extern VTBL_ENTRY _ZTV7ee57651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57651[];
+static VTBL_ENTRY alt_thunk_names903[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576513barEv,_ZTv0_n16_N7ee576513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576513barEv,_ZThn16_N7ee576513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee576513barEv,_ZTv0_n20_N7ee576513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576513barEv,_ZThn8_N7ee576513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57651 = { "ee57651", // class name
+ bases_ee57651, 4,
+ &(vtc_ee57651[0]), // expected_vtbl_contents
+ &(vtt_ee57651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57651),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names903,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67651 : dd7651 {
+ int e;
+ virtual void foo(); // _ZN7ee676513fooEv
+ virtual void bar(); // _ZN7ee676513barEv
+ ~ee67651(); // tgen
+ ee67651(); // tgen
+};
+//SIG(1 ee67651) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67651 ::foo(){vfunc_called(this, "_ZN7ee676513fooEv");}
+void ee67651 ::bar(){vfunc_called(this, "_ZN7ee676513barEv");}
+ee67651 ::~ee67651(){ note_dtor("ee67651", this);} // tgen
+ee67651 ::ee67651(){ note_ctor("ee67651", this);} // tgen
+
+static void Test_ee67651()
+{
+ extern Class_Descriptor cd_ee67651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67651, buf);
+ ee67651 *dp, &lv = *(dp=new (buf) ee67651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(32,24), "ee67651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(16,12), "ee67651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(16,12), "ee67651");
+ check_base_class_offset(lv, (dd7651*), 0, "ee67651");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67651.e");
+ test_class_info(&lv, &cd_ee67651);
+ dp->~ee67651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67651(Test_ee67651, "ee67651", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67651C1Ev();
+extern void _ZN7ee67651D1Ev();
+Name_Map name_map_ee67651[] = {
+ NSPAIR(_ZN7ee67651C1Ev),
+ NSPAIR(_ZN7ee67651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee67651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,24), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67651[];
+extern void _ZN7ee676513barEv();
+extern void _ZN7ee676513fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee676513barEv,_ZTv0_n16_N7ee676513barEv)();
+extern void ABISELECT(_ZThn16_N7ee676513barEv,_ZThn12_N7ee676513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee676513fooEv,_ZTv0_n20_N7ee676513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676513fooEv,_ZThn12_N7ee676513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee676513fooEv,_ZTv0_n12_N7ee676513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee676513fooEv,_ZThn24_N7ee676513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67651[0]),
+ (VTBL_ENTRY)&_ZN7ee676513barEv,
+ (VTBL_ENTRY)&_ZN7ee676513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676513barEv,_ZTv0_n16_N7ee676513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee676513fooEv,_ZTv0_n20_N7ee676513fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676513fooEv,_ZTv0_n12_N7ee676513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee67651[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee67651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee67651[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee67651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee67651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee67651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee67651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee67651[] = {
+ {&(_ZTV7ee67651[4]), 4,17},
+ {&(_tg__ZTV6dd7651__7ee67651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee67651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee67651[3]), 3,4},
+ {&(_ZTV7ee67651[11]), 11,17},
+ {&(_ZTV7ee67651[16]), 16,17},
+ {&(_tg__ZTV5cc651__7ee67651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee67651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee67651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee67651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67651[];
+extern VTBL_ENTRY _ZTV7ee67651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67651[];
+static VTBL_ENTRY alt_thunk_names904[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn24_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn12_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn12_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676513fooEv,_ZTv0_n12_N7ee676513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee676513fooEv,_ZThn24_N7ee676513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee676513fooEv,_ZTv0_n20_N7ee676513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676513fooEv,_ZThn12_N7ee676513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676513barEv,_ZTv0_n16_N7ee676513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676513barEv,_ZThn12_N7ee676513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67651 = { "ee67651", // class name
+ bases_ee67651, 4,
+ &(vtc_ee67651[0]), // expected_vtbl_contents
+ &(vtt_ee67651[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67651),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67651),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67651),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names904,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77651 : virtual dd7651 {
+ int e;
+ virtual void foo(); // _ZN7ee776513fooEv
+ virtual void bar(); // _ZN7ee776513barEv
+ ~ee77651(); // tgen
+ ee77651(); // tgen
+};
+//SIG(1 ee77651) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77651 ::foo(){vfunc_called(this, "_ZN7ee776513fooEv");}
+void ee77651 ::bar(){vfunc_called(this, "_ZN7ee776513barEv");}
+ee77651 ::~ee77651(){ note_dtor("ee77651", this);} // tgen
+ee77651 ::ee77651(){ note_ctor("ee77651", this);} // tgen
+
+static void Test_ee77651()
+{
+ extern Class_Descriptor cd_ee77651;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77651, buf);
+ ee77651 *dp, &lv = *(dp=new (buf) ee77651());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77651)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77651)");
+ check_base_class_offset(lv, (aa1*)(bb51*)(cc651*), ABISELECT(48,28), "ee77651");
+ check_base_class_offset(lv, (bb51*)(cc651*), ABISELECT(32,16), "ee77651");
+ check_base_class_offset(lv, (cc651*)(dd7651*), ABISELECT(32,16), "ee77651");
+ check_base_class_offset(lv, (dd7651*), ABISELECT(16,8), "ee77651");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77651.e");
+ test_class_info(&lv, &cd_ee77651);
+ dp->~ee77651();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77651(Test_ee77651, "ee77651", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77651C1Ev();
+extern void _ZN7ee77651D1Ev();
+Name_Map name_map_ee77651[] = {
+ NSPAIR(_ZN7ee77651C1Ev),
+ NSPAIR(_ZN7ee77651D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc651;
+extern VTBL_ENTRY _ZTI5cc651[];
+extern VTBL_ENTRY _ZTV5cc651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc651[];
+extern Class_Descriptor cd_dd7651;
+extern VTBL_ENTRY _ZTI6dd7651[];
+extern VTBL_ENTRY _ZTV6dd7651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7651[];
+static Base_Class bases_ee77651[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 22, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc651, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7651, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77651[];
+extern void _ZN7ee776513fooEv();
+extern void _ZN7ee776513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee776513barEv,_ZTv0_n20_N7ee776513barEv)();
+extern void ABISELECT(_ZThn16_N7ee776513barEv,_ZThn8_N7ee776513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee776513fooEv,_ZTv0_n24_N7ee776513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776513fooEv,_ZThn8_N7ee776513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776513barEv,_ZTv0_n16_N7ee776513barEv)();
+extern void ABISELECT(_ZThn32_N7ee776513barEv,_ZThn16_N7ee776513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776513fooEv,_ZTv0_n20_N7ee776513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776513fooEv,_ZThn16_N7ee776513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776513fooEv,_ZTv0_n12_N7ee776513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee776513fooEv,_ZThn28_N7ee776513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77651[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77651[0]),
+ (VTBL_ENTRY)&_ZN7ee776513fooEv,
+ (VTBL_ENTRY)&_ZN7ee776513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776513barEv,_ZTv0_n20_N7ee776513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee776513fooEv,_ZTv0_n24_N7ee776513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776513barEv,_ZTv0_n16_N7ee776513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776513fooEv,_ZTv0_n20_N7ee776513fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776513fooEv,_ZTv0_n12_N7ee776513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77651[];
+extern void _ZN6dd76513barEv();
+extern void _ZN6dd76513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7651__7ee77651[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&_ZN6dd76513barEv,
+ (VTBL_ENTRY)&_ZN6dd76513fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv)();
+extern void ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc651__6dd7651__7ee77651[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7651__7ee77651[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv),
+};
+extern void _ZN5cc6513barEv();
+extern void _ZN5cc6513fooEv();
+static VTBL_ENTRY _tg__ZTV5cc651__7ee77651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&_ZN5cc6513barEv,
+ (VTBL_ENTRY)&_ZN5cc6513fooEv,
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb515cc651__7ee77651[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb515cc651__7ee77651[] = {
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc651__7ee77651[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc651[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv),
+};
+static VTT_ENTRY vtt_ee77651[] = {
+ {&(_ZTV7ee77651[5]), 5,26},
+ {&(_ZTV7ee77651[13]), 13,26},
+ {&(_ZTV7ee77651[20]), 20,26},
+ {&(_ZTV7ee77651[25]), 25,26},
+ {&(_tg__ZTV6dd7651__7ee77651[4]), 4,6},
+ {&(_tg__ZTV5cc651__6dd7651__7ee77651[5]), 5,7},
+ {&(_tg__ZTV3aa1__6dd7651__7ee77651[3]), 3,4},
+ {&(_tg__ZTV5cc651__7ee77651[3]), 3,5},
+ {&(_tg__ZTV4bb515cc651__7ee77651[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb515cc651__7ee77651[3]), 3,4},
+ {&(_tg__ZTV3aa1__5cc651__7ee77651[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77651[];
+extern VTBL_ENTRY _ZTV7ee77651[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77651[];
+static VTBL_ENTRY alt_thunk_names905[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6513fooEv,_ZTv0_n12_N5cc6513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6513fooEv,_ZThn12_N5cc6513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76513fooEv,_ZTv0_n12_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76513fooEv,_ZThn20_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76513fooEv,_ZTv0_n20_N6dd76513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513fooEv,_ZThn8_N6dd76513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76513barEv,_ZTv0_n16_N6dd76513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76513barEv,_ZThn8_N6dd76513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776513fooEv,_ZTv0_n12_N7ee776513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee776513fooEv,_ZThn28_N7ee776513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776513fooEv,_ZTv0_n20_N7ee776513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776513fooEv,_ZThn16_N7ee776513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776513barEv,_ZTv0_n16_N7ee776513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776513barEv,_ZThn16_N7ee776513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee776513fooEv,_ZTv0_n24_N7ee776513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776513fooEv,_ZThn8_N7ee776513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776513barEv,_ZTv0_n20_N7ee776513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776513barEv,_ZThn8_N7ee776513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77651 = { "ee77651", // class name
+ bases_ee77651, 4,
+ &(vtc_ee77651[0]), // expected_vtbl_contents
+ &(vtt_ee77651[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77651),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77651),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77651),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names905,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc751 : virtual bb51 {
+ int c;
+ virtual void foo(); // _ZN5cc7513fooEv
+ virtual void bar(); // _ZN5cc7513barEv
+ ~cc751(); // tgen
+ cc751(); // tgen
+};
+//SIG(-1 cc751) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc751 ::foo(){vfunc_called(this, "_ZN5cc7513fooEv");}
+void cc751 ::bar(){vfunc_called(this, "_ZN5cc7513barEv");}
+cc751 ::~cc751(){ note_dtor("cc751", this);} // tgen
+cc751 ::cc751(){ note_ctor("cc751", this);} // tgen
+
+static void Test_cc751()
+{
+ extern Class_Descriptor cd_cc751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc751, buf);
+ cc751 *dp, &lv = *(dp=new (buf) cc751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,16), "cc751");
+ check_base_class_offset(lv, (bb51*), ABISELECT(16,8), "cc751");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc751.c");
+ test_class_info(&lv, &cd_cc751);
+ dp->~cc751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc751(Test_cc751, "cc751", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc751C1Ev();
+extern void _ZN5cc751D1Ev();
+Name_Map name_map_cc751[] = {
+ NSPAIR(_ZN5cc751C1Ev),
+ NSPAIR(_ZN5cc751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+static Base_Class bases_cc751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(32,16), //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV5cc751[];
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__5cc751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_cc751[] = {
+ {&(_ZTV5cc751[4]), 4,15},
+ {&(_ZTV5cc751[10]), 10,15},
+ {&(_ZTV5cc751[14]), 14,15},
+ {&(_tg__ZTV4bb51__5cc751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__5cc751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static VTBL_ENTRY alt_thunk_names906[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc751 = { "cc751", // class name
+ bases_cc751, 2,
+ &(vtc_cc751[0]), // expected_vtbl_contents
+ &(vtt_cc751[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc751),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names906,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0751 : cc751 {
+ int d;
+ ~dd0751(); // tgen
+ dd0751(); // tgen
+};
+//SIG(-1 dd0751) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0751 ::~dd0751(){ note_dtor("dd0751", this);} // tgen
+dd0751 ::dd0751(){ note_ctor("dd0751", this);} // tgen
+
+static void Test_dd0751()
+{
+ extern Class_Descriptor cd_dd0751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0751, buf);
+ dd0751 *dp, &lv = *(dp=new (buf) dd0751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd0751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(16,12), "dd0751");
+ check_base_class_offset(lv, (cc751*), 0, "dd0751");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0751.d");
+ test_class_info(&lv, &cd_dd0751);
+ dp->~dd0751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0751(Test_dd0751, "dd0751", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0751C1Ev();
+extern void _ZN6dd0751D1Ev();
+Name_Map name_map_dd0751[] = {
+ NSPAIR(_ZN6dd0751C1Ev),
+ NSPAIR(_ZN6dd0751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd0751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd0751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd0751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd0751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd0751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd0751[] = {
+ {&(_ZTV6dd0751[4]), 4,15},
+ {&(_tg__ZTV5cc751__6dd0751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd0751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd0751[3]), 3,4},
+ {&(_ZTV6dd0751[10]), 10,15},
+ {&(_ZTV6dd0751[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd0751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd0751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static VTBL_ENTRY alt_thunk_names907[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0751 = { "dd0751", // class name
+ bases_dd0751, 3,
+ &(vtc_dd0751[0]), // expected_vtbl_contents
+ &(vtt_dd0751[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0751),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names907,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00751 : dd0751 {
+ int e;
+ ~ee00751(); // tgen
+ ee00751(); // tgen
+};
+//SIG(1 ee00751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00751 ::~ee00751(){ note_dtor("ee00751", this);} // tgen
+ee00751 ::ee00751(){ note_ctor("ee00751", this);} // tgen
+
+static void Test_ee00751()
+{
+ extern Class_Descriptor cd_ee00751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00751, buf);
+ ee00751 *dp, &lv = *(dp=new (buf) ee00751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee00751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(24,16), "ee00751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), 0, "ee00751");
+ check_base_class_offset(lv, (dd0751*), 0, "ee00751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00751.e");
+ test_class_info(&lv, &cd_ee00751);
+ dp->~ee00751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00751(Test_ee00751, "ee00751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00751C1Ev();
+extern void _ZN7ee00751D1Ev();
+Name_Map name_map_ee00751[] = {
+ NSPAIR(_ZN7ee00751C1Ev),
+ NSPAIR(_ZN7ee00751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee00751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee00751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee00751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee00751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee00751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee00751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee00751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee00751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee00751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee00751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee00751[] = {
+ {&(_ZTV7ee00751[4]), 4,15},
+ {&(_tg__ZTV6dd0751__7ee00751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee00751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee00751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee00751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee00751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee00751[3]), 3,4},
+ {&(_ZTV7ee00751[10]), 10,15},
+ {&(_ZTV7ee00751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee00751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee00751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee00751[];
+extern VTBL_ENTRY _ZTV7ee00751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00751[];
+static VTBL_ENTRY alt_thunk_names908[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00751 = { "ee00751", // class name
+ bases_ee00751, 4,
+ &(vtc_ee00751[0]), // expected_vtbl_contents
+ &(vtt_ee00751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names908,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10751 : virtual dd0751 {
+ int e;
+ ~ee10751(); // tgen
+ ee10751(); // tgen
+};
+//SIG(1 ee10751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10751 ::~ee10751(){ note_dtor("ee10751", this);} // tgen
+ee10751 ::ee10751(){ note_ctor("ee10751", this);} // tgen
+
+static void Test_ee10751()
+{
+ extern Class_Descriptor cd_ee10751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10751, buf);
+ ee10751 *dp, &lv = *(dp=new (buf) ee10751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee10751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(32,20), "ee10751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), ABISELECT(16,8), "ee10751");
+ check_base_class_offset(lv, (dd0751*), ABISELECT(16,8), "ee10751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10751.e");
+ test_class_info(&lv, &cd_ee10751);
+ dp->~ee10751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10751(Test_ee10751, "ee10751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10751C1Ev();
+extern void _ZN7ee10751D1Ev();
+Name_Map name_map_ee10751[] = {
+ NSPAIR(_ZN7ee10751C1Ev),
+ NSPAIR(_ZN7ee10751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee10751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10751[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee10751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee10751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee10751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee10751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee10751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee10751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee10751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee10751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee10751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee10751[] = {
+ {&(_ZTV7ee10751[5]), 5,22},
+ {&(_ZTV7ee10751[11]), 11,22},
+ {&(_ZTV7ee10751[17]), 17,22},
+ {&(_ZTV7ee10751[21]), 21,22},
+ {&(_tg__ZTV6dd0751__7ee10751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee10751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee10751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee10751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee10751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee10751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee10751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee10751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee10751[];
+extern VTBL_ENTRY _ZTV7ee10751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10751[];
+static VTBL_ENTRY alt_thunk_names909[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10751 = { "ee10751", // class name
+ bases_ee10751, 4,
+ &(vtc_ee10751[0]), // expected_vtbl_contents
+ &(vtt_ee10751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names909,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20751 : dd0751 {
+ int e;
+ virtual void foo(); // _ZN7ee207513fooEv
+ ~ee20751(); // tgen
+ ee20751(); // tgen
+};
+//SIG(1 ee20751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20751 ::foo(){vfunc_called(this, "_ZN7ee207513fooEv");}
+ee20751 ::~ee20751(){ note_dtor("ee20751", this);} // tgen
+ee20751 ::ee20751(){ note_ctor("ee20751", this);} // tgen
+
+static void Test_ee20751()
+{
+ extern Class_Descriptor cd_ee20751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20751, buf);
+ ee20751 *dp, &lv = *(dp=new (buf) ee20751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee20751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(24,16), "ee20751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), 0, "ee20751");
+ check_base_class_offset(lv, (dd0751*), 0, "ee20751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20751.e");
+ test_class_info(&lv, &cd_ee20751);
+ dp->~ee20751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20751(Test_ee20751, "ee20751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20751C1Ev();
+extern void _ZN7ee20751D1Ev();
+Name_Map name_map_ee20751[] = {
+ NSPAIR(_ZN7ee20751C1Ev),
+ NSPAIR(_ZN7ee20751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee20751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20751[];
+extern void _ZN7ee207513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee207513fooEv,_ZTv0_n12_N7ee207513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee207513fooEv,_ZThn24_N7ee207513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20751[0]),
+ (VTBL_ENTRY)&_ZN7ee207513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207513fooEv,_ZTv0_n12_N7ee207513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee20751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee20751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee20751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee20751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee20751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee20751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee20751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee20751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee20751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee20751[] = {
+ {&(_ZTV7ee20751[4]), 4,15},
+ {&(_tg__ZTV6dd0751__7ee20751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee20751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee20751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee20751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee20751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee20751[3]), 3,4},
+ {&(_ZTV7ee20751[10]), 10,15},
+ {&(_ZTV7ee20751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee20751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee20751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee20751[];
+extern VTBL_ENTRY _ZTV7ee20751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20751[];
+static VTBL_ENTRY alt_thunk_names910[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207513fooEv,_ZTv0_n12_N7ee207513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee207513fooEv,_ZThn24_N7ee207513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20751 = { "ee20751", // class name
+ bases_ee20751, 4,
+ &(vtc_ee20751[0]), // expected_vtbl_contents
+ &(vtt_ee20751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names910,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30751 : virtual dd0751 {
+ int e;
+ virtual void foo(); // _ZN7ee307513fooEv
+ ~ee30751(); // tgen
+ ee30751(); // tgen
+};
+//SIG(1 ee30751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30751 ::foo(){vfunc_called(this, "_ZN7ee307513fooEv");}
+ee30751 ::~ee30751(){ note_dtor("ee30751", this);} // tgen
+ee30751 ::ee30751(){ note_ctor("ee30751", this);} // tgen
+
+static void Test_ee30751()
+{
+ extern Class_Descriptor cd_ee30751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30751, buf);
+ ee30751 *dp, &lv = *(dp=new (buf) ee30751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee30751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(32,20), "ee30751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), ABISELECT(16,8), "ee30751");
+ check_base_class_offset(lv, (dd0751*), ABISELECT(16,8), "ee30751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30751.e");
+ test_class_info(&lv, &cd_ee30751);
+ dp->~ee30751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30751(Test_ee30751, "ee30751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30751C1Ev();
+extern void _ZN7ee30751D1Ev();
+Name_Map name_map_ee30751[] = {
+ NSPAIR(_ZN7ee30751C1Ev),
+ NSPAIR(_ZN7ee30751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee30751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30751[];
+extern void _ZN7ee307513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee307513fooEv,_ZTv0_n20_N7ee307513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307513fooEv,_ZThn8_N7ee307513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee307513fooEv,_ZTv0_n12_N7ee307513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee307513fooEv,_ZThn28_N7ee307513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30751[0]),
+ (VTBL_ENTRY)&_ZN7ee307513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee307513fooEv,_ZTv0_n20_N7ee307513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307513fooEv,_ZTv0_n12_N7ee307513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee30751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee30751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee30751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee30751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee30751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee30751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee30751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee30751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee30751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee30751[] = {
+ {&(_ZTV7ee30751[5]), 5,23},
+ {&(_ZTV7ee30751[12]), 12,23},
+ {&(_ZTV7ee30751[18]), 18,23},
+ {&(_ZTV7ee30751[22]), 22,23},
+ {&(_tg__ZTV6dd0751__7ee30751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee30751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee30751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee30751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee30751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee30751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee30751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee30751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee30751[];
+extern VTBL_ENTRY _ZTV7ee30751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30751[];
+static VTBL_ENTRY alt_thunk_names911[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307513fooEv,_ZTv0_n12_N7ee307513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee307513fooEv,_ZThn28_N7ee307513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee307513fooEv,_ZTv0_n20_N7ee307513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307513fooEv,_ZThn8_N7ee307513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30751 = { "ee30751", // class name
+ bases_ee30751, 4,
+ &(vtc_ee30751[0]), // expected_vtbl_contents
+ &(vtt_ee30751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names911,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40751 : dd0751 {
+ int e;
+ virtual void bar(); // _ZN7ee407513barEv
+ ~ee40751(); // tgen
+ ee40751(); // tgen
+};
+//SIG(1 ee40751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40751 ::bar(){vfunc_called(this, "_ZN7ee407513barEv");}
+ee40751 ::~ee40751(){ note_dtor("ee40751", this);} // tgen
+ee40751 ::ee40751(){ note_ctor("ee40751", this);} // tgen
+
+static void Test_ee40751()
+{
+ extern Class_Descriptor cd_ee40751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40751, buf);
+ ee40751 *dp, &lv = *(dp=new (buf) ee40751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee40751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(24,16), "ee40751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), 0, "ee40751");
+ check_base_class_offset(lv, (dd0751*), 0, "ee40751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40751.e");
+ test_class_info(&lv, &cd_ee40751);
+ dp->~ee40751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40751(Test_ee40751, "ee40751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40751C1Ev();
+extern void _ZN7ee40751D1Ev();
+Name_Map name_map_ee40751[] = {
+ NSPAIR(_ZN7ee40751C1Ev),
+ NSPAIR(_ZN7ee40751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee40751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN7ee407513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee407513barEv,_ZTv0_n16_N7ee407513barEv)();
+extern void ABISELECT(_ZThn24_N7ee407513barEv,_ZThn16_N7ee407513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN7ee407513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407513barEv,_ZTv0_n16_N7ee407513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee40751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee40751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee40751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee40751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee40751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee40751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee40751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee40751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee40751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee40751[] = {
+ {&(_ZTV7ee40751[4]), 4,15},
+ {&(_tg__ZTV6dd0751__7ee40751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee40751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee40751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee40751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee40751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee40751[3]), 3,4},
+ {&(_ZTV7ee40751[10]), 10,15},
+ {&(_ZTV7ee40751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee40751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee40751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee40751[];
+extern VTBL_ENTRY _ZTV7ee40751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40751[];
+static VTBL_ENTRY alt_thunk_names912[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407513barEv,_ZTv0_n16_N7ee407513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407513barEv,_ZThn16_N7ee407513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40751 = { "ee40751", // class name
+ bases_ee40751, 4,
+ &(vtc_ee40751[0]), // expected_vtbl_contents
+ &(vtt_ee40751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names912,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50751 : virtual dd0751 {
+ int e;
+ virtual void bar(); // _ZN7ee507513barEv
+ ~ee50751(); // tgen
+ ee50751(); // tgen
+};
+//SIG(1 ee50751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50751 ::bar(){vfunc_called(this, "_ZN7ee507513barEv");}
+ee50751 ::~ee50751(){ note_dtor("ee50751", this);} // tgen
+ee50751 ::ee50751(){ note_ctor("ee50751", this);} // tgen
+
+static void Test_ee50751()
+{
+ extern Class_Descriptor cd_ee50751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50751, buf);
+ ee50751 *dp, &lv = *(dp=new (buf) ee50751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee50751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(32,20), "ee50751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), ABISELECT(16,8), "ee50751");
+ check_base_class_offset(lv, (dd0751*), ABISELECT(16,8), "ee50751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50751.e");
+ test_class_info(&lv, &cd_ee50751);
+ dp->~ee50751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50751(Test_ee50751, "ee50751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50751C1Ev();
+extern void _ZN7ee50751D1Ev();
+Name_Map name_map_ee50751[] = {
+ NSPAIR(_ZN7ee50751C1Ev),
+ NSPAIR(_ZN7ee50751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee50751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50751[];
+extern void _ZN7ee507513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee507513barEv,_ZTv0_n24_N7ee507513barEv)();
+extern void ABISELECT(_ZThn16_N7ee507513barEv,_ZThn8_N7ee507513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507513barEv,_ZTv0_n16_N7ee507513barEv)();
+extern void ABISELECT(_ZThn32_N7ee507513barEv,_ZThn20_N7ee507513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50751[0]),
+ (VTBL_ENTRY)&_ZN7ee507513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee507513barEv,_ZTv0_n24_N7ee507513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507513barEv,_ZTv0_n16_N7ee507513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee50751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee50751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee50751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee50751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee50751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee50751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee50751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee50751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee50751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee50751[] = {
+ {&(_ZTV7ee50751[5]), 5,23},
+ {&(_ZTV7ee50751[12]), 12,23},
+ {&(_ZTV7ee50751[18]), 18,23},
+ {&(_ZTV7ee50751[22]), 22,23},
+ {&(_tg__ZTV6dd0751__7ee50751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee50751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee50751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee50751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee50751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee50751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee50751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee50751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee50751[];
+extern VTBL_ENTRY _ZTV7ee50751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50751[];
+static VTBL_ENTRY alt_thunk_names913[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507513barEv,_ZTv0_n16_N7ee507513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507513barEv,_ZThn20_N7ee507513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee507513barEv,_ZTv0_n24_N7ee507513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507513barEv,_ZThn8_N7ee507513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50751 = { "ee50751", // class name
+ bases_ee50751, 4,
+ &(vtc_ee50751[0]), // expected_vtbl_contents
+ &(vtt_ee50751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names913,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60751 : dd0751 {
+ int e;
+ virtual void foo(); // _ZN7ee607513fooEv
+ virtual void bar(); // _ZN7ee607513barEv
+ ~ee60751(); // tgen
+ ee60751(); // tgen
+};
+//SIG(1 ee60751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60751 ::foo(){vfunc_called(this, "_ZN7ee607513fooEv");}
+void ee60751 ::bar(){vfunc_called(this, "_ZN7ee607513barEv");}
+ee60751 ::~ee60751(){ note_dtor("ee60751", this);} // tgen
+ee60751 ::ee60751(){ note_ctor("ee60751", this);} // tgen
+
+static void Test_ee60751()
+{
+ extern Class_Descriptor cd_ee60751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60751, buf);
+ ee60751 *dp, &lv = *(dp=new (buf) ee60751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee60751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(24,16), "ee60751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), 0, "ee60751");
+ check_base_class_offset(lv, (dd0751*), 0, "ee60751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60751.e");
+ test_class_info(&lv, &cd_ee60751);
+ dp->~ee60751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60751(Test_ee60751, "ee60751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60751C1Ev();
+extern void _ZN7ee60751D1Ev();
+Name_Map name_map_ee60751[] = {
+ NSPAIR(_ZN7ee60751C1Ev),
+ NSPAIR(_ZN7ee60751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee60751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60751[];
+extern void _ZN7ee607513fooEv();
+extern void _ZN7ee607513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee607513barEv,_ZTv0_n16_N7ee607513barEv)();
+extern void ABISELECT(_ZThn24_N7ee607513barEv,_ZThn16_N7ee607513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee607513fooEv,_ZTv0_n12_N7ee607513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee607513fooEv,_ZThn24_N7ee607513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60751[0]),
+ (VTBL_ENTRY)&_ZN7ee607513fooEv,
+ (VTBL_ENTRY)&_ZN7ee607513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607513barEv,_ZTv0_n16_N7ee607513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607513fooEv,_ZTv0_n12_N7ee607513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee60751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee60751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee60751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee60751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee60751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee60751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee60751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee60751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee60751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee60751[] = {
+ {&(_ZTV7ee60751[4]), 4,15},
+ {&(_tg__ZTV6dd0751__7ee60751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee60751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee60751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee60751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee60751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee60751[3]), 3,4},
+ {&(_ZTV7ee60751[10]), 10,15},
+ {&(_ZTV7ee60751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee60751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee60751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee60751[];
+extern VTBL_ENTRY _ZTV7ee60751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60751[];
+static VTBL_ENTRY alt_thunk_names914[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607513fooEv,_ZTv0_n12_N7ee607513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee607513fooEv,_ZThn24_N7ee607513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607513barEv,_ZTv0_n16_N7ee607513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607513barEv,_ZThn16_N7ee607513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60751 = { "ee60751", // class name
+ bases_ee60751, 4,
+ &(vtc_ee60751[0]), // expected_vtbl_contents
+ &(vtt_ee60751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names914,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70751 : virtual dd0751 {
+ int e;
+ virtual void foo(); // _ZN7ee707513fooEv
+ virtual void bar(); // _ZN7ee707513barEv
+ ~ee70751(); // tgen
+ ee70751(); // tgen
+};
+//SIG(1 ee70751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70751 ::foo(){vfunc_called(this, "_ZN7ee707513fooEv");}
+void ee70751 ::bar(){vfunc_called(this, "_ZN7ee707513barEv");}
+ee70751 ::~ee70751(){ note_dtor("ee70751", this);} // tgen
+ee70751 ::ee70751(){ note_ctor("ee70751", this);} // tgen
+
+static void Test_ee70751()
+{
+ extern Class_Descriptor cd_ee70751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70751, buf);
+ ee70751 *dp, &lv = *(dp=new (buf) ee70751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee70751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd0751*), ABISELECT(32,20), "ee70751");
+ check_base_class_offset(lv, (cc751*)(dd0751*), ABISELECT(16,8), "ee70751");
+ check_base_class_offset(lv, (dd0751*), ABISELECT(16,8), "ee70751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70751.e");
+ test_class_info(&lv, &cd_ee70751);
+ dp->~ee70751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70751(Test_ee70751, "ee70751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70751C1Ev();
+extern void _ZN7ee70751D1Ev();
+Name_Map name_map_ee70751[] = {
+ NSPAIR(_ZN7ee70751C1Ev),
+ NSPAIR(_ZN7ee70751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd0751;
+extern VTBL_ENTRY _ZTI6dd0751[];
+extern VTBL_ENTRY _ZTV6dd0751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0751[];
+static Base_Class bases_ee70751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70751[];
+extern void _ZN7ee707513fooEv();
+extern void _ZN7ee707513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee707513fooEv,_ZTv0_n20_N7ee707513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707513fooEv,_ZThn8_N7ee707513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee707513barEv,_ZTv0_n24_N7ee707513barEv)();
+extern void ABISELECT(_ZThn16_N7ee707513barEv,_ZThn8_N7ee707513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707513barEv,_ZTv0_n16_N7ee707513barEv)();
+extern void ABISELECT(_ZThn32_N7ee707513barEv,_ZThn20_N7ee707513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707513fooEv,_ZTv0_n12_N7ee707513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee707513fooEv,_ZThn28_N7ee707513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70751[0]),
+ (VTBL_ENTRY)&_ZN7ee707513fooEv,
+ (VTBL_ENTRY)&_ZN7ee707513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707513fooEv,_ZTv0_n20_N7ee707513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee707513barEv,_ZTv0_n24_N7ee707513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707513barEv,_ZTv0_n16_N7ee707513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707513fooEv,_ZTv0_n12_N7ee707513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee70751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd0751__7ee70751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd0751__7ee70751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd0751__7ee70751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd0751__7ee70751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd0751__7ee70751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd0751__7ee70751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee70751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee70751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee70751[] = {
+ {&(_ZTV7ee70751[5]), 5,24},
+ {&(_ZTV7ee70751[13]), 13,24},
+ {&(_ZTV7ee70751[19]), 19,24},
+ {&(_ZTV7ee70751[23]), 23,24},
+ {&(_tg__ZTV6dd0751__7ee70751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd0751__7ee70751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd0751__7ee70751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd0751__7ee70751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd0751__7ee70751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd0751__7ee70751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee70751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee70751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee70751[];
+extern VTBL_ENTRY _ZTV7ee70751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70751[];
+static VTBL_ENTRY alt_thunk_names915[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707513fooEv,_ZTv0_n12_N7ee707513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee707513fooEv,_ZThn28_N7ee707513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707513barEv,_ZTv0_n16_N7ee707513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707513barEv,_ZThn20_N7ee707513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee707513barEv,_ZTv0_n24_N7ee707513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707513barEv,_ZThn8_N7ee707513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707513fooEv,_ZTv0_n20_N7ee707513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707513fooEv,_ZThn8_N7ee707513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70751 = { "ee70751", // class name
+ bases_ee70751, 4,
+ &(vtc_ee70751[0]), // expected_vtbl_contents
+ &(vtt_ee70751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names915,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1751 : virtual cc751 {
+ int d;
+ ~dd1751(); // tgen
+ dd1751(); // tgen
+};
+//SIG(-1 dd1751) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1751 ::~dd1751(){ note_dtor("dd1751", this);} // tgen
+dd1751 ::dd1751(){ note_ctor("dd1751", this);} // tgen
+
+static void Test_dd1751()
+{
+ extern Class_Descriptor cd_dd1751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1751, buf);
+ dd1751 *dp, &lv = *(dp=new (buf) dd1751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd1751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,16), "dd1751");
+ check_base_class_offset(lv, (cc751*), ABISELECT(16,8), "dd1751");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1751.d");
+ test_class_info(&lv, &cd_dd1751);
+ dp->~dd1751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1751(Test_dd1751, "dd1751", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1751C1Ev();
+extern void _ZN6dd1751D1Ev();
+Name_Map name_map_dd1751[] = {
+ NSPAIR(_ZN6dd1751C1Ev),
+ NSPAIR(_ZN6dd1751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd1751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd1751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd1751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd1751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd1751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd1751[] = {
+ {&(_ZTV6dd1751[5]), 5,22},
+ {&(_ZTV6dd1751[11]), 11,22},
+ {&(_ZTV6dd1751[17]), 17,22},
+ {&(_ZTV6dd1751[21]), 21,22},
+ {&(_tg__ZTV5cc751__6dd1751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd1751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd1751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd1751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd1751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static VTBL_ENTRY alt_thunk_names916[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1751 = { "dd1751", // class name
+ bases_dd1751, 3,
+ &(vtc_dd1751[0]), // expected_vtbl_contents
+ &(vtt_dd1751[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1751),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names916,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01751 : dd1751 {
+ int e;
+ ~ee01751(); // tgen
+ ee01751(); // tgen
+};
+//SIG(1 ee01751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01751 ::~ee01751(){ note_dtor("ee01751", this);} // tgen
+ee01751 ::ee01751(){ note_ctor("ee01751", this);} // tgen
+
+static void Test_ee01751()
+{
+ extern Class_Descriptor cd_ee01751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01751, buf);
+ ee01751 *dp, &lv = *(dp=new (buf) ee01751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee01751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee01751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(16,12), "ee01751");
+ check_base_class_offset(lv, (dd1751*), 0, "ee01751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01751.e");
+ test_class_info(&lv, &cd_ee01751);
+ dp->~ee01751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01751(Test_ee01751, "ee01751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01751C1Ev();
+extern void _ZN7ee01751D1Ev();
+Name_Map name_map_ee01751[] = {
+ NSPAIR(_ZN7ee01751C1Ev),
+ NSPAIR(_ZN7ee01751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee01751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 18, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01751[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee01751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee01751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee01751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee01751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee01751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee01751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee01751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee01751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee01751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee01751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee01751[] = {
+ {&(_ZTV7ee01751[5]), 5,22},
+ {&(_tg__ZTV6dd1751__7ee01751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee01751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee01751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee01751[3]), 3,4},
+ {&(_ZTV7ee01751[11]), 11,22},
+ {&(_ZTV7ee01751[17]), 17,22},
+ {&(_ZTV7ee01751[21]), 21,22},
+ {&(_tg__ZTV5cc751__7ee01751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee01751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee01751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee01751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee01751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee01751[];
+extern VTBL_ENTRY _ZTV7ee01751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01751[];
+static VTBL_ENTRY alt_thunk_names917[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01751 = { "ee01751", // class name
+ bases_ee01751, 4,
+ &(vtc_ee01751[0]), // expected_vtbl_contents
+ &(vtt_ee01751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names917,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11751 : virtual dd1751 {
+ int e;
+ ~ee11751(); // tgen
+ ee11751(); // tgen
+};
+//SIG(1 ee11751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11751 ::~ee11751(){ note_dtor("ee11751", this);} // tgen
+ee11751 ::ee11751(){ note_ctor("ee11751", this);} // tgen
+
+static void Test_ee11751()
+{
+ extern Class_Descriptor cd_ee11751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11751, buf);
+ ee11751 *dp, &lv = *(dp=new (buf) ee11751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee11751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee11751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(32,16), "ee11751");
+ check_base_class_offset(lv, (dd1751*), ABISELECT(16,8), "ee11751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11751.e");
+ test_class_info(&lv, &cd_ee11751);
+ dp->~ee11751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11751(Test_ee11751, "ee11751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11751C1Ev();
+extern void _ZN7ee11751D1Ev();
+Name_Map name_map_ee11751[] = {
+ NSPAIR(_ZN7ee11751C1Ev),
+ NSPAIR(_ZN7ee11751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee11751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 24, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11751[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11751[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee11751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee11751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee11751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee11751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee11751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee11751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee11751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee11751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee11751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee11751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee11751[] = {
+ {&(_ZTV7ee11751[6]), 6,28},
+ {&(_ZTV7ee11751[11]), 11,28},
+ {&(_ZTV7ee11751[17]), 17,28},
+ {&(_ZTV7ee11751[23]), 23,28},
+ {&(_ZTV7ee11751[27]), 27,28},
+ {&(_tg__ZTV6dd1751__7ee11751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee11751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee11751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee11751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee11751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee11751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee11751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee11751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee11751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee11751[];
+extern VTBL_ENTRY _ZTV7ee11751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11751[];
+static VTBL_ENTRY alt_thunk_names918[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11751 = { "ee11751", // class name
+ bases_ee11751, 4,
+ &(vtc_ee11751[0]), // expected_vtbl_contents
+ &(vtt_ee11751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11751),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names918,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21751 : dd1751 {
+ int e;
+ virtual void foo(); // _ZN7ee217513fooEv
+ ~ee21751(); // tgen
+ ee21751(); // tgen
+};
+//SIG(1 ee21751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21751 ::foo(){vfunc_called(this, "_ZN7ee217513fooEv");}
+ee21751 ::~ee21751(){ note_dtor("ee21751", this);} // tgen
+ee21751 ::ee21751(){ note_ctor("ee21751", this);} // tgen
+
+static void Test_ee21751()
+{
+ extern Class_Descriptor cd_ee21751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21751, buf);
+ ee21751 *dp, &lv = *(dp=new (buf) ee21751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee21751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee21751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(16,12), "ee21751");
+ check_base_class_offset(lv, (dd1751*), 0, "ee21751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21751.e");
+ test_class_info(&lv, &cd_ee21751);
+ dp->~ee21751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21751(Test_ee21751, "ee21751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21751C1Ev();
+extern void _ZN7ee21751D1Ev();
+Name_Map name_map_ee21751[] = {
+ NSPAIR(_ZN7ee21751C1Ev),
+ NSPAIR(_ZN7ee21751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee21751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21751[];
+extern void _ZN7ee217513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee217513fooEv,_ZTv0_n20_N7ee217513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217513fooEv,_ZThn12_N7ee217513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee217513fooEv,_ZTv0_n12_N7ee217513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee217513fooEv,_ZThn28_N7ee217513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21751[0]),
+ (VTBL_ENTRY)&_ZN7ee217513fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee217513fooEv,_ZTv0_n20_N7ee217513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217513fooEv,_ZTv0_n12_N7ee217513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee21751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee21751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee21751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee21751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee21751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee21751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee21751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee21751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee21751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee21751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee21751[] = {
+ {&(_ZTV7ee21751[5]), 5,23},
+ {&(_tg__ZTV6dd1751__7ee21751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee21751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee21751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee21751[3]), 3,4},
+ {&(_ZTV7ee21751[12]), 12,23},
+ {&(_ZTV7ee21751[18]), 18,23},
+ {&(_ZTV7ee21751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee21751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee21751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee21751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee21751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee21751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee21751[];
+extern VTBL_ENTRY _ZTV7ee21751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21751[];
+static VTBL_ENTRY alt_thunk_names919[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217513fooEv,_ZTv0_n12_N7ee217513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee217513fooEv,_ZThn28_N7ee217513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee217513fooEv,_ZTv0_n20_N7ee217513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217513fooEv,_ZThn12_N7ee217513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21751 = { "ee21751", // class name
+ bases_ee21751, 4,
+ &(vtc_ee21751[0]), // expected_vtbl_contents
+ &(vtt_ee21751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names919,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31751 : virtual dd1751 {
+ int e;
+ virtual void foo(); // _ZN7ee317513fooEv
+ ~ee31751(); // tgen
+ ee31751(); // tgen
+};
+//SIG(1 ee31751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31751 ::foo(){vfunc_called(this, "_ZN7ee317513fooEv");}
+ee31751 ::~ee31751(){ note_dtor("ee31751", this);} // tgen
+ee31751 ::ee31751(){ note_ctor("ee31751", this);} // tgen
+
+static void Test_ee31751()
+{
+ extern Class_Descriptor cd_ee31751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31751, buf);
+ ee31751 *dp, &lv = *(dp=new (buf) ee31751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee31751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee31751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(32,16), "ee31751");
+ check_base_class_offset(lv, (dd1751*), ABISELECT(16,8), "ee31751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31751.e");
+ test_class_info(&lv, &cd_ee31751);
+ dp->~ee31751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31751(Test_ee31751, "ee31751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31751C1Ev();
+extern void _ZN7ee31751D1Ev();
+Name_Map name_map_ee31751[] = {
+ NSPAIR(_ZN7ee31751C1Ev),
+ NSPAIR(_ZN7ee31751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee31751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31751[];
+extern void _ZN7ee317513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee317513fooEv,_ZTv0_n20_N7ee317513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317513fooEv,_ZThn16_N7ee317513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee317513fooEv,_ZTv0_n12_N7ee317513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee317513fooEv,_ZThn32_N7ee317513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31751[0]),
+ (VTBL_ENTRY)&_ZN7ee317513fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31751[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee317513fooEv,_ZTv0_n20_N7ee317513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317513fooEv,_ZTv0_n12_N7ee317513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee31751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee31751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee31751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee31751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee31751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee31751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee31751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee31751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee31751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee31751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee31751[] = {
+ {&(_ZTV7ee31751[6]), 6,29},
+ {&(_ZTV7ee31751[12]), 12,29},
+ {&(_ZTV7ee31751[18]), 18,29},
+ {&(_ZTV7ee31751[24]), 24,29},
+ {&(_ZTV7ee31751[28]), 28,29},
+ {&(_tg__ZTV6dd1751__7ee31751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee31751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee31751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee31751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee31751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee31751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee31751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee31751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee31751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee31751[];
+extern VTBL_ENTRY _ZTV7ee31751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31751[];
+static VTBL_ENTRY alt_thunk_names920[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317513fooEv,_ZTv0_n12_N7ee317513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee317513fooEv,_ZThn32_N7ee317513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee317513fooEv,_ZTv0_n20_N7ee317513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317513fooEv,_ZThn16_N7ee317513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31751 = { "ee31751", // class name
+ bases_ee31751, 4,
+ &(vtc_ee31751[0]), // expected_vtbl_contents
+ &(vtt_ee31751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31751),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names920,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41751 : dd1751 {
+ int e;
+ virtual void bar(); // _ZN7ee417513barEv
+ ~ee41751(); // tgen
+ ee41751(); // tgen
+};
+//SIG(1 ee41751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41751 ::bar(){vfunc_called(this, "_ZN7ee417513barEv");}
+ee41751 ::~ee41751(){ note_dtor("ee41751", this);} // tgen
+ee41751 ::ee41751(){ note_ctor("ee41751", this);} // tgen
+
+static void Test_ee41751()
+{
+ extern Class_Descriptor cd_ee41751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41751, buf);
+ ee41751 *dp, &lv = *(dp=new (buf) ee41751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee41751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee41751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(16,12), "ee41751");
+ check_base_class_offset(lv, (dd1751*), 0, "ee41751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41751.e");
+ test_class_info(&lv, &cd_ee41751);
+ dp->~ee41751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41751(Test_ee41751, "ee41751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41751C1Ev();
+extern void _ZN7ee41751D1Ev();
+Name_Map name_map_ee41751[] = {
+ NSPAIR(_ZN7ee41751C1Ev),
+ NSPAIR(_ZN7ee41751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee41751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41751[];
+extern void _ZN7ee417513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee417513barEv,_ZTv0_n24_N7ee417513barEv)();
+extern void ABISELECT(_ZThn16_N7ee417513barEv,_ZThn12_N7ee417513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417513barEv,_ZTv0_n16_N7ee417513barEv)();
+extern void ABISELECT(_ZThn32_N7ee417513barEv,_ZThn20_N7ee417513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41751[0]),
+ (VTBL_ENTRY)&_ZN7ee417513barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee417513barEv,_ZTv0_n24_N7ee417513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417513barEv,_ZTv0_n16_N7ee417513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee41751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee41751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee41751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee41751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee41751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee41751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee41751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee41751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee41751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee41751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee41751[] = {
+ {&(_ZTV7ee41751[5]), 5,23},
+ {&(_tg__ZTV6dd1751__7ee41751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee41751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee41751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee41751[3]), 3,4},
+ {&(_ZTV7ee41751[12]), 12,23},
+ {&(_ZTV7ee41751[18]), 18,23},
+ {&(_ZTV7ee41751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee41751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee41751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee41751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee41751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee41751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee41751[];
+extern VTBL_ENTRY _ZTV7ee41751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41751[];
+static VTBL_ENTRY alt_thunk_names921[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417513barEv,_ZTv0_n16_N7ee417513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417513barEv,_ZThn20_N7ee417513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee417513barEv,_ZTv0_n24_N7ee417513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417513barEv,_ZThn12_N7ee417513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41751 = { "ee41751", // class name
+ bases_ee41751, 4,
+ &(vtc_ee41751[0]), // expected_vtbl_contents
+ &(vtt_ee41751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names921,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51751 : virtual dd1751 {
+ int e;
+ virtual void bar(); // _ZN7ee517513barEv
+ ~ee51751(); // tgen
+ ee51751(); // tgen
+};
+//SIG(1 ee51751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51751 ::bar(){vfunc_called(this, "_ZN7ee517513barEv");}
+ee51751 ::~ee51751(){ note_dtor("ee51751", this);} // tgen
+ee51751 ::ee51751(){ note_ctor("ee51751", this);} // tgen
+
+static void Test_ee51751()
+{
+ extern Class_Descriptor cd_ee51751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51751, buf);
+ ee51751 *dp, &lv = *(dp=new (buf) ee51751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee51751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee51751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(32,16), "ee51751");
+ check_base_class_offset(lv, (dd1751*), ABISELECT(16,8), "ee51751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51751.e");
+ test_class_info(&lv, &cd_ee51751);
+ dp->~ee51751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51751(Test_ee51751, "ee51751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51751C1Ev();
+extern void _ZN7ee51751D1Ev();
+Name_Map name_map_ee51751[] = {
+ NSPAIR(_ZN7ee51751C1Ev),
+ NSPAIR(_ZN7ee51751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee51751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 25, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51751[];
+extern void _ZN7ee517513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee517513barEv,_ZTv0_n24_N7ee517513barEv)();
+extern void ABISELECT(_ZThn32_N7ee517513barEv,_ZThn16_N7ee517513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517513barEv,_ZTv0_n16_N7ee517513barEv)();
+extern void ABISELECT(_ZThn48_N7ee517513barEv,_ZThn24_N7ee517513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51751[0]),
+ (VTBL_ENTRY)&_ZN7ee517513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51751[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee517513barEv,_ZTv0_n24_N7ee517513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517513barEv,_ZTv0_n16_N7ee517513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee51751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee51751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee51751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee51751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee51751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee51751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee51751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee51751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee51751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee51751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee51751[] = {
+ {&(_ZTV7ee51751[6]), 6,29},
+ {&(_ZTV7ee51751[12]), 12,29},
+ {&(_ZTV7ee51751[18]), 18,29},
+ {&(_ZTV7ee51751[24]), 24,29},
+ {&(_ZTV7ee51751[28]), 28,29},
+ {&(_tg__ZTV6dd1751__7ee51751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee51751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee51751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee51751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee51751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee51751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee51751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee51751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee51751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee51751[];
+extern VTBL_ENTRY _ZTV7ee51751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51751[];
+static VTBL_ENTRY alt_thunk_names922[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517513barEv,_ZTv0_n16_N7ee517513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517513barEv,_ZThn24_N7ee517513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee517513barEv,_ZTv0_n24_N7ee517513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517513barEv,_ZThn16_N7ee517513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51751 = { "ee51751", // class name
+ bases_ee51751, 4,
+ &(vtc_ee51751[0]), // expected_vtbl_contents
+ &(vtt_ee51751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51751),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names922,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61751 : dd1751 {
+ int e;
+ virtual void foo(); // _ZN7ee617513fooEv
+ virtual void bar(); // _ZN7ee617513barEv
+ ~ee61751(); // tgen
+ ee61751(); // tgen
+};
+//SIG(1 ee61751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61751 ::foo(){vfunc_called(this, "_ZN7ee617513fooEv");}
+void ee61751 ::bar(){vfunc_called(this, "_ZN7ee617513barEv");}
+ee61751 ::~ee61751(){ note_dtor("ee61751", this);} // tgen
+ee61751 ::ee61751(){ note_ctor("ee61751", this);} // tgen
+
+static void Test_ee61751()
+{
+ extern Class_Descriptor cd_ee61751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61751, buf);
+ ee61751 *dp, &lv = *(dp=new (buf) ee61751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee61751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee61751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(16,12), "ee61751");
+ check_base_class_offset(lv, (dd1751*), 0, "ee61751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61751.e");
+ test_class_info(&lv, &cd_ee61751);
+ dp->~ee61751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61751(Test_ee61751, "ee61751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61751C1Ev();
+extern void _ZN7ee61751D1Ev();
+Name_Map name_map_ee61751[] = {
+ NSPAIR(_ZN7ee61751C1Ev),
+ NSPAIR(_ZN7ee61751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee61751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61751[];
+extern void _ZN7ee617513fooEv();
+extern void _ZN7ee617513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee617513fooEv,_ZTv0_n20_N7ee617513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617513fooEv,_ZThn12_N7ee617513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee617513barEv,_ZTv0_n24_N7ee617513barEv)();
+extern void ABISELECT(_ZThn16_N7ee617513barEv,_ZThn12_N7ee617513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617513barEv,_ZTv0_n16_N7ee617513barEv)();
+extern void ABISELECT(_ZThn32_N7ee617513barEv,_ZThn20_N7ee617513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617513fooEv,_ZTv0_n12_N7ee617513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee617513fooEv,_ZThn28_N7ee617513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61751[0]),
+ (VTBL_ENTRY)&_ZN7ee617513fooEv,
+ (VTBL_ENTRY)&_ZN7ee617513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617513fooEv,_ZTv0_n20_N7ee617513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee617513barEv,_ZTv0_n24_N7ee617513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617513barEv,_ZTv0_n16_N7ee617513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617513fooEv,_ZTv0_n12_N7ee617513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee61751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee61751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee61751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee61751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee61751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee61751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee61751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee61751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee61751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee61751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee61751[] = {
+ {&(_ZTV7ee61751[5]), 5,24},
+ {&(_tg__ZTV6dd1751__7ee61751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee61751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee61751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee61751[3]), 3,4},
+ {&(_ZTV7ee61751[13]), 13,24},
+ {&(_ZTV7ee61751[19]), 19,24},
+ {&(_ZTV7ee61751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee61751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee61751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee61751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee61751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee61751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee61751[];
+extern VTBL_ENTRY _ZTV7ee61751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61751[];
+static VTBL_ENTRY alt_thunk_names923[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617513fooEv,_ZTv0_n12_N7ee617513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee617513fooEv,_ZThn28_N7ee617513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617513barEv,_ZTv0_n16_N7ee617513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617513barEv,_ZThn20_N7ee617513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee617513barEv,_ZTv0_n24_N7ee617513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617513barEv,_ZThn12_N7ee617513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617513fooEv,_ZTv0_n20_N7ee617513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617513fooEv,_ZThn12_N7ee617513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61751 = { "ee61751", // class name
+ bases_ee61751, 4,
+ &(vtc_ee61751[0]), // expected_vtbl_contents
+ &(vtt_ee61751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names923,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71751 : virtual dd1751 {
+ int e;
+ virtual void foo(); // _ZN7ee717513fooEv
+ virtual void bar(); // _ZN7ee717513barEv
+ ~ee71751(); // tgen
+ ee71751(); // tgen
+};
+//SIG(1 ee71751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71751 ::foo(){vfunc_called(this, "_ZN7ee717513fooEv");}
+void ee71751 ::bar(){vfunc_called(this, "_ZN7ee717513barEv");}
+ee71751 ::~ee71751(){ note_dtor("ee71751", this);} // tgen
+ee71751 ::ee71751(){ note_ctor("ee71751", this);} // tgen
+
+static void Test_ee71751()
+{
+ extern Class_Descriptor cd_ee71751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71751, buf);
+ ee71751 *dp, &lv = *(dp=new (buf) ee71751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee71751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee71751");
+ check_base_class_offset(lv, (cc751*)(dd1751*), ABISELECT(32,16), "ee71751");
+ check_base_class_offset(lv, (dd1751*), ABISELECT(16,8), "ee71751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71751.e");
+ test_class_info(&lv, &cd_ee71751);
+ dp->~ee71751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71751(Test_ee71751, "ee71751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71751C1Ev();
+extern void _ZN7ee71751D1Ev();
+Name_Map name_map_ee71751[] = {
+ NSPAIR(_ZN7ee71751C1Ev),
+ NSPAIR(_ZN7ee71751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd1751;
+extern VTBL_ENTRY _ZTI6dd1751[];
+extern VTBL_ENTRY _ZTV6dd1751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1751[];
+static Base_Class bases_ee71751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1751, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71751[];
+extern void _ZN7ee717513fooEv();
+extern void _ZN7ee717513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee717513fooEv,_ZTv0_n20_N7ee717513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717513fooEv,_ZThn16_N7ee717513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee717513barEv,_ZTv0_n24_N7ee717513barEv)();
+extern void ABISELECT(_ZThn32_N7ee717513barEv,_ZThn16_N7ee717513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717513barEv,_ZTv0_n16_N7ee717513barEv)();
+extern void ABISELECT(_ZThn48_N7ee717513barEv,_ZThn24_N7ee717513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717513fooEv,_ZTv0_n12_N7ee717513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee717513fooEv,_ZThn32_N7ee717513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71751[0]),
+ (VTBL_ENTRY)&_ZN7ee717513fooEv,
+ (VTBL_ENTRY)&_ZN7ee717513barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71751[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717513fooEv,_ZTv0_n20_N7ee717513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee717513barEv,_ZTv0_n24_N7ee717513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717513barEv,_ZTv0_n16_N7ee717513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717513fooEv,_ZTv0_n12_N7ee717513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee71751[];
+static VTBL_ENTRY _tg__ZTV6dd1751__7ee71751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd1751__7ee71751[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd1751__7ee71751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd1751__7ee71751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee71751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee71751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee71751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee71751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee71751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee71751[] = {
+ {&(_ZTV7ee71751[6]), 6,30},
+ {&(_ZTV7ee71751[13]), 13,30},
+ {&(_ZTV7ee71751[19]), 19,30},
+ {&(_ZTV7ee71751[25]), 25,30},
+ {&(_ZTV7ee71751[29]), 29,30},
+ {&(_tg__ZTV6dd1751__7ee71751[5]), 5,5},
+ {&(_tg__ZTV5cc751__6dd1751__7ee71751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd1751__7ee71751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd1751__7ee71751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee71751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee71751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee71751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee71751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee71751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee71751[];
+extern VTBL_ENTRY _ZTV7ee71751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71751[];
+static VTBL_ENTRY alt_thunk_names924[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717513fooEv,_ZTv0_n12_N7ee717513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee717513fooEv,_ZThn32_N7ee717513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717513barEv,_ZTv0_n16_N7ee717513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717513barEv,_ZThn24_N7ee717513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee717513barEv,_ZTv0_n24_N7ee717513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717513barEv,_ZThn16_N7ee717513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717513fooEv,_ZTv0_n20_N7ee717513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717513fooEv,_ZThn16_N7ee717513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71751 = { "ee71751", // class name
+ bases_ee71751, 4,
+ &(vtc_ee71751[0]), // expected_vtbl_contents
+ &(vtt_ee71751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71751),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names924,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2751 : cc751 {
+ int d;
+ virtual void foo(); // _ZN6dd27513fooEv
+ ~dd2751(); // tgen
+ dd2751(); // tgen
+};
+//SIG(-1 dd2751) C1{ BC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2751 ::foo(){vfunc_called(this, "_ZN6dd27513fooEv");}
+dd2751 ::~dd2751(){ note_dtor("dd2751", this);} // tgen
+dd2751 ::dd2751(){ note_ctor("dd2751", this);} // tgen
+
+static void Test_dd2751()
+{
+ extern Class_Descriptor cd_dd2751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2751, buf);
+ dd2751 *dp, &lv = *(dp=new (buf) dd2751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd2751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(16,12), "dd2751");
+ check_base_class_offset(lv, (cc751*), 0, "dd2751");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2751.d");
+ test_class_info(&lv, &cd_dd2751);
+ dp->~dd2751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2751(Test_dd2751, "dd2751", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2751C1Ev();
+extern void _ZN6dd2751D1Ev();
+Name_Map name_map_dd2751[] = {
+ NSPAIR(_ZN6dd2751C1Ev),
+ NSPAIR(_ZN6dd2751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd2751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd2751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd2751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd2751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd2751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd2751[] = {
+ {&(_ZTV6dd2751[4]), 4,15},
+ {&(_tg__ZTV5cc751__6dd2751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd2751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd2751[3]), 3,4},
+ {&(_ZTV6dd2751[10]), 10,15},
+ {&(_ZTV6dd2751[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd2751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd2751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static VTBL_ENTRY alt_thunk_names925[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2751 = { "dd2751", // class name
+ bases_dd2751, 3,
+ &(vtc_dd2751[0]), // expected_vtbl_contents
+ &(vtt_dd2751[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2751),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names925,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02751 : dd2751 {
+ int e;
+ ~ee02751(); // tgen
+ ee02751(); // tgen
+};
+//SIG(1 ee02751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02751 ::~ee02751(){ note_dtor("ee02751", this);} // tgen
+ee02751 ::ee02751(){ note_ctor("ee02751", this);} // tgen
+
+static void Test_ee02751()
+{
+ extern Class_Descriptor cd_ee02751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02751, buf);
+ ee02751 *dp, &lv = *(dp=new (buf) ee02751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee02751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(24,16), "ee02751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), 0, "ee02751");
+ check_base_class_offset(lv, (dd2751*), 0, "ee02751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02751.e");
+ test_class_info(&lv, &cd_ee02751);
+ dp->~ee02751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02751(Test_ee02751, "ee02751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02751C1Ev();
+extern void _ZN7ee02751D1Ev();
+Name_Map name_map_ee02751[] = {
+ NSPAIR(_ZN7ee02751C1Ev),
+ NSPAIR(_ZN7ee02751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee02751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee02751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee02751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee02751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee02751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee02751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee02751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee02751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee02751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee02751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee02751[] = {
+ {&(_ZTV7ee02751[4]), 4,15},
+ {&(_tg__ZTV6dd2751__7ee02751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee02751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee02751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee02751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee02751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee02751[3]), 3,4},
+ {&(_ZTV7ee02751[10]), 10,15},
+ {&(_ZTV7ee02751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee02751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee02751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee02751[];
+extern VTBL_ENTRY _ZTV7ee02751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02751[];
+static VTBL_ENTRY alt_thunk_names926[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02751 = { "ee02751", // class name
+ bases_ee02751, 4,
+ &(vtc_ee02751[0]), // expected_vtbl_contents
+ &(vtt_ee02751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names926,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12751 : virtual dd2751 {
+ int e;
+ ~ee12751(); // tgen
+ ee12751(); // tgen
+};
+//SIG(1 ee12751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12751 ::~ee12751(){ note_dtor("ee12751", this);} // tgen
+ee12751 ::ee12751(){ note_ctor("ee12751", this);} // tgen
+
+static void Test_ee12751()
+{
+ extern Class_Descriptor cd_ee12751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12751, buf);
+ ee12751 *dp, &lv = *(dp=new (buf) ee12751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee12751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(32,20), "ee12751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), ABISELECT(16,8), "ee12751");
+ check_base_class_offset(lv, (dd2751*), ABISELECT(16,8), "ee12751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12751.e");
+ test_class_info(&lv, &cd_ee12751);
+ dp->~ee12751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12751(Test_ee12751, "ee12751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12751C1Ev();
+extern void _ZN7ee12751D1Ev();
+Name_Map name_map_ee12751[] = {
+ NSPAIR(_ZN7ee12751C1Ev),
+ NSPAIR(_ZN7ee12751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee12751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12751[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee12751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee12751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee12751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee12751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee12751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee12751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee12751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee12751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee12751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee12751[] = {
+ {&(_ZTV7ee12751[5]), 5,22},
+ {&(_ZTV7ee12751[11]), 11,22},
+ {&(_ZTV7ee12751[17]), 17,22},
+ {&(_ZTV7ee12751[21]), 21,22},
+ {&(_tg__ZTV6dd2751__7ee12751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee12751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee12751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee12751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee12751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee12751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee12751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee12751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee12751[];
+extern VTBL_ENTRY _ZTV7ee12751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12751[];
+static VTBL_ENTRY alt_thunk_names927[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12751 = { "ee12751", // class name
+ bases_ee12751, 4,
+ &(vtc_ee12751[0]), // expected_vtbl_contents
+ &(vtt_ee12751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names927,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22751 : dd2751 {
+ int e;
+ virtual void foo(); // _ZN7ee227513fooEv
+ ~ee22751(); // tgen
+ ee22751(); // tgen
+};
+//SIG(1 ee22751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22751 ::foo(){vfunc_called(this, "_ZN7ee227513fooEv");}
+ee22751 ::~ee22751(){ note_dtor("ee22751", this);} // tgen
+ee22751 ::ee22751(){ note_ctor("ee22751", this);} // tgen
+
+static void Test_ee22751()
+{
+ extern Class_Descriptor cd_ee22751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22751, buf);
+ ee22751 *dp, &lv = *(dp=new (buf) ee22751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee22751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(24,16), "ee22751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), 0, "ee22751");
+ check_base_class_offset(lv, (dd2751*), 0, "ee22751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22751.e");
+ test_class_info(&lv, &cd_ee22751);
+ dp->~ee22751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22751(Test_ee22751, "ee22751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22751C1Ev();
+extern void _ZN7ee22751D1Ev();
+Name_Map name_map_ee22751[] = {
+ NSPAIR(_ZN7ee22751C1Ev),
+ NSPAIR(_ZN7ee22751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee22751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22751[];
+extern void _ZN7ee227513fooEv();
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee227513fooEv,_ZTv0_n12_N7ee227513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee227513fooEv,_ZThn24_N7ee227513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22751[0]),
+ (VTBL_ENTRY)&_ZN7ee227513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227513fooEv,_ZTv0_n12_N7ee227513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee22751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee22751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee22751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee22751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee22751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee22751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee22751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee22751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee22751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee22751[] = {
+ {&(_ZTV7ee22751[4]), 4,15},
+ {&(_tg__ZTV6dd2751__7ee22751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee22751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee22751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee22751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee22751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee22751[3]), 3,4},
+ {&(_ZTV7ee22751[10]), 10,15},
+ {&(_ZTV7ee22751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee22751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee22751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee22751[];
+extern VTBL_ENTRY _ZTV7ee22751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22751[];
+static VTBL_ENTRY alt_thunk_names928[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227513fooEv,_ZTv0_n12_N7ee227513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee227513fooEv,_ZThn24_N7ee227513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22751 = { "ee22751", // class name
+ bases_ee22751, 4,
+ &(vtc_ee22751[0]), // expected_vtbl_contents
+ &(vtt_ee22751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names928,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32751 : virtual dd2751 {
+ int e;
+ virtual void foo(); // _ZN7ee327513fooEv
+ ~ee32751(); // tgen
+ ee32751(); // tgen
+};
+//SIG(1 ee32751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32751 ::foo(){vfunc_called(this, "_ZN7ee327513fooEv");}
+ee32751 ::~ee32751(){ note_dtor("ee32751", this);} // tgen
+ee32751 ::ee32751(){ note_ctor("ee32751", this);} // tgen
+
+static void Test_ee32751()
+{
+ extern Class_Descriptor cd_ee32751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32751, buf);
+ ee32751 *dp, &lv = *(dp=new (buf) ee32751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee32751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(32,20), "ee32751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), ABISELECT(16,8), "ee32751");
+ check_base_class_offset(lv, (dd2751*), ABISELECT(16,8), "ee32751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32751.e");
+ test_class_info(&lv, &cd_ee32751);
+ dp->~ee32751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32751(Test_ee32751, "ee32751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32751C1Ev();
+extern void _ZN7ee32751D1Ev();
+Name_Map name_map_ee32751[] = {
+ NSPAIR(_ZN7ee32751C1Ev),
+ NSPAIR(_ZN7ee32751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee32751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32751[];
+extern void _ZN7ee327513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee327513fooEv,_ZTv0_n20_N7ee327513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327513fooEv,_ZThn8_N7ee327513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee327513fooEv,_ZTv0_n12_N7ee327513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee327513fooEv,_ZThn28_N7ee327513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32751[0]),
+ (VTBL_ENTRY)&_ZN7ee327513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee327513fooEv,_ZTv0_n20_N7ee327513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327513fooEv,_ZTv0_n12_N7ee327513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee32751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee32751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee32751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee32751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee32751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee32751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee32751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee32751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee32751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee32751[] = {
+ {&(_ZTV7ee32751[5]), 5,23},
+ {&(_ZTV7ee32751[12]), 12,23},
+ {&(_ZTV7ee32751[18]), 18,23},
+ {&(_ZTV7ee32751[22]), 22,23},
+ {&(_tg__ZTV6dd2751__7ee32751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee32751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee32751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee32751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee32751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee32751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee32751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee32751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee32751[];
+extern VTBL_ENTRY _ZTV7ee32751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32751[];
+static VTBL_ENTRY alt_thunk_names929[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327513fooEv,_ZTv0_n12_N7ee327513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee327513fooEv,_ZThn28_N7ee327513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee327513fooEv,_ZTv0_n20_N7ee327513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327513fooEv,_ZThn8_N7ee327513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32751 = { "ee32751", // class name
+ bases_ee32751, 4,
+ &(vtc_ee32751[0]), // expected_vtbl_contents
+ &(vtt_ee32751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names929,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42751 : dd2751 {
+ int e;
+ virtual void bar(); // _ZN7ee427513barEv
+ ~ee42751(); // tgen
+ ee42751(); // tgen
+};
+//SIG(1 ee42751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42751 ::bar(){vfunc_called(this, "_ZN7ee427513barEv");}
+ee42751 ::~ee42751(){ note_dtor("ee42751", this);} // tgen
+ee42751 ::ee42751(){ note_ctor("ee42751", this);} // tgen
+
+static void Test_ee42751()
+{
+ extern Class_Descriptor cd_ee42751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42751, buf);
+ ee42751 *dp, &lv = *(dp=new (buf) ee42751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee42751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(24,16), "ee42751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), 0, "ee42751");
+ check_base_class_offset(lv, (dd2751*), 0, "ee42751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42751.e");
+ test_class_info(&lv, &cd_ee42751);
+ dp->~ee42751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42751(Test_ee42751, "ee42751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42751C1Ev();
+extern void _ZN7ee42751D1Ev();
+Name_Map name_map_ee42751[] = {
+ NSPAIR(_ZN7ee42751C1Ev),
+ NSPAIR(_ZN7ee42751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee42751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN7ee427513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee427513barEv,_ZTv0_n16_N7ee427513barEv)();
+extern void ABISELECT(_ZThn24_N7ee427513barEv,_ZThn16_N7ee427513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN7ee427513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427513barEv,_ZTv0_n16_N7ee427513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee42751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee42751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee42751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee42751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee42751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee42751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee42751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee42751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee42751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee42751[] = {
+ {&(_ZTV7ee42751[4]), 4,15},
+ {&(_tg__ZTV6dd2751__7ee42751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee42751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee42751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee42751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee42751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee42751[3]), 3,4},
+ {&(_ZTV7ee42751[10]), 10,15},
+ {&(_ZTV7ee42751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee42751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee42751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee42751[];
+extern VTBL_ENTRY _ZTV7ee42751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42751[];
+static VTBL_ENTRY alt_thunk_names930[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427513barEv,_ZTv0_n16_N7ee427513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427513barEv,_ZThn16_N7ee427513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42751 = { "ee42751", // class name
+ bases_ee42751, 4,
+ &(vtc_ee42751[0]), // expected_vtbl_contents
+ &(vtt_ee42751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names930,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52751 : virtual dd2751 {
+ int e;
+ virtual void bar(); // _ZN7ee527513barEv
+ ~ee52751(); // tgen
+ ee52751(); // tgen
+};
+//SIG(1 ee52751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52751 ::bar(){vfunc_called(this, "_ZN7ee527513barEv");}
+ee52751 ::~ee52751(){ note_dtor("ee52751", this);} // tgen
+ee52751 ::ee52751(){ note_ctor("ee52751", this);} // tgen
+
+static void Test_ee52751()
+{
+ extern Class_Descriptor cd_ee52751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52751, buf);
+ ee52751 *dp, &lv = *(dp=new (buf) ee52751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee52751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(32,20), "ee52751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), ABISELECT(16,8), "ee52751");
+ check_base_class_offset(lv, (dd2751*), ABISELECT(16,8), "ee52751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52751.e");
+ test_class_info(&lv, &cd_ee52751);
+ dp->~ee52751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52751(Test_ee52751, "ee52751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52751C1Ev();
+extern void _ZN7ee52751D1Ev();
+Name_Map name_map_ee52751[] = {
+ NSPAIR(_ZN7ee52751C1Ev),
+ NSPAIR(_ZN7ee52751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee52751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52751[];
+extern void _ZN7ee527513barEv();
+extern void _ZN6dd27513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee527513barEv,_ZTv0_n24_N7ee527513barEv)();
+extern void ABISELECT(_ZThn16_N7ee527513barEv,_ZThn8_N7ee527513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527513barEv,_ZTv0_n16_N7ee527513barEv)();
+extern void ABISELECT(_ZThn32_N7ee527513barEv,_ZThn20_N7ee527513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52751[0]),
+ (VTBL_ENTRY)&_ZN7ee527513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee527513barEv,_ZTv0_n24_N7ee527513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527513barEv,_ZTv0_n16_N7ee527513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee52751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee52751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee52751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee52751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee52751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee52751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee52751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee52751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee52751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee52751[] = {
+ {&(_ZTV7ee52751[5]), 5,23},
+ {&(_ZTV7ee52751[12]), 12,23},
+ {&(_ZTV7ee52751[18]), 18,23},
+ {&(_ZTV7ee52751[22]), 22,23},
+ {&(_tg__ZTV6dd2751__7ee52751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee52751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee52751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee52751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee52751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee52751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee52751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee52751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee52751[];
+extern VTBL_ENTRY _ZTV7ee52751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52751[];
+static VTBL_ENTRY alt_thunk_names931[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527513barEv,_ZTv0_n16_N7ee527513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527513barEv,_ZThn20_N7ee527513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee527513barEv,_ZTv0_n24_N7ee527513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527513barEv,_ZThn8_N7ee527513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52751 = { "ee52751", // class name
+ bases_ee52751, 4,
+ &(vtc_ee52751[0]), // expected_vtbl_contents
+ &(vtt_ee52751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names931,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62751 : dd2751 {
+ int e;
+ virtual void foo(); // _ZN7ee627513fooEv
+ virtual void bar(); // _ZN7ee627513barEv
+ ~ee62751(); // tgen
+ ee62751(); // tgen
+};
+//SIG(1 ee62751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62751 ::foo(){vfunc_called(this, "_ZN7ee627513fooEv");}
+void ee62751 ::bar(){vfunc_called(this, "_ZN7ee627513barEv");}
+ee62751 ::~ee62751(){ note_dtor("ee62751", this);} // tgen
+ee62751 ::ee62751(){ note_ctor("ee62751", this);} // tgen
+
+static void Test_ee62751()
+{
+ extern Class_Descriptor cd_ee62751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62751, buf);
+ ee62751 *dp, &lv = *(dp=new (buf) ee62751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee62751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(24,16), "ee62751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), 0, "ee62751");
+ check_base_class_offset(lv, (dd2751*), 0, "ee62751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62751.e");
+ test_class_info(&lv, &cd_ee62751);
+ dp->~ee62751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62751(Test_ee62751, "ee62751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62751C1Ev();
+extern void _ZN7ee62751D1Ev();
+Name_Map name_map_ee62751[] = {
+ NSPAIR(_ZN7ee62751C1Ev),
+ NSPAIR(_ZN7ee62751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee62751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62751[];
+extern void _ZN7ee627513fooEv();
+extern void _ZN7ee627513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee627513barEv,_ZTv0_n16_N7ee627513barEv)();
+extern void ABISELECT(_ZThn24_N7ee627513barEv,_ZThn16_N7ee627513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee627513fooEv,_ZTv0_n12_N7ee627513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee627513fooEv,_ZThn24_N7ee627513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62751[0]),
+ (VTBL_ENTRY)&_ZN7ee627513fooEv,
+ (VTBL_ENTRY)&_ZN7ee627513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627513barEv,_ZTv0_n16_N7ee627513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627513fooEv,_ZTv0_n12_N7ee627513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee62751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee62751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee62751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee62751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee62751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee62751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee62751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee62751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee62751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee62751[] = {
+ {&(_ZTV7ee62751[4]), 4,15},
+ {&(_tg__ZTV6dd2751__7ee62751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee62751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee62751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee62751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee62751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee62751[3]), 3,4},
+ {&(_ZTV7ee62751[10]), 10,15},
+ {&(_ZTV7ee62751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee62751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee62751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee62751[];
+extern VTBL_ENTRY _ZTV7ee62751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62751[];
+static VTBL_ENTRY alt_thunk_names932[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27513fooEv,_ZThn24_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627513fooEv,_ZTv0_n12_N7ee627513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee627513fooEv,_ZThn24_N7ee627513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627513barEv,_ZTv0_n16_N7ee627513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627513barEv,_ZThn16_N7ee627513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62751 = { "ee62751", // class name
+ bases_ee62751, 4,
+ &(vtc_ee62751[0]), // expected_vtbl_contents
+ &(vtt_ee62751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names932,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72751 : virtual dd2751 {
+ int e;
+ virtual void foo(); // _ZN7ee727513fooEv
+ virtual void bar(); // _ZN7ee727513barEv
+ ~ee72751(); // tgen
+ ee72751(); // tgen
+};
+//SIG(1 ee72751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72751 ::foo(){vfunc_called(this, "_ZN7ee727513fooEv");}
+void ee72751 ::bar(){vfunc_called(this, "_ZN7ee727513barEv");}
+ee72751 ::~ee72751(){ note_dtor("ee72751", this);} // tgen
+ee72751 ::ee72751(){ note_ctor("ee72751", this);} // tgen
+
+static void Test_ee72751()
+{
+ extern Class_Descriptor cd_ee72751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72751, buf);
+ ee72751 *dp, &lv = *(dp=new (buf) ee72751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee72751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd2751*), ABISELECT(32,20), "ee72751");
+ check_base_class_offset(lv, (cc751*)(dd2751*), ABISELECT(16,8), "ee72751");
+ check_base_class_offset(lv, (dd2751*), ABISELECT(16,8), "ee72751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72751.e");
+ test_class_info(&lv, &cd_ee72751);
+ dp->~ee72751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72751(Test_ee72751, "ee72751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72751C1Ev();
+extern void _ZN7ee72751D1Ev();
+Name_Map name_map_ee72751[] = {
+ NSPAIR(_ZN7ee72751C1Ev),
+ NSPAIR(_ZN7ee72751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd2751;
+extern VTBL_ENTRY _ZTI6dd2751[];
+extern VTBL_ENTRY _ZTV6dd2751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2751[];
+static Base_Class bases_ee72751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72751[];
+extern void _ZN7ee727513fooEv();
+extern void _ZN7ee727513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee727513fooEv,_ZTv0_n20_N7ee727513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727513fooEv,_ZThn8_N7ee727513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee727513barEv,_ZTv0_n24_N7ee727513barEv)();
+extern void ABISELECT(_ZThn16_N7ee727513barEv,_ZThn8_N7ee727513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727513barEv,_ZTv0_n16_N7ee727513barEv)();
+extern void ABISELECT(_ZThn32_N7ee727513barEv,_ZThn20_N7ee727513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727513fooEv,_ZTv0_n12_N7ee727513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee727513fooEv,_ZThn28_N7ee727513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72751[0]),
+ (VTBL_ENTRY)&_ZN7ee727513fooEv,
+ (VTBL_ENTRY)&_ZN7ee727513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727513fooEv,_ZTv0_n20_N7ee727513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee727513barEv,_ZTv0_n24_N7ee727513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727513barEv,_ZTv0_n16_N7ee727513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727513fooEv,_ZTv0_n12_N7ee727513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee72751[];
+extern void _ZN6dd27513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV6dd2751__7ee72751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&_ZN6dd27513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd2751__7ee72751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd2751__7ee72751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd2751__7ee72751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd2751__7ee72751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd2751__7ee72751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee72751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee72751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee72751[] = {
+ {&(_ZTV7ee72751[5]), 5,24},
+ {&(_ZTV7ee72751[13]), 13,24},
+ {&(_ZTV7ee72751[19]), 19,24},
+ {&(_ZTV7ee72751[23]), 23,24},
+ {&(_tg__ZTV6dd2751__7ee72751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd2751__7ee72751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd2751__7ee72751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd2751__7ee72751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd2751__7ee72751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd2751__7ee72751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee72751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee72751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee72751[];
+extern VTBL_ENTRY _ZTV7ee72751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72751[];
+static VTBL_ENTRY alt_thunk_names933[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27513fooEv,_ZTv0_n12_N6dd27513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27513fooEv,_ZThn20_N6dd27513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727513fooEv,_ZTv0_n12_N7ee727513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee727513fooEv,_ZThn28_N7ee727513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727513barEv,_ZTv0_n16_N7ee727513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727513barEv,_ZThn20_N7ee727513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee727513barEv,_ZTv0_n24_N7ee727513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727513barEv,_ZThn8_N7ee727513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727513fooEv,_ZTv0_n20_N7ee727513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727513fooEv,_ZThn8_N7ee727513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72751 = { "ee72751", // class name
+ bases_ee72751, 4,
+ &(vtc_ee72751[0]), // expected_vtbl_contents
+ &(vtt_ee72751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names933,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3751 : virtual cc751 {
+ int d;
+ virtual void foo(); // _ZN6dd37513fooEv
+ ~dd3751(); // tgen
+ dd3751(); // tgen
+};
+//SIG(-1 dd3751) C1{ VBC2{ VBC3{ VBC4{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3751 ::foo(){vfunc_called(this, "_ZN6dd37513fooEv");}
+dd3751 ::~dd3751(){ note_dtor("dd3751", this);} // tgen
+dd3751 ::dd3751(){ note_ctor("dd3751", this);} // tgen
+
+static void Test_dd3751()
+{
+ extern Class_Descriptor cd_dd3751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3751, buf);
+ dd3751 *dp, &lv = *(dp=new (buf) dd3751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd3751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,16), "dd3751");
+ check_base_class_offset(lv, (cc751*), ABISELECT(16,8), "dd3751");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3751.d");
+ test_class_info(&lv, &cd_dd3751);
+ dp->~dd3751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3751(Test_dd3751, "dd3751", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3751C1Ev();
+extern void _ZN6dd3751D1Ev();
+Name_Map name_map_dd3751[] = {
+ NSPAIR(_ZN6dd3751C1Ev),
+ NSPAIR(_ZN6dd3751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd3751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd3751[];
+extern void _ZN6dd37513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd3751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd3751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd3751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd3751[] = {
+ {&(_ZTV6dd3751[5]), 5,23},
+ {&(_ZTV6dd3751[12]), 12,23},
+ {&(_ZTV6dd3751[18]), 18,23},
+ {&(_ZTV6dd3751[22]), 22,23},
+ {&(_tg__ZTV5cc751__6dd3751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd3751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd3751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd3751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd3751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static VTBL_ENTRY alt_thunk_names934[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3751 = { "dd3751", // class name
+ bases_dd3751, 3,
+ &(vtc_dd3751[0]), // expected_vtbl_contents
+ &(vtt_dd3751[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3751),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names934,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03751 : dd3751 {
+ int e;
+ ~ee03751(); // tgen
+ ee03751(); // tgen
+};
+//SIG(1 ee03751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03751 ::~ee03751(){ note_dtor("ee03751", this);} // tgen
+ee03751 ::ee03751(){ note_ctor("ee03751", this);} // tgen
+
+static void Test_ee03751()
+{
+ extern Class_Descriptor cd_ee03751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03751, buf);
+ ee03751 *dp, &lv = *(dp=new (buf) ee03751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee03751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee03751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(16,12), "ee03751");
+ check_base_class_offset(lv, (dd3751*), 0, "ee03751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03751.e");
+ test_class_info(&lv, &cd_ee03751);
+ dp->~ee03751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03751(Test_ee03751, "ee03751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03751C1Ev();
+extern void _ZN7ee03751D1Ev();
+Name_Map name_map_ee03751[] = {
+ NSPAIR(_ZN7ee03751C1Ev),
+ NSPAIR(_ZN7ee03751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee03751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03751[];
+extern void _ZN6dd37513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee03751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee03751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee03751[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee03751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee03751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee03751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee03751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee03751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee03751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee03751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee03751[] = {
+ {&(_ZTV7ee03751[5]), 5,23},
+ {&(_tg__ZTV6dd3751__7ee03751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee03751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee03751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee03751[3]), 3,4},
+ {&(_ZTV7ee03751[12]), 12,23},
+ {&(_ZTV7ee03751[18]), 18,23},
+ {&(_ZTV7ee03751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee03751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee03751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee03751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee03751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee03751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee03751[];
+extern VTBL_ENTRY _ZTV7ee03751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03751[];
+static VTBL_ENTRY alt_thunk_names935[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03751 = { "ee03751", // class name
+ bases_ee03751, 4,
+ &(vtc_ee03751[0]), // expected_vtbl_contents
+ &(vtt_ee03751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names935,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13751 : virtual dd3751 {
+ int e;
+ ~ee13751(); // tgen
+ ee13751(); // tgen
+};
+//SIG(1 ee13751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13751 ::~ee13751(){ note_dtor("ee13751", this);} // tgen
+ee13751 ::ee13751(){ note_ctor("ee13751", this);} // tgen
+
+static void Test_ee13751()
+{
+ extern Class_Descriptor cd_ee13751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13751, buf);
+ ee13751 *dp, &lv = *(dp=new (buf) ee13751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee13751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee13751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(32,16), "ee13751");
+ check_base_class_offset(lv, (dd3751*), ABISELECT(16,8), "ee13751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13751.e");
+ test_class_info(&lv, &cd_ee13751);
+ dp->~ee13751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13751(Test_ee13751, "ee13751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13751C1Ev();
+extern void _ZN7ee13751D1Ev();
+Name_Map name_map_ee13751[] = {
+ NSPAIR(_ZN7ee13751C1Ev),
+ NSPAIR(_ZN7ee13751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee13751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13751[];
+extern void _ZN6dd37513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13751[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee13751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee13751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee13751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee13751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee13751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee13751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee13751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee13751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee13751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee13751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee13751[] = {
+ {&(_ZTV7ee13751[6]), 6,30},
+ {&(_ZTV7ee13751[12]), 12,30},
+ {&(_ZTV7ee13751[19]), 19,30},
+ {&(_ZTV7ee13751[25]), 25,30},
+ {&(_ZTV7ee13751[29]), 29,30},
+ {&(_tg__ZTV6dd3751__7ee13751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee13751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee13751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee13751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee13751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee13751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee13751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee13751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee13751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee13751[];
+extern VTBL_ENTRY _ZTV7ee13751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13751[];
+static VTBL_ENTRY alt_thunk_names936[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13751 = { "ee13751", // class name
+ bases_ee13751, 4,
+ &(vtc_ee13751[0]), // expected_vtbl_contents
+ &(vtt_ee13751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13751),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names936,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23751 : dd3751 {
+ int e;
+ virtual void foo(); // _ZN7ee237513fooEv
+ ~ee23751(); // tgen
+ ee23751(); // tgen
+};
+//SIG(1 ee23751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23751 ::foo(){vfunc_called(this, "_ZN7ee237513fooEv");}
+ee23751 ::~ee23751(){ note_dtor("ee23751", this);} // tgen
+ee23751 ::ee23751(){ note_ctor("ee23751", this);} // tgen
+
+static void Test_ee23751()
+{
+ extern Class_Descriptor cd_ee23751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23751, buf);
+ ee23751 *dp, &lv = *(dp=new (buf) ee23751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee23751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee23751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(16,12), "ee23751");
+ check_base_class_offset(lv, (dd3751*), 0, "ee23751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23751.e");
+ test_class_info(&lv, &cd_ee23751);
+ dp->~ee23751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23751(Test_ee23751, "ee23751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23751C1Ev();
+extern void _ZN7ee23751D1Ev();
+Name_Map name_map_ee23751[] = {
+ NSPAIR(_ZN7ee23751C1Ev),
+ NSPAIR(_ZN7ee23751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee23751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23751[];
+extern void _ZN7ee237513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee237513fooEv,_ZTv0_n20_N7ee237513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237513fooEv,_ZThn12_N7ee237513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee237513fooEv,_ZTv0_n12_N7ee237513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee237513fooEv,_ZThn28_N7ee237513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23751[0]),
+ (VTBL_ENTRY)&_ZN7ee237513fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee237513fooEv,_ZTv0_n20_N7ee237513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237513fooEv,_ZTv0_n12_N7ee237513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee23751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee23751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee23751[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee23751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee23751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee23751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee23751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee23751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee23751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee23751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee23751[] = {
+ {&(_ZTV7ee23751[5]), 5,23},
+ {&(_tg__ZTV6dd3751__7ee23751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee23751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee23751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee23751[3]), 3,4},
+ {&(_ZTV7ee23751[12]), 12,23},
+ {&(_ZTV7ee23751[18]), 18,23},
+ {&(_ZTV7ee23751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee23751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee23751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee23751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee23751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee23751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee23751[];
+extern VTBL_ENTRY _ZTV7ee23751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23751[];
+static VTBL_ENTRY alt_thunk_names937[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237513fooEv,_ZTv0_n12_N7ee237513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee237513fooEv,_ZThn28_N7ee237513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee237513fooEv,_ZTv0_n20_N7ee237513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237513fooEv,_ZThn12_N7ee237513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23751 = { "ee23751", // class name
+ bases_ee23751, 4,
+ &(vtc_ee23751[0]), // expected_vtbl_contents
+ &(vtt_ee23751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names937,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33751 : virtual dd3751 {
+ int e;
+ virtual void foo(); // _ZN7ee337513fooEv
+ ~ee33751(); // tgen
+ ee33751(); // tgen
+};
+//SIG(1 ee33751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33751 ::foo(){vfunc_called(this, "_ZN7ee337513fooEv");}
+ee33751 ::~ee33751(){ note_dtor("ee33751", this);} // tgen
+ee33751 ::ee33751(){ note_ctor("ee33751", this);} // tgen
+
+static void Test_ee33751()
+{
+ extern Class_Descriptor cd_ee33751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33751, buf);
+ ee33751 *dp, &lv = *(dp=new (buf) ee33751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee33751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee33751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(32,16), "ee33751");
+ check_base_class_offset(lv, (dd3751*), ABISELECT(16,8), "ee33751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33751.e");
+ test_class_info(&lv, &cd_ee33751);
+ dp->~ee33751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33751(Test_ee33751, "ee33751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33751C1Ev();
+extern void _ZN7ee33751D1Ev();
+Name_Map name_map_ee33751[] = {
+ NSPAIR(_ZN7ee33751C1Ev),
+ NSPAIR(_ZN7ee33751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee33751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33751[];
+extern void _ZN7ee337513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee337513fooEv,_ZTv0_n24_N7ee337513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337513fooEv,_ZThn8_N7ee337513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee337513fooEv,_ZTv0_n20_N7ee337513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337513fooEv,_ZThn16_N7ee337513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee337513fooEv,_ZTv0_n12_N7ee337513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee337513fooEv,_ZThn32_N7ee337513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33751[0]),
+ (VTBL_ENTRY)&_ZN7ee337513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee337513fooEv,_ZTv0_n24_N7ee337513fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337513fooEv,_ZTv0_n20_N7ee337513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337513fooEv,_ZTv0_n12_N7ee337513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee33751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee33751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee33751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee33751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee33751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee33751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee33751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee33751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee33751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee33751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee33751[] = {
+ {&(_ZTV7ee33751[6]), 6,31},
+ {&(_ZTV7ee33751[13]), 13,31},
+ {&(_ZTV7ee33751[20]), 20,31},
+ {&(_ZTV7ee33751[26]), 26,31},
+ {&(_ZTV7ee33751[30]), 30,31},
+ {&(_tg__ZTV6dd3751__7ee33751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee33751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee33751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee33751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee33751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee33751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee33751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee33751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee33751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee33751[];
+extern VTBL_ENTRY _ZTV7ee33751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33751[];
+static VTBL_ENTRY alt_thunk_names938[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337513fooEv,_ZTv0_n12_N7ee337513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee337513fooEv,_ZThn32_N7ee337513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337513fooEv,_ZTv0_n20_N7ee337513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337513fooEv,_ZThn16_N7ee337513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee337513fooEv,_ZTv0_n24_N7ee337513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337513fooEv,_ZThn8_N7ee337513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33751 = { "ee33751", // class name
+ bases_ee33751, 4,
+ &(vtc_ee33751[0]), // expected_vtbl_contents
+ &(vtt_ee33751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33751),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names938,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43751 : dd3751 {
+ int e;
+ virtual void bar(); // _ZN7ee437513barEv
+ ~ee43751(); // tgen
+ ee43751(); // tgen
+};
+//SIG(1 ee43751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43751 ::bar(){vfunc_called(this, "_ZN7ee437513barEv");}
+ee43751 ::~ee43751(){ note_dtor("ee43751", this);} // tgen
+ee43751 ::ee43751(){ note_ctor("ee43751", this);} // tgen
+
+static void Test_ee43751()
+{
+ extern Class_Descriptor cd_ee43751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43751, buf);
+ ee43751 *dp, &lv = *(dp=new (buf) ee43751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee43751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee43751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(16,12), "ee43751");
+ check_base_class_offset(lv, (dd3751*), 0, "ee43751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43751.e");
+ test_class_info(&lv, &cd_ee43751);
+ dp->~ee43751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43751(Test_ee43751, "ee43751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43751C1Ev();
+extern void _ZN7ee43751D1Ev();
+Name_Map name_map_ee43751[] = {
+ NSPAIR(_ZN7ee43751C1Ev),
+ NSPAIR(_ZN7ee43751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee43751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43751[];
+extern void _ZN6dd37513fooEv();
+extern void _ZN7ee437513barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee437513barEv,_ZTv0_n24_N7ee437513barEv)();
+extern void ABISELECT(_ZThn16_N7ee437513barEv,_ZThn12_N7ee437513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437513barEv,_ZTv0_n16_N7ee437513barEv)();
+extern void ABISELECT(_ZThn32_N7ee437513barEv,_ZThn20_N7ee437513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+ (VTBL_ENTRY)&_ZN7ee437513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee437513barEv,_ZTv0_n24_N7ee437513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437513barEv,_ZTv0_n16_N7ee437513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee43751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee43751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee43751[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee43751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee43751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee43751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee43751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee43751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee43751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee43751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee43751[] = {
+ {&(_ZTV7ee43751[5]), 5,24},
+ {&(_tg__ZTV6dd3751__7ee43751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee43751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee43751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee43751[3]), 3,4},
+ {&(_ZTV7ee43751[13]), 13,24},
+ {&(_ZTV7ee43751[19]), 19,24},
+ {&(_ZTV7ee43751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee43751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee43751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee43751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee43751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee43751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee43751[];
+extern VTBL_ENTRY _ZTV7ee43751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43751[];
+static VTBL_ENTRY alt_thunk_names939[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437513barEv,_ZTv0_n16_N7ee437513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437513barEv,_ZThn20_N7ee437513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee437513barEv,_ZTv0_n24_N7ee437513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437513barEv,_ZThn12_N7ee437513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43751 = { "ee43751", // class name
+ bases_ee43751, 4,
+ &(vtc_ee43751[0]), // expected_vtbl_contents
+ &(vtt_ee43751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names939,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53751 : virtual dd3751 {
+ int e;
+ virtual void bar(); // _ZN7ee537513barEv
+ ~ee53751(); // tgen
+ ee53751(); // tgen
+};
+//SIG(1 ee53751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53751 ::bar(){vfunc_called(this, "_ZN7ee537513barEv");}
+ee53751 ::~ee53751(){ note_dtor("ee53751", this);} // tgen
+ee53751 ::ee53751(){ note_ctor("ee53751", this);} // tgen
+
+static void Test_ee53751()
+{
+ extern Class_Descriptor cd_ee53751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53751, buf);
+ ee53751 *dp, &lv = *(dp=new (buf) ee53751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee53751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee53751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(32,16), "ee53751");
+ check_base_class_offset(lv, (dd3751*), ABISELECT(16,8), "ee53751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53751.e");
+ test_class_info(&lv, &cd_ee53751);
+ dp->~ee53751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53751(Test_ee53751, "ee53751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53751C1Ev();
+extern void _ZN7ee53751D1Ev();
+Name_Map name_map_ee53751[] = {
+ NSPAIR(_ZN7ee53751C1Ev),
+ NSPAIR(_ZN7ee53751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee53751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53751[];
+extern void _ZN7ee537513barEv();
+extern void _ZN6dd37513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee537513barEv,_ZTv0_n24_N7ee537513barEv)();
+extern void ABISELECT(_ZThn32_N7ee537513barEv,_ZThn16_N7ee537513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537513barEv,_ZTv0_n16_N7ee537513barEv)();
+extern void ABISELECT(_ZThn48_N7ee537513barEv,_ZThn24_N7ee537513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53751[0]),
+ (VTBL_ENTRY)&_ZN7ee537513barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee537513barEv,_ZTv0_n24_N7ee537513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537513barEv,_ZTv0_n16_N7ee537513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee53751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee53751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee53751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee53751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee53751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee53751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee53751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee53751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee53751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee53751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee53751[] = {
+ {&(_ZTV7ee53751[6]), 6,31},
+ {&(_ZTV7ee53751[13]), 13,31},
+ {&(_ZTV7ee53751[20]), 20,31},
+ {&(_ZTV7ee53751[26]), 26,31},
+ {&(_ZTV7ee53751[30]), 30,31},
+ {&(_tg__ZTV6dd3751__7ee53751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee53751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee53751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee53751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee53751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee53751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee53751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee53751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee53751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee53751[];
+extern VTBL_ENTRY _ZTV7ee53751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53751[];
+static VTBL_ENTRY alt_thunk_names940[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537513barEv,_ZTv0_n16_N7ee537513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537513barEv,_ZThn24_N7ee537513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee537513barEv,_ZTv0_n24_N7ee537513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537513barEv,_ZThn16_N7ee537513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53751 = { "ee53751", // class name
+ bases_ee53751, 4,
+ &(vtc_ee53751[0]), // expected_vtbl_contents
+ &(vtt_ee53751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53751),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names940,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63751 : dd3751 {
+ int e;
+ virtual void foo(); // _ZN7ee637513fooEv
+ virtual void bar(); // _ZN7ee637513barEv
+ ~ee63751(); // tgen
+ ee63751(); // tgen
+};
+//SIG(1 ee63751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63751 ::foo(){vfunc_called(this, "_ZN7ee637513fooEv");}
+void ee63751 ::bar(){vfunc_called(this, "_ZN7ee637513barEv");}
+ee63751 ::~ee63751(){ note_dtor("ee63751", this);} // tgen
+ee63751 ::ee63751(){ note_ctor("ee63751", this);} // tgen
+
+static void Test_ee63751()
+{
+ extern Class_Descriptor cd_ee63751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63751, buf);
+ ee63751 *dp, &lv = *(dp=new (buf) ee63751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee63751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee63751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(16,12), "ee63751");
+ check_base_class_offset(lv, (dd3751*), 0, "ee63751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63751.e");
+ test_class_info(&lv, &cd_ee63751);
+ dp->~ee63751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63751(Test_ee63751, "ee63751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63751C1Ev();
+extern void _ZN7ee63751D1Ev();
+Name_Map name_map_ee63751[] = {
+ NSPAIR(_ZN7ee63751C1Ev),
+ NSPAIR(_ZN7ee63751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee63751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63751[];
+extern void _ZN7ee637513fooEv();
+extern void _ZN7ee637513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee637513fooEv,_ZTv0_n20_N7ee637513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637513fooEv,_ZThn12_N7ee637513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee637513barEv,_ZTv0_n24_N7ee637513barEv)();
+extern void ABISELECT(_ZThn16_N7ee637513barEv,_ZThn12_N7ee637513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637513barEv,_ZTv0_n16_N7ee637513barEv)();
+extern void ABISELECT(_ZThn32_N7ee637513barEv,_ZThn20_N7ee637513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637513fooEv,_ZTv0_n12_N7ee637513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee637513fooEv,_ZThn28_N7ee637513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63751[0]),
+ (VTBL_ENTRY)&_ZN7ee637513fooEv,
+ (VTBL_ENTRY)&_ZN7ee637513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637513fooEv,_ZTv0_n20_N7ee637513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee637513barEv,_ZTv0_n24_N7ee637513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637513barEv,_ZTv0_n16_N7ee637513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637513fooEv,_ZTv0_n12_N7ee637513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee63751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee63751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee63751[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee63751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee63751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee63751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee63751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee63751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee63751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee63751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee63751[] = {
+ {&(_ZTV7ee63751[5]), 5,24},
+ {&(_tg__ZTV6dd3751__7ee63751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee63751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee63751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee63751[3]), 3,4},
+ {&(_ZTV7ee63751[13]), 13,24},
+ {&(_ZTV7ee63751[19]), 19,24},
+ {&(_ZTV7ee63751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee63751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee63751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee63751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee63751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee63751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee63751[];
+extern VTBL_ENTRY _ZTV7ee63751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63751[];
+static VTBL_ENTRY alt_thunk_names941[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn28_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn12_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637513fooEv,_ZTv0_n12_N7ee637513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee637513fooEv,_ZThn28_N7ee637513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637513barEv,_ZTv0_n16_N7ee637513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637513barEv,_ZThn20_N7ee637513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee637513barEv,_ZTv0_n24_N7ee637513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637513barEv,_ZThn12_N7ee637513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637513fooEv,_ZTv0_n20_N7ee637513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637513fooEv,_ZThn12_N7ee637513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63751 = { "ee63751", // class name
+ bases_ee63751, 4,
+ &(vtc_ee63751[0]), // expected_vtbl_contents
+ &(vtt_ee63751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names941,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73751 : virtual dd3751 {
+ int e;
+ virtual void foo(); // _ZN7ee737513fooEv
+ virtual void bar(); // _ZN7ee737513barEv
+ ~ee73751(); // tgen
+ ee73751(); // tgen
+};
+//SIG(1 ee73751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73751 ::foo(){vfunc_called(this, "_ZN7ee737513fooEv");}
+void ee73751 ::bar(){vfunc_called(this, "_ZN7ee737513barEv");}
+ee73751 ::~ee73751(){ note_dtor("ee73751", this);} // tgen
+ee73751 ::ee73751(){ note_ctor("ee73751", this);} // tgen
+
+static void Test_ee73751()
+{
+ extern Class_Descriptor cd_ee73751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73751, buf);
+ ee73751 *dp, &lv = *(dp=new (buf) ee73751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee73751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee73751");
+ check_base_class_offset(lv, (cc751*)(dd3751*), ABISELECT(32,16), "ee73751");
+ check_base_class_offset(lv, (dd3751*), ABISELECT(16,8), "ee73751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73751.e");
+ test_class_info(&lv, &cd_ee73751);
+ dp->~ee73751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73751(Test_ee73751, "ee73751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73751C1Ev();
+extern void _ZN7ee73751D1Ev();
+Name_Map name_map_ee73751[] = {
+ NSPAIR(_ZN7ee73751C1Ev),
+ NSPAIR(_ZN7ee73751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd3751;
+extern VTBL_ENTRY _ZTI6dd3751[];
+extern VTBL_ENTRY _ZTV6dd3751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3751[];
+static Base_Class bases_ee73751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 28, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3751, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73751[];
+extern void _ZN7ee737513fooEv();
+extern void _ZN7ee737513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee737513fooEv,_ZTv0_n24_N7ee737513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737513fooEv,_ZThn8_N7ee737513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737513fooEv,_ZTv0_n20_N7ee737513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737513fooEv,_ZThn16_N7ee737513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee737513barEv,_ZTv0_n24_N7ee737513barEv)();
+extern void ABISELECT(_ZThn32_N7ee737513barEv,_ZThn16_N7ee737513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737513barEv,_ZTv0_n16_N7ee737513barEv)();
+extern void ABISELECT(_ZThn48_N7ee737513barEv,_ZThn24_N7ee737513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737513fooEv,_ZTv0_n12_N7ee737513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee737513fooEv,_ZThn32_N7ee737513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73751[0]),
+ (VTBL_ENTRY)&_ZN7ee737513fooEv,
+ (VTBL_ENTRY)&_ZN7ee737513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737513fooEv,_ZTv0_n24_N7ee737513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737513fooEv,_ZTv0_n20_N7ee737513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737513barEv,_ZTv0_n24_N7ee737513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737513barEv,_ZTv0_n16_N7ee737513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737513fooEv,_ZTv0_n12_N7ee737513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee73751[];
+extern void _ZN6dd37513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3751__7ee73751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&_ZN6dd37513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv)() __attribute__((weak));
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd3751__7ee73751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv),
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd3751__7ee73751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd3751__7ee73751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee73751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee73751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee73751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee73751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee73751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee73751[] = {
+ {&(_ZTV7ee73751[6]), 6,32},
+ {&(_ZTV7ee73751[14]), 14,32},
+ {&(_ZTV7ee73751[21]), 21,32},
+ {&(_ZTV7ee73751[27]), 27,32},
+ {&(_ZTV7ee73751[31]), 31,32},
+ {&(_tg__ZTV6dd3751__7ee73751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd3751__7ee73751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd3751__7ee73751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd3751__7ee73751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee73751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee73751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee73751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee73751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee73751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee73751[];
+extern VTBL_ENTRY _ZTV7ee73751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73751[];
+static VTBL_ENTRY alt_thunk_names942[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37513fooEv,_ZTv0_n12_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37513fooEv,_ZThn24_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37513fooEv,_ZTv0_n20_N6dd37513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37513fooEv,_ZThn8_N6dd37513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737513fooEv,_ZTv0_n12_N7ee737513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee737513fooEv,_ZThn32_N7ee737513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737513barEv,_ZTv0_n16_N7ee737513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737513barEv,_ZThn24_N7ee737513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737513barEv,_ZTv0_n24_N7ee737513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737513barEv,_ZThn16_N7ee737513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737513fooEv,_ZTv0_n20_N7ee737513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737513fooEv,_ZThn16_N7ee737513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737513fooEv,_ZTv0_n24_N7ee737513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737513fooEv,_ZThn8_N7ee737513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73751 = { "ee73751", // class name
+ bases_ee73751, 4,
+ &(vtc_ee73751[0]), // expected_vtbl_contents
+ &(vtt_ee73751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73751),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names942,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4751 : cc751 {
+ int d;
+ virtual void bar(); // _ZN6dd47513barEv
+ ~dd4751(); // tgen
+ dd4751(); // tgen
+};
+//SIG(-1 dd4751) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4751 ::bar(){vfunc_called(this, "_ZN6dd47513barEv");}
+dd4751 ::~dd4751(){ note_dtor("dd4751", this);} // tgen
+dd4751 ::dd4751(){ note_ctor("dd4751", this);} // tgen
+
+static void Test_dd4751()
+{
+ extern Class_Descriptor cd_dd4751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4751, buf);
+ dd4751 *dp, &lv = *(dp=new (buf) dd4751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd4751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(16,12), "dd4751");
+ check_base_class_offset(lv, (cc751*), 0, "dd4751");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4751.d");
+ test_class_info(&lv, &cd_dd4751);
+ dp->~dd4751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4751(Test_dd4751, "dd4751", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4751C1Ev();
+extern void _ZN6dd4751D1Ev();
+Name_Map name_map_dd4751[] = {
+ NSPAIR(_ZN6dd4751C1Ev),
+ NSPAIR(_ZN6dd4751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd4751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd4751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd4751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd4751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd4751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd4751[] = {
+ {&(_ZTV6dd4751[4]), 4,15},
+ {&(_tg__ZTV5cc751__6dd4751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd4751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd4751[3]), 3,4},
+ {&(_ZTV6dd4751[10]), 10,15},
+ {&(_ZTV6dd4751[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd4751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd4751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static VTBL_ENTRY alt_thunk_names943[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4751 = { "dd4751", // class name
+ bases_dd4751, 3,
+ &(vtc_dd4751[0]), // expected_vtbl_contents
+ &(vtt_dd4751[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4751),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names943,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04751 : dd4751 {
+ int e;
+ ~ee04751(); // tgen
+ ee04751(); // tgen
+};
+//SIG(1 ee04751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04751 ::~ee04751(){ note_dtor("ee04751", this);} // tgen
+ee04751 ::ee04751(){ note_ctor("ee04751", this);} // tgen
+
+static void Test_ee04751()
+{
+ extern Class_Descriptor cd_ee04751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04751, buf);
+ ee04751 *dp, &lv = *(dp=new (buf) ee04751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee04751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(24,16), "ee04751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), 0, "ee04751");
+ check_base_class_offset(lv, (dd4751*), 0, "ee04751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04751.e");
+ test_class_info(&lv, &cd_ee04751);
+ dp->~ee04751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04751(Test_ee04751, "ee04751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04751C1Ev();
+extern void _ZN7ee04751D1Ev();
+Name_Map name_map_ee04751[] = {
+ NSPAIR(_ZN7ee04751C1Ev),
+ NSPAIR(_ZN7ee04751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee04751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee04751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee04751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee04751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee04751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee04751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee04751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee04751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee04751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee04751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee04751[] = {
+ {&(_ZTV7ee04751[4]), 4,15},
+ {&(_tg__ZTV6dd4751__7ee04751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee04751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee04751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee04751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee04751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee04751[3]), 3,4},
+ {&(_ZTV7ee04751[10]), 10,15},
+ {&(_ZTV7ee04751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee04751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee04751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee04751[];
+extern VTBL_ENTRY _ZTV7ee04751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04751[];
+static VTBL_ENTRY alt_thunk_names944[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04751 = { "ee04751", // class name
+ bases_ee04751, 4,
+ &(vtc_ee04751[0]), // expected_vtbl_contents
+ &(vtt_ee04751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names944,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14751 : virtual dd4751 {
+ int e;
+ ~ee14751(); // tgen
+ ee14751(); // tgen
+};
+//SIG(1 ee14751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14751 ::~ee14751(){ note_dtor("ee14751", this);} // tgen
+ee14751 ::ee14751(){ note_ctor("ee14751", this);} // tgen
+
+static void Test_ee14751()
+{
+ extern Class_Descriptor cd_ee14751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14751, buf);
+ ee14751 *dp, &lv = *(dp=new (buf) ee14751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee14751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(32,20), "ee14751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), ABISELECT(16,8), "ee14751");
+ check_base_class_offset(lv, (dd4751*), ABISELECT(16,8), "ee14751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14751.e");
+ test_class_info(&lv, &cd_ee14751);
+ dp->~ee14751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14751(Test_ee14751, "ee14751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14751C1Ev();
+extern void _ZN7ee14751D1Ev();
+Name_Map name_map_ee14751[] = {
+ NSPAIR(_ZN7ee14751C1Ev),
+ NSPAIR(_ZN7ee14751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee14751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14751[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee14751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee14751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee14751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee14751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee14751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee14751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee14751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee14751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee14751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee14751[] = {
+ {&(_ZTV7ee14751[5]), 5,22},
+ {&(_ZTV7ee14751[11]), 11,22},
+ {&(_ZTV7ee14751[17]), 17,22},
+ {&(_ZTV7ee14751[21]), 21,22},
+ {&(_tg__ZTV6dd4751__7ee14751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee14751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee14751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee14751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee14751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee14751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee14751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee14751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee14751[];
+extern VTBL_ENTRY _ZTV7ee14751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14751[];
+static VTBL_ENTRY alt_thunk_names945[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14751 = { "ee14751", // class name
+ bases_ee14751, 4,
+ &(vtc_ee14751[0]), // expected_vtbl_contents
+ &(vtt_ee14751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names945,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24751 : dd4751 {
+ int e;
+ virtual void foo(); // _ZN7ee247513fooEv
+ ~ee24751(); // tgen
+ ee24751(); // tgen
+};
+//SIG(1 ee24751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24751 ::foo(){vfunc_called(this, "_ZN7ee247513fooEv");}
+ee24751 ::~ee24751(){ note_dtor("ee24751", this);} // tgen
+ee24751 ::ee24751(){ note_ctor("ee24751", this);} // tgen
+
+static void Test_ee24751()
+{
+ extern Class_Descriptor cd_ee24751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24751, buf);
+ ee24751 *dp, &lv = *(dp=new (buf) ee24751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee24751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(24,16), "ee24751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), 0, "ee24751");
+ check_base_class_offset(lv, (dd4751*), 0, "ee24751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24751.e");
+ test_class_info(&lv, &cd_ee24751);
+ dp->~ee24751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24751(Test_ee24751, "ee24751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24751C1Ev();
+extern void _ZN7ee24751D1Ev();
+Name_Map name_map_ee24751[] = {
+ NSPAIR(_ZN7ee24751C1Ev),
+ NSPAIR(_ZN7ee24751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee24751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24751[];
+extern void _ZN7ee247513fooEv();
+extern void _ZN6dd47513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee247513fooEv,_ZTv0_n12_N7ee247513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee247513fooEv,_ZThn24_N7ee247513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24751[0]),
+ (VTBL_ENTRY)&_ZN7ee247513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247513fooEv,_ZTv0_n12_N7ee247513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee24751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee24751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee24751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee24751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee24751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee24751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee24751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee24751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee24751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee24751[] = {
+ {&(_ZTV7ee24751[4]), 4,15},
+ {&(_tg__ZTV6dd4751__7ee24751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee24751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee24751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee24751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee24751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee24751[3]), 3,4},
+ {&(_ZTV7ee24751[10]), 10,15},
+ {&(_ZTV7ee24751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee24751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee24751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee24751[];
+extern VTBL_ENTRY _ZTV7ee24751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24751[];
+static VTBL_ENTRY alt_thunk_names946[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247513fooEv,_ZTv0_n12_N7ee247513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee247513fooEv,_ZThn24_N7ee247513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24751 = { "ee24751", // class name
+ bases_ee24751, 4,
+ &(vtc_ee24751[0]), // expected_vtbl_contents
+ &(vtt_ee24751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names946,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34751 : virtual dd4751 {
+ int e;
+ virtual void foo(); // _ZN7ee347513fooEv
+ ~ee34751(); // tgen
+ ee34751(); // tgen
+};
+//SIG(1 ee34751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34751 ::foo(){vfunc_called(this, "_ZN7ee347513fooEv");}
+ee34751 ::~ee34751(){ note_dtor("ee34751", this);} // tgen
+ee34751 ::ee34751(){ note_ctor("ee34751", this);} // tgen
+
+static void Test_ee34751()
+{
+ extern Class_Descriptor cd_ee34751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34751, buf);
+ ee34751 *dp, &lv = *(dp=new (buf) ee34751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee34751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(32,20), "ee34751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), ABISELECT(16,8), "ee34751");
+ check_base_class_offset(lv, (dd4751*), ABISELECT(16,8), "ee34751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34751.e");
+ test_class_info(&lv, &cd_ee34751);
+ dp->~ee34751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34751(Test_ee34751, "ee34751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34751C1Ev();
+extern void _ZN7ee34751D1Ev();
+Name_Map name_map_ee34751[] = {
+ NSPAIR(_ZN7ee34751C1Ev),
+ NSPAIR(_ZN7ee34751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee34751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34751[];
+extern void _ZN7ee347513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee347513fooEv,_ZTv0_n20_N7ee347513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347513fooEv,_ZThn8_N7ee347513fooEv)() __attribute__((weak));
+extern void _ZN6dd47513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee347513fooEv,_ZTv0_n12_N7ee347513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee347513fooEv,_ZThn28_N7ee347513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34751[0]),
+ (VTBL_ENTRY)&_ZN7ee347513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee347513fooEv,_ZTv0_n20_N7ee347513fooEv),
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347513fooEv,_ZTv0_n12_N7ee347513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee34751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee34751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee34751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee34751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee34751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee34751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee34751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee34751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee34751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee34751[] = {
+ {&(_ZTV7ee34751[5]), 5,23},
+ {&(_ZTV7ee34751[12]), 12,23},
+ {&(_ZTV7ee34751[18]), 18,23},
+ {&(_ZTV7ee34751[22]), 22,23},
+ {&(_tg__ZTV6dd4751__7ee34751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee34751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee34751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee34751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee34751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee34751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee34751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee34751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee34751[];
+extern VTBL_ENTRY _ZTV7ee34751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34751[];
+static VTBL_ENTRY alt_thunk_names947[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347513fooEv,_ZTv0_n12_N7ee347513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee347513fooEv,_ZThn28_N7ee347513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee347513fooEv,_ZTv0_n20_N7ee347513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347513fooEv,_ZThn8_N7ee347513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34751 = { "ee34751", // class name
+ bases_ee34751, 4,
+ &(vtc_ee34751[0]), // expected_vtbl_contents
+ &(vtt_ee34751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names947,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44751 : dd4751 {
+ int e;
+ virtual void bar(); // _ZN7ee447513barEv
+ ~ee44751(); // tgen
+ ee44751(); // tgen
+};
+//SIG(1 ee44751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44751 ::bar(){vfunc_called(this, "_ZN7ee447513barEv");}
+ee44751 ::~ee44751(){ note_dtor("ee44751", this);} // tgen
+ee44751 ::ee44751(){ note_ctor("ee44751", this);} // tgen
+
+static void Test_ee44751()
+{
+ extern Class_Descriptor cd_ee44751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44751, buf);
+ ee44751 *dp, &lv = *(dp=new (buf) ee44751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee44751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(24,16), "ee44751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), 0, "ee44751");
+ check_base_class_offset(lv, (dd4751*), 0, "ee44751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44751.e");
+ test_class_info(&lv, &cd_ee44751);
+ dp->~ee44751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44751(Test_ee44751, "ee44751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44751C1Ev();
+extern void _ZN7ee44751D1Ev();
+Name_Map name_map_ee44751[] = {
+ NSPAIR(_ZN7ee44751C1Ev),
+ NSPAIR(_ZN7ee44751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee44751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN7ee447513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee447513barEv,_ZTv0_n16_N7ee447513barEv)();
+extern void ABISELECT(_ZThn24_N7ee447513barEv,_ZThn16_N7ee447513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN7ee447513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447513barEv,_ZTv0_n16_N7ee447513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee44751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee44751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee44751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee44751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee44751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee44751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee44751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee44751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee44751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee44751[] = {
+ {&(_ZTV7ee44751[4]), 4,15},
+ {&(_tg__ZTV6dd4751__7ee44751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee44751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee44751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee44751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee44751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee44751[3]), 3,4},
+ {&(_ZTV7ee44751[10]), 10,15},
+ {&(_ZTV7ee44751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee44751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee44751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee44751[];
+extern VTBL_ENTRY _ZTV7ee44751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44751[];
+static VTBL_ENTRY alt_thunk_names948[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447513barEv,_ZTv0_n16_N7ee447513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447513barEv,_ZThn16_N7ee447513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44751 = { "ee44751", // class name
+ bases_ee44751, 4,
+ &(vtc_ee44751[0]), // expected_vtbl_contents
+ &(vtt_ee44751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names948,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54751 : virtual dd4751 {
+ int e;
+ virtual void bar(); // _ZN7ee547513barEv
+ ~ee54751(); // tgen
+ ee54751(); // tgen
+};
+//SIG(1 ee54751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54751 ::bar(){vfunc_called(this, "_ZN7ee547513barEv");}
+ee54751 ::~ee54751(){ note_dtor("ee54751", this);} // tgen
+ee54751 ::ee54751(){ note_ctor("ee54751", this);} // tgen
+
+static void Test_ee54751()
+{
+ extern Class_Descriptor cd_ee54751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54751, buf);
+ ee54751 *dp, &lv = *(dp=new (buf) ee54751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee54751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(32,20), "ee54751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), ABISELECT(16,8), "ee54751");
+ check_base_class_offset(lv, (dd4751*), ABISELECT(16,8), "ee54751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54751.e");
+ test_class_info(&lv, &cd_ee54751);
+ dp->~ee54751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54751(Test_ee54751, "ee54751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54751C1Ev();
+extern void _ZN7ee54751D1Ev();
+Name_Map name_map_ee54751[] = {
+ NSPAIR(_ZN7ee54751C1Ev),
+ NSPAIR(_ZN7ee54751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee54751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54751[];
+extern void _ZN7ee547513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee547513barEv,_ZTv0_n24_N7ee547513barEv)();
+extern void ABISELECT(_ZThn16_N7ee547513barEv,_ZThn8_N7ee547513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547513barEv,_ZTv0_n16_N7ee547513barEv)();
+extern void ABISELECT(_ZThn32_N7ee547513barEv,_ZThn20_N7ee547513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54751[0]),
+ (VTBL_ENTRY)&_ZN7ee547513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee547513barEv,_ZTv0_n24_N7ee547513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547513barEv,_ZTv0_n16_N7ee547513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee54751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee54751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee54751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee54751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee54751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee54751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee54751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee54751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee54751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee54751[] = {
+ {&(_ZTV7ee54751[5]), 5,23},
+ {&(_ZTV7ee54751[12]), 12,23},
+ {&(_ZTV7ee54751[18]), 18,23},
+ {&(_ZTV7ee54751[22]), 22,23},
+ {&(_tg__ZTV6dd4751__7ee54751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee54751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee54751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee54751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee54751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee54751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee54751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee54751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee54751[];
+extern VTBL_ENTRY _ZTV7ee54751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54751[];
+static VTBL_ENTRY alt_thunk_names949[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547513barEv,_ZTv0_n16_N7ee547513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547513barEv,_ZThn20_N7ee547513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee547513barEv,_ZTv0_n24_N7ee547513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547513barEv,_ZThn8_N7ee547513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54751 = { "ee54751", // class name
+ bases_ee54751, 4,
+ &(vtc_ee54751[0]), // expected_vtbl_contents
+ &(vtt_ee54751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names949,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64751 : dd4751 {
+ int e;
+ virtual void foo(); // _ZN7ee647513fooEv
+ virtual void bar(); // _ZN7ee647513barEv
+ ~ee64751(); // tgen
+ ee64751(); // tgen
+};
+//SIG(1 ee64751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64751 ::foo(){vfunc_called(this, "_ZN7ee647513fooEv");}
+void ee64751 ::bar(){vfunc_called(this, "_ZN7ee647513barEv");}
+ee64751 ::~ee64751(){ note_dtor("ee64751", this);} // tgen
+ee64751 ::ee64751(){ note_ctor("ee64751", this);} // tgen
+
+static void Test_ee64751()
+{
+ extern Class_Descriptor cd_ee64751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64751, buf);
+ ee64751 *dp, &lv = *(dp=new (buf) ee64751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee64751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(24,16), "ee64751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), 0, "ee64751");
+ check_base_class_offset(lv, (dd4751*), 0, "ee64751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64751.e");
+ test_class_info(&lv, &cd_ee64751);
+ dp->~ee64751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64751(Test_ee64751, "ee64751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64751C1Ev();
+extern void _ZN7ee64751D1Ev();
+Name_Map name_map_ee64751[] = {
+ NSPAIR(_ZN7ee64751C1Ev),
+ NSPAIR(_ZN7ee64751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee64751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64751[];
+extern void _ZN7ee647513fooEv();
+extern void _ZN7ee647513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee647513barEv,_ZTv0_n16_N7ee647513barEv)();
+extern void ABISELECT(_ZThn24_N7ee647513barEv,_ZThn16_N7ee647513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee647513fooEv,_ZTv0_n12_N7ee647513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee647513fooEv,_ZThn24_N7ee647513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64751[0]),
+ (VTBL_ENTRY)&_ZN7ee647513fooEv,
+ (VTBL_ENTRY)&_ZN7ee647513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647513barEv,_ZTv0_n16_N7ee647513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647513fooEv,_ZTv0_n12_N7ee647513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee64751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee64751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee64751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee64751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee64751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee64751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee64751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee64751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee64751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee64751[] = {
+ {&(_ZTV7ee64751[4]), 4,15},
+ {&(_tg__ZTV6dd4751__7ee64751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee64751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee64751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee64751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee64751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee64751[3]), 3,4},
+ {&(_ZTV7ee64751[10]), 10,15},
+ {&(_ZTV7ee64751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee64751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee64751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee64751[];
+extern VTBL_ENTRY _ZTV7ee64751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64751[];
+static VTBL_ENTRY alt_thunk_names950[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47513barEv,_ZThn16_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647513fooEv,_ZTv0_n12_N7ee647513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee647513fooEv,_ZThn24_N7ee647513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647513barEv,_ZTv0_n16_N7ee647513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647513barEv,_ZThn16_N7ee647513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64751 = { "ee64751", // class name
+ bases_ee64751, 4,
+ &(vtc_ee64751[0]), // expected_vtbl_contents
+ &(vtt_ee64751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names950,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74751 : virtual dd4751 {
+ int e;
+ virtual void foo(); // _ZN7ee747513fooEv
+ virtual void bar(); // _ZN7ee747513barEv
+ ~ee74751(); // tgen
+ ee74751(); // tgen
+};
+//SIG(1 ee74751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74751 ::foo(){vfunc_called(this, "_ZN7ee747513fooEv");}
+void ee74751 ::bar(){vfunc_called(this, "_ZN7ee747513barEv");}
+ee74751 ::~ee74751(){ note_dtor("ee74751", this);} // tgen
+ee74751 ::ee74751(){ note_ctor("ee74751", this);} // tgen
+
+static void Test_ee74751()
+{
+ extern Class_Descriptor cd_ee74751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74751, buf);
+ ee74751 *dp, &lv = *(dp=new (buf) ee74751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee74751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd4751*), ABISELECT(32,20), "ee74751");
+ check_base_class_offset(lv, (cc751*)(dd4751*), ABISELECT(16,8), "ee74751");
+ check_base_class_offset(lv, (dd4751*), ABISELECT(16,8), "ee74751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74751.e");
+ test_class_info(&lv, &cd_ee74751);
+ dp->~ee74751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74751(Test_ee74751, "ee74751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74751C1Ev();
+extern void _ZN7ee74751D1Ev();
+Name_Map name_map_ee74751[] = {
+ NSPAIR(_ZN7ee74751C1Ev),
+ NSPAIR(_ZN7ee74751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd4751;
+extern VTBL_ENTRY _ZTI6dd4751[];
+extern VTBL_ENTRY _ZTV6dd4751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4751[];
+static Base_Class bases_ee74751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74751[];
+extern void _ZN7ee747513fooEv();
+extern void _ZN7ee747513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee747513fooEv,_ZTv0_n20_N7ee747513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747513fooEv,_ZThn8_N7ee747513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee747513barEv,_ZTv0_n24_N7ee747513barEv)();
+extern void ABISELECT(_ZThn16_N7ee747513barEv,_ZThn8_N7ee747513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747513barEv,_ZTv0_n16_N7ee747513barEv)();
+extern void ABISELECT(_ZThn32_N7ee747513barEv,_ZThn20_N7ee747513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747513fooEv,_ZTv0_n12_N7ee747513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee747513fooEv,_ZThn28_N7ee747513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74751[0]),
+ (VTBL_ENTRY)&_ZN7ee747513fooEv,
+ (VTBL_ENTRY)&_ZN7ee747513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747513fooEv,_ZTv0_n20_N7ee747513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee747513barEv,_ZTv0_n24_N7ee747513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747513barEv,_ZTv0_n16_N7ee747513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747513fooEv,_ZTv0_n12_N7ee747513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee74751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN6dd47513barEv();
+static VTBL_ENTRY _tg__ZTV6dd4751__7ee74751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN6dd47513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd4751__7ee74751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd4751__7ee74751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd4751__7ee74751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv)();
+extern void ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd4751__7ee74751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd4751__7ee74751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee74751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee74751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee74751[] = {
+ {&(_ZTV7ee74751[5]), 5,24},
+ {&(_ZTV7ee74751[13]), 13,24},
+ {&(_ZTV7ee74751[19]), 19,24},
+ {&(_ZTV7ee74751[23]), 23,24},
+ {&(_tg__ZTV6dd4751__7ee74751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd4751__7ee74751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd4751__7ee74751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd4751__7ee74751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd4751__7ee74751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd4751__7ee74751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee74751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee74751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee74751[];
+extern VTBL_ENTRY _ZTV7ee74751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74751[];
+static VTBL_ENTRY alt_thunk_names951[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47513barEv,_ZTv0_n16_N6dd47513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47513barEv,_ZThn12_N6dd47513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747513fooEv,_ZTv0_n12_N7ee747513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee747513fooEv,_ZThn28_N7ee747513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747513barEv,_ZTv0_n16_N7ee747513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747513barEv,_ZThn20_N7ee747513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee747513barEv,_ZTv0_n24_N7ee747513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747513barEv,_ZThn8_N7ee747513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747513fooEv,_ZTv0_n20_N7ee747513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747513fooEv,_ZThn8_N7ee747513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74751 = { "ee74751", // class name
+ bases_ee74751, 4,
+ &(vtc_ee74751[0]), // expected_vtbl_contents
+ &(vtt_ee74751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names951,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5751 : virtual cc751 {
+ int d;
+ virtual void bar(); // _ZN6dd57513barEv
+ ~dd5751(); // tgen
+ dd5751(); // tgen
+};
+//SIG(-1 dd5751) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5751 ::bar(){vfunc_called(this, "_ZN6dd57513barEv");}
+dd5751 ::~dd5751(){ note_dtor("dd5751", this);} // tgen
+dd5751 ::dd5751(){ note_ctor("dd5751", this);} // tgen
+
+static void Test_dd5751()
+{
+ extern Class_Descriptor cd_dd5751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5751, buf);
+ dd5751 *dp, &lv = *(dp=new (buf) dd5751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd5751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,16), "dd5751");
+ check_base_class_offset(lv, (cc751*), ABISELECT(16,8), "dd5751");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5751.d");
+ test_class_info(&lv, &cd_dd5751);
+ dp->~dd5751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5751(Test_dd5751, "dd5751", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5751C1Ev();
+extern void _ZN6dd5751D1Ev();
+Name_Map name_map_dd5751[] = {
+ NSPAIR(_ZN6dd5751C1Ev),
+ NSPAIR(_ZN6dd5751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd5751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd5751[];
+extern void _ZN6dd57513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd5751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd5751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd5751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd5751[] = {
+ {&(_ZTV6dd5751[5]), 5,23},
+ {&(_ZTV6dd5751[12]), 12,23},
+ {&(_ZTV6dd5751[18]), 18,23},
+ {&(_ZTV6dd5751[22]), 22,23},
+ {&(_tg__ZTV5cc751__6dd5751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd5751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd5751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd5751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd5751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static VTBL_ENTRY alt_thunk_names952[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5751 = { "dd5751", // class name
+ bases_dd5751, 3,
+ &(vtc_dd5751[0]), // expected_vtbl_contents
+ &(vtt_dd5751[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5751),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names952,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05751 : dd5751 {
+ int e;
+ ~ee05751(); // tgen
+ ee05751(); // tgen
+};
+//SIG(1 ee05751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05751 ::~ee05751(){ note_dtor("ee05751", this);} // tgen
+ee05751 ::ee05751(){ note_ctor("ee05751", this);} // tgen
+
+static void Test_ee05751()
+{
+ extern Class_Descriptor cd_ee05751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05751, buf);
+ ee05751 *dp, &lv = *(dp=new (buf) ee05751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee05751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee05751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(16,12), "ee05751");
+ check_base_class_offset(lv, (dd5751*), 0, "ee05751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05751.e");
+ test_class_info(&lv, &cd_ee05751);
+ dp->~ee05751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05751(Test_ee05751, "ee05751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05751C1Ev();
+extern void _ZN7ee05751D1Ev();
+Name_Map name_map_ee05751[] = {
+ NSPAIR(_ZN7ee05751C1Ev),
+ NSPAIR(_ZN7ee05751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee05751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05751[];
+extern void _ZN6dd57513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee05751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee05751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee05751[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee05751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee05751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee05751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee05751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee05751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee05751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee05751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee05751[] = {
+ {&(_ZTV7ee05751[5]), 5,23},
+ {&(_tg__ZTV6dd5751__7ee05751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee05751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee05751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee05751[3]), 3,4},
+ {&(_ZTV7ee05751[12]), 12,23},
+ {&(_ZTV7ee05751[18]), 18,23},
+ {&(_ZTV7ee05751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee05751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee05751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee05751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee05751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee05751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee05751[];
+extern VTBL_ENTRY _ZTV7ee05751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05751[];
+static VTBL_ENTRY alt_thunk_names953[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05751 = { "ee05751", // class name
+ bases_ee05751, 4,
+ &(vtc_ee05751[0]), // expected_vtbl_contents
+ &(vtt_ee05751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names953,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15751 : virtual dd5751 {
+ int e;
+ ~ee15751(); // tgen
+ ee15751(); // tgen
+};
+//SIG(1 ee15751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15751 ::~ee15751(){ note_dtor("ee15751", this);} // tgen
+ee15751 ::ee15751(){ note_ctor("ee15751", this);} // tgen
+
+static void Test_ee15751()
+{
+ extern Class_Descriptor cd_ee15751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15751, buf);
+ ee15751 *dp, &lv = *(dp=new (buf) ee15751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee15751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee15751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(32,16), "ee15751");
+ check_base_class_offset(lv, (dd5751*), ABISELECT(16,8), "ee15751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15751.e");
+ test_class_info(&lv, &cd_ee15751);
+ dp->~ee15751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15751(Test_ee15751, "ee15751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15751C1Ev();
+extern void _ZN7ee15751D1Ev();
+Name_Map name_map_ee15751[] = {
+ NSPAIR(_ZN7ee15751C1Ev),
+ NSPAIR(_ZN7ee15751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee15751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 26, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15751[];
+extern void _ZN6dd57513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15751[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee15751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee15751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee15751[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee15751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee15751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee15751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee15751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee15751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee15751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee15751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee15751[] = {
+ {&(_ZTV7ee15751[6]), 6,30},
+ {&(_ZTV7ee15751[12]), 12,30},
+ {&(_ZTV7ee15751[19]), 19,30},
+ {&(_ZTV7ee15751[25]), 25,30},
+ {&(_ZTV7ee15751[29]), 29,30},
+ {&(_tg__ZTV6dd5751__7ee15751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee15751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee15751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee15751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee15751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee15751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee15751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee15751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee15751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee15751[];
+extern VTBL_ENTRY _ZTV7ee15751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15751[];
+static VTBL_ENTRY alt_thunk_names954[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15751 = { "ee15751", // class name
+ bases_ee15751, 4,
+ &(vtc_ee15751[0]), // expected_vtbl_contents
+ &(vtt_ee15751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15751),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names954,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25751 : dd5751 {
+ int e;
+ virtual void foo(); // _ZN7ee257513fooEv
+ ~ee25751(); // tgen
+ ee25751(); // tgen
+};
+//SIG(1 ee25751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25751 ::foo(){vfunc_called(this, "_ZN7ee257513fooEv");}
+ee25751 ::~ee25751(){ note_dtor("ee25751", this);} // tgen
+ee25751 ::ee25751(){ note_ctor("ee25751", this);} // tgen
+
+static void Test_ee25751()
+{
+ extern Class_Descriptor cd_ee25751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25751, buf);
+ ee25751 *dp, &lv = *(dp=new (buf) ee25751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee25751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee25751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(16,12), "ee25751");
+ check_base_class_offset(lv, (dd5751*), 0, "ee25751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25751.e");
+ test_class_info(&lv, &cd_ee25751);
+ dp->~ee25751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25751(Test_ee25751, "ee25751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25751C1Ev();
+extern void _ZN7ee25751D1Ev();
+Name_Map name_map_ee25751[] = {
+ NSPAIR(_ZN7ee25751C1Ev),
+ NSPAIR(_ZN7ee25751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee25751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25751[];
+extern void _ZN6dd57513barEv();
+extern void _ZN7ee257513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee257513fooEv,_ZTv0_n20_N7ee257513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257513fooEv,_ZThn12_N7ee257513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257513fooEv,_ZTv0_n12_N7ee257513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee257513fooEv,_ZThn28_N7ee257513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+ (VTBL_ENTRY)&_ZN7ee257513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee257513fooEv,_ZTv0_n20_N7ee257513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257513fooEv,_ZTv0_n12_N7ee257513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee25751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee25751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee25751[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee25751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee25751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee25751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee25751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee25751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee25751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee25751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee25751[] = {
+ {&(_ZTV7ee25751[5]), 5,24},
+ {&(_tg__ZTV6dd5751__7ee25751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee25751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee25751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee25751[3]), 3,4},
+ {&(_ZTV7ee25751[13]), 13,24},
+ {&(_ZTV7ee25751[19]), 19,24},
+ {&(_ZTV7ee25751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee25751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee25751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee25751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee25751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee25751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee25751[];
+extern VTBL_ENTRY _ZTV7ee25751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25751[];
+static VTBL_ENTRY alt_thunk_names955[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257513fooEv,_ZTv0_n12_N7ee257513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee257513fooEv,_ZThn28_N7ee257513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee257513fooEv,_ZTv0_n20_N7ee257513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257513fooEv,_ZThn12_N7ee257513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25751 = { "ee25751", // class name
+ bases_ee25751, 4,
+ &(vtc_ee25751[0]), // expected_vtbl_contents
+ &(vtt_ee25751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names955,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35751 : virtual dd5751 {
+ int e;
+ virtual void foo(); // _ZN7ee357513fooEv
+ ~ee35751(); // tgen
+ ee35751(); // tgen
+};
+//SIG(1 ee35751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35751 ::foo(){vfunc_called(this, "_ZN7ee357513fooEv");}
+ee35751 ::~ee35751(){ note_dtor("ee35751", this);} // tgen
+ee35751 ::ee35751(){ note_ctor("ee35751", this);} // tgen
+
+static void Test_ee35751()
+{
+ extern Class_Descriptor cd_ee35751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35751, buf);
+ ee35751 *dp, &lv = *(dp=new (buf) ee35751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee35751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee35751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(32,16), "ee35751");
+ check_base_class_offset(lv, (dd5751*), ABISELECT(16,8), "ee35751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35751.e");
+ test_class_info(&lv, &cd_ee35751);
+ dp->~ee35751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35751(Test_ee35751, "ee35751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35751C1Ev();
+extern void _ZN7ee35751D1Ev();
+Name_Map name_map_ee35751[] = {
+ NSPAIR(_ZN7ee35751C1Ev),
+ NSPAIR(_ZN7ee35751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee35751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35751[];
+extern void _ZN7ee357513fooEv();
+extern void _ZN6dd57513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee357513fooEv,_ZTv0_n20_N7ee357513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357513fooEv,_ZThn16_N7ee357513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357513fooEv,_ZTv0_n12_N7ee357513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee357513fooEv,_ZThn32_N7ee357513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35751[0]),
+ (VTBL_ENTRY)&_ZN7ee357513fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee357513fooEv,_ZTv0_n20_N7ee357513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357513fooEv,_ZTv0_n12_N7ee357513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee35751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee35751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee35751[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee35751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee35751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee35751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee35751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee35751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee35751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee35751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee35751[] = {
+ {&(_ZTV7ee35751[6]), 6,31},
+ {&(_ZTV7ee35751[13]), 13,31},
+ {&(_ZTV7ee35751[20]), 20,31},
+ {&(_ZTV7ee35751[26]), 26,31},
+ {&(_ZTV7ee35751[30]), 30,31},
+ {&(_tg__ZTV6dd5751__7ee35751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee35751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee35751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee35751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee35751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee35751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee35751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee35751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee35751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee35751[];
+extern VTBL_ENTRY _ZTV7ee35751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35751[];
+static VTBL_ENTRY alt_thunk_names956[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357513fooEv,_ZTv0_n12_N7ee357513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee357513fooEv,_ZThn32_N7ee357513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee357513fooEv,_ZTv0_n20_N7ee357513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357513fooEv,_ZThn16_N7ee357513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35751 = { "ee35751", // class name
+ bases_ee35751, 4,
+ &(vtc_ee35751[0]), // expected_vtbl_contents
+ &(vtt_ee35751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35751),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names956,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45751 : dd5751 {
+ int e;
+ virtual void bar(); // _ZN7ee457513barEv
+ ~ee45751(); // tgen
+ ee45751(); // tgen
+};
+//SIG(1 ee45751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45751 ::bar(){vfunc_called(this, "_ZN7ee457513barEv");}
+ee45751 ::~ee45751(){ note_dtor("ee45751", this);} // tgen
+ee45751 ::ee45751(){ note_ctor("ee45751", this);} // tgen
+
+static void Test_ee45751()
+{
+ extern Class_Descriptor cd_ee45751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45751, buf);
+ ee45751 *dp, &lv = *(dp=new (buf) ee45751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee45751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee45751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(16,12), "ee45751");
+ check_base_class_offset(lv, (dd5751*), 0, "ee45751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45751.e");
+ test_class_info(&lv, &cd_ee45751);
+ dp->~ee45751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45751(Test_ee45751, "ee45751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45751C1Ev();
+extern void _ZN7ee45751D1Ev();
+Name_Map name_map_ee45751[] = {
+ NSPAIR(_ZN7ee45751C1Ev),
+ NSPAIR(_ZN7ee45751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee45751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 19, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45751[];
+extern void _ZN7ee457513barEv();
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee457513barEv,_ZTv0_n24_N7ee457513barEv)();
+extern void ABISELECT(_ZThn16_N7ee457513barEv,_ZThn12_N7ee457513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457513barEv,_ZTv0_n16_N7ee457513barEv)();
+extern void ABISELECT(_ZThn32_N7ee457513barEv,_ZThn20_N7ee457513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45751[0]),
+ (VTBL_ENTRY)&_ZN7ee457513barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee457513barEv,_ZTv0_n24_N7ee457513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457513barEv,_ZTv0_n16_N7ee457513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee45751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee45751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee45751[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee45751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee45751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee45751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee45751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee45751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee45751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee45751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee45751[] = {
+ {&(_ZTV7ee45751[5]), 5,23},
+ {&(_tg__ZTV6dd5751__7ee45751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee45751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee45751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee45751[3]), 3,4},
+ {&(_ZTV7ee45751[12]), 12,23},
+ {&(_ZTV7ee45751[18]), 18,23},
+ {&(_ZTV7ee45751[22]), 22,23},
+ {&(_tg__ZTV5cc751__7ee45751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee45751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee45751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee45751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee45751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee45751[];
+extern VTBL_ENTRY _ZTV7ee45751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45751[];
+static VTBL_ENTRY alt_thunk_names957[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457513barEv,_ZTv0_n16_N7ee457513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457513barEv,_ZThn20_N7ee457513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee457513barEv,_ZTv0_n24_N7ee457513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457513barEv,_ZThn12_N7ee457513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45751 = { "ee45751", // class name
+ bases_ee45751, 4,
+ &(vtc_ee45751[0]), // expected_vtbl_contents
+ &(vtt_ee45751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names957,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55751 : virtual dd5751 {
+ int e;
+ virtual void bar(); // _ZN7ee557513barEv
+ ~ee55751(); // tgen
+ ee55751(); // tgen
+};
+//SIG(1 ee55751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55751 ::bar(){vfunc_called(this, "_ZN7ee557513barEv");}
+ee55751 ::~ee55751(){ note_dtor("ee55751", this);} // tgen
+ee55751 ::ee55751(){ note_ctor("ee55751", this);} // tgen
+
+static void Test_ee55751()
+{
+ extern Class_Descriptor cd_ee55751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55751, buf);
+ ee55751 *dp, &lv = *(dp=new (buf) ee55751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee55751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee55751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(32,16), "ee55751");
+ check_base_class_offset(lv, (dd5751*), ABISELECT(16,8), "ee55751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55751.e");
+ test_class_info(&lv, &cd_ee55751);
+ dp->~ee55751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55751(Test_ee55751, "ee55751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55751C1Ev();
+extern void _ZN7ee55751D1Ev();
+Name_Map name_map_ee55751[] = {
+ NSPAIR(_ZN7ee55751C1Ev),
+ NSPAIR(_ZN7ee55751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee55751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 27, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55751[];
+extern void _ZN7ee557513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557513barEv,_ZTv0_n24_N7ee557513barEv)();
+extern void ABISELECT(_ZThn16_N7ee557513barEv,_ZThn8_N7ee557513barEv)() __attribute__((weak));
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557513barEv,_ZTv0_n24_N7ee557513barEv)();
+extern void ABISELECT(_ZThn32_N7ee557513barEv,_ZThn16_N7ee557513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557513barEv,_ZTv0_n16_N7ee557513barEv)();
+extern void ABISELECT(_ZThn48_N7ee557513barEv,_ZThn24_N7ee557513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55751[0]),
+ (VTBL_ENTRY)&_ZN7ee557513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557513barEv,_ZTv0_n24_N7ee557513barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557513barEv,_ZTv0_n24_N7ee557513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557513barEv,_ZTv0_n16_N7ee557513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee55751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee55751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee55751[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee55751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee55751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee55751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee55751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee55751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee55751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee55751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee55751[] = {
+ {&(_ZTV7ee55751[6]), 6,31},
+ {&(_ZTV7ee55751[13]), 13,31},
+ {&(_ZTV7ee55751[20]), 20,31},
+ {&(_ZTV7ee55751[26]), 26,31},
+ {&(_ZTV7ee55751[30]), 30,31},
+ {&(_tg__ZTV6dd5751__7ee55751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee55751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee55751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee55751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee55751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee55751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee55751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee55751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee55751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee55751[];
+extern VTBL_ENTRY _ZTV7ee55751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55751[];
+static VTBL_ENTRY alt_thunk_names958[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557513barEv,_ZTv0_n16_N7ee557513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557513barEv,_ZThn24_N7ee557513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee557513barEv,_ZTv0_n24_N7ee557513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557513barEv,_ZThn16_N7ee557513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557513barEv,_ZThn8_N7ee557513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55751 = { "ee55751", // class name
+ bases_ee55751, 4,
+ &(vtc_ee55751[0]), // expected_vtbl_contents
+ &(vtt_ee55751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55751),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names958,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65751 : dd5751 {
+ int e;
+ virtual void foo(); // _ZN7ee657513fooEv
+ virtual void bar(); // _ZN7ee657513barEv
+ ~ee65751(); // tgen
+ ee65751(); // tgen
+};
+//SIG(1 ee65751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65751 ::foo(){vfunc_called(this, "_ZN7ee657513fooEv");}
+void ee65751 ::bar(){vfunc_called(this, "_ZN7ee657513barEv");}
+ee65751 ::~ee65751(){ note_dtor("ee65751", this);} // tgen
+ee65751 ::ee65751(){ note_ctor("ee65751", this);} // tgen
+
+static void Test_ee65751()
+{
+ extern Class_Descriptor cd_ee65751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65751, buf);
+ ee65751 *dp, &lv = *(dp=new (buf) ee65751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee65751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee65751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(16,12), "ee65751");
+ check_base_class_offset(lv, (dd5751*), 0, "ee65751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65751.e");
+ test_class_info(&lv, &cd_ee65751);
+ dp->~ee65751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65751(Test_ee65751, "ee65751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65751C1Ev();
+extern void _ZN7ee65751D1Ev();
+Name_Map name_map_ee65751[] = {
+ NSPAIR(_ZN7ee65751C1Ev),
+ NSPAIR(_ZN7ee65751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee65751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65751[];
+extern void _ZN7ee657513barEv();
+extern void _ZN7ee657513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee657513fooEv,_ZTv0_n20_N7ee657513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657513fooEv,_ZThn12_N7ee657513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee657513barEv,_ZTv0_n24_N7ee657513barEv)();
+extern void ABISELECT(_ZThn16_N7ee657513barEv,_ZThn12_N7ee657513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657513barEv,_ZTv0_n16_N7ee657513barEv)();
+extern void ABISELECT(_ZThn32_N7ee657513barEv,_ZThn20_N7ee657513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657513fooEv,_ZTv0_n12_N7ee657513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee657513fooEv,_ZThn28_N7ee657513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65751[0]),
+ (VTBL_ENTRY)&_ZN7ee657513barEv,
+ (VTBL_ENTRY)&_ZN7ee657513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657513fooEv,_ZTv0_n20_N7ee657513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee657513barEv,_ZTv0_n24_N7ee657513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657513barEv,_ZTv0_n16_N7ee657513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657513fooEv,_ZTv0_n12_N7ee657513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee65751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee65751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee65751[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee65751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee65751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee65751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee65751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee65751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee65751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee65751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee65751[] = {
+ {&(_ZTV7ee65751[5]), 5,24},
+ {&(_tg__ZTV6dd5751__7ee65751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee65751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee65751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee65751[3]), 3,4},
+ {&(_ZTV7ee65751[13]), 13,24},
+ {&(_ZTV7ee65751[19]), 19,24},
+ {&(_ZTV7ee65751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee65751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee65751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee65751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee65751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee65751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee65751[];
+extern VTBL_ENTRY _ZTV7ee65751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65751[];
+static VTBL_ENTRY alt_thunk_names959[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn20_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn12_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657513fooEv,_ZTv0_n12_N7ee657513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee657513fooEv,_ZThn28_N7ee657513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657513barEv,_ZTv0_n16_N7ee657513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657513barEv,_ZThn20_N7ee657513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee657513barEv,_ZTv0_n24_N7ee657513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657513barEv,_ZThn12_N7ee657513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657513fooEv,_ZTv0_n20_N7ee657513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657513fooEv,_ZThn12_N7ee657513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65751 = { "ee65751", // class name
+ bases_ee65751, 4,
+ &(vtc_ee65751[0]), // expected_vtbl_contents
+ &(vtt_ee65751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names959,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75751 : virtual dd5751 {
+ int e;
+ virtual void foo(); // _ZN7ee757513fooEv
+ virtual void bar(); // _ZN7ee757513barEv
+ ~ee75751(); // tgen
+ ee75751(); // tgen
+};
+//SIG(1 ee75751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75751 ::foo(){vfunc_called(this, "_ZN7ee757513fooEv");}
+void ee75751 ::bar(){vfunc_called(this, "_ZN7ee757513barEv");}
+ee75751 ::~ee75751(){ note_dtor("ee75751", this);} // tgen
+ee75751 ::ee75751(){ note_ctor("ee75751", this);} // tgen
+
+static void Test_ee75751()
+{
+ extern Class_Descriptor cd_ee75751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75751, buf);
+ ee75751 *dp, &lv = *(dp=new (buf) ee75751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee75751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee75751");
+ check_base_class_offset(lv, (cc751*)(dd5751*), ABISELECT(32,16), "ee75751");
+ check_base_class_offset(lv, (dd5751*), ABISELECT(16,8), "ee75751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75751.e");
+ test_class_info(&lv, &cd_ee75751);
+ dp->~ee75751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75751(Test_ee75751, "ee75751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75751C1Ev();
+extern void _ZN7ee75751D1Ev();
+Name_Map name_map_ee75751[] = {
+ NSPAIR(_ZN7ee75751C1Ev),
+ NSPAIR(_ZN7ee75751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd5751;
+extern VTBL_ENTRY _ZTI6dd5751[];
+extern VTBL_ENTRY _ZTV6dd5751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5751[];
+static Base_Class bases_ee75751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 28, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5751, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75751[];
+extern void _ZN7ee757513fooEv();
+extern void _ZN7ee757513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee757513barEv,_ZTv0_n24_N7ee757513barEv)();
+extern void ABISELECT(_ZThn16_N7ee757513barEv,_ZThn8_N7ee757513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757513fooEv,_ZTv0_n20_N7ee757513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757513fooEv,_ZThn16_N7ee757513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee757513barEv,_ZTv0_n24_N7ee757513barEv)();
+extern void ABISELECT(_ZThn32_N7ee757513barEv,_ZThn16_N7ee757513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757513barEv,_ZTv0_n16_N7ee757513barEv)();
+extern void ABISELECT(_ZThn48_N7ee757513barEv,_ZThn24_N7ee757513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757513fooEv,_ZTv0_n12_N7ee757513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee757513fooEv,_ZThn32_N7ee757513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75751[0]),
+ (VTBL_ENTRY)&_ZN7ee757513fooEv,
+ (VTBL_ENTRY)&_ZN7ee757513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757513barEv,_ZTv0_n24_N7ee757513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757513fooEv,_ZTv0_n20_N7ee757513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757513barEv,_ZTv0_n24_N7ee757513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757513barEv,_ZTv0_n16_N7ee757513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757513fooEv,_ZTv0_n12_N7ee757513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee75751[];
+extern void _ZN6dd57513barEv();
+static VTBL_ENTRY _tg__ZTV6dd5751__7ee75751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN6dd57513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv)();
+extern void ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd5751__7ee75751[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv)();
+extern void ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd5751__7ee75751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd5751__7ee75751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee75751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee75751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee75751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee75751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee75751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee75751[] = {
+ {&(_ZTV7ee75751[6]), 6,32},
+ {&(_ZTV7ee75751[14]), 14,32},
+ {&(_ZTV7ee75751[21]), 21,32},
+ {&(_ZTV7ee75751[27]), 27,32},
+ {&(_ZTV7ee75751[31]), 31,32},
+ {&(_tg__ZTV6dd5751__7ee75751[5]), 5,6},
+ {&(_tg__ZTV5cc751__6dd5751__7ee75751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd5751__7ee75751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd5751__7ee75751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee75751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee75751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee75751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee75751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee75751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee75751[];
+extern VTBL_ENTRY _ZTV7ee75751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75751[];
+static VTBL_ENTRY alt_thunk_names960[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57513barEv,_ZTv0_n16_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57513barEv,_ZThn16_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57513barEv,_ZTv0_n24_N6dd57513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57513barEv,_ZThn8_N6dd57513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757513fooEv,_ZTv0_n12_N7ee757513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee757513fooEv,_ZThn32_N7ee757513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757513barEv,_ZTv0_n16_N7ee757513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757513barEv,_ZThn24_N7ee757513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757513fooEv,_ZTv0_n20_N7ee757513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757513fooEv,_ZThn16_N7ee757513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee757513barEv,_ZTv0_n24_N7ee757513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757513barEv,_ZThn16_N7ee757513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757513barEv,_ZThn8_N7ee757513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75751 = { "ee75751", // class name
+ bases_ee75751, 4,
+ &(vtc_ee75751[0]), // expected_vtbl_contents
+ &(vtt_ee75751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75751),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names960,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6751 : cc751 {
+ int d;
+ virtual void bar(); // _ZN6dd67513barEv
+ virtual void foo(); // _ZN6dd67513fooEv
+ ~dd6751(); // tgen
+ dd6751(); // tgen
+};
+//SIG(-1 dd6751) C1{ BC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6751 ::bar(){vfunc_called(this, "_ZN6dd67513barEv");}
+void dd6751 ::foo(){vfunc_called(this, "_ZN6dd67513fooEv");}
+dd6751 ::~dd6751(){ note_dtor("dd6751", this);} // tgen
+dd6751 ::dd6751(){ note_ctor("dd6751", this);} // tgen
+
+static void Test_dd6751()
+{
+ extern Class_Descriptor cd_dd6751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6751, buf);
+ dd6751 *dp, &lv = *(dp=new (buf) dd6751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(32,20), "dd6751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(16,12), "dd6751");
+ check_base_class_offset(lv, (cc751*), 0, "dd6751");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6751.d");
+ test_class_info(&lv, &cd_dd6751);
+ dp->~dd6751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6751(Test_dd6751, "dd6751", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6751C1Ev();
+extern void _ZN6dd6751D1Ev();
+Name_Map name_map_dd6751[] = {
+ NSPAIR(_ZN6dd6751C1Ev),
+ NSPAIR(_ZN6dd6751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd6751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, 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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd6751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd6751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd6751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd6751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd6751[] = {
+ {&(_ZTV6dd6751[4]), 4,15},
+ {&(_tg__ZTV5cc751__6dd6751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd6751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd6751[3]), 3,4},
+ {&(_ZTV6dd6751[10]), 10,15},
+ {&(_ZTV6dd6751[14]), 14,15},
+ {&(_tg__ZTV4bb51__6dd6751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd6751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static VTBL_ENTRY alt_thunk_names961[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6751 = { "dd6751", // class name
+ bases_dd6751, 3,
+ &(vtc_dd6751[0]), // expected_vtbl_contents
+ &(vtt_dd6751[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6751),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names961,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06751 : dd6751 {
+ int e;
+ ~ee06751(); // tgen
+ ee06751(); // tgen
+};
+//SIG(1 ee06751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06751 ::~ee06751(){ note_dtor("ee06751", this);} // tgen
+ee06751 ::ee06751(){ note_ctor("ee06751", this);} // tgen
+
+static void Test_ee06751()
+{
+ extern Class_Descriptor cd_ee06751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06751, buf);
+ ee06751 *dp, &lv = *(dp=new (buf) ee06751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee06751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(24,16), "ee06751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), 0, "ee06751");
+ check_base_class_offset(lv, (dd6751*), 0, "ee06751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06751.e");
+ test_class_info(&lv, &cd_ee06751);
+ dp->~ee06751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06751(Test_ee06751, "ee06751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06751C1Ev();
+extern void _ZN7ee06751D1Ev();
+Name_Map name_map_ee06751[] = {
+ NSPAIR(_ZN7ee06751C1Ev),
+ NSPAIR(_ZN7ee06751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee06751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee06751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee06751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee06751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee06751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee06751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee06751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee06751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee06751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee06751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee06751[] = {
+ {&(_ZTV7ee06751[4]), 4,15},
+ {&(_tg__ZTV6dd6751__7ee06751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee06751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee06751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee06751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee06751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee06751[3]), 3,4},
+ {&(_ZTV7ee06751[10]), 10,15},
+ {&(_ZTV7ee06751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee06751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee06751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee06751[];
+extern VTBL_ENTRY _ZTV7ee06751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06751[];
+static VTBL_ENTRY alt_thunk_names962[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06751 = { "ee06751", // class name
+ bases_ee06751, 4,
+ &(vtc_ee06751[0]), // expected_vtbl_contents
+ &(vtt_ee06751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names962,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16751 : virtual dd6751 {
+ int e;
+ ~ee16751(); // tgen
+ ee16751(); // tgen
+};
+//SIG(1 ee16751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16751 ::~ee16751(){ note_dtor("ee16751", this);} // tgen
+ee16751 ::ee16751(){ note_ctor("ee16751", this);} // tgen
+
+static void Test_ee16751()
+{
+ extern Class_Descriptor cd_ee16751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16751, buf);
+ ee16751 *dp, &lv = *(dp=new (buf) ee16751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee16751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(32,20), "ee16751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), ABISELECT(16,8), "ee16751");
+ check_base_class_offset(lv, (dd6751*), ABISELECT(16,8), "ee16751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16751.e");
+ test_class_info(&lv, &cd_ee16751);
+ dp->~ee16751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16751(Test_ee16751, "ee16751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16751C1Ev();
+extern void _ZN7ee16751D1Ev();
+Name_Map name_map_ee16751[] = {
+ NSPAIR(_ZN7ee16751C1Ev),
+ NSPAIR(_ZN7ee16751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee16751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16751[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee16751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee16751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee16751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee16751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee16751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee16751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee16751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee16751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee16751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee16751[] = {
+ {&(_ZTV7ee16751[5]), 5,22},
+ {&(_ZTV7ee16751[11]), 11,22},
+ {&(_ZTV7ee16751[17]), 17,22},
+ {&(_ZTV7ee16751[21]), 21,22},
+ {&(_tg__ZTV6dd6751__7ee16751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee16751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee16751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee16751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee16751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee16751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee16751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee16751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee16751[];
+extern VTBL_ENTRY _ZTV7ee16751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16751[];
+static VTBL_ENTRY alt_thunk_names963[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16751 = { "ee16751", // class name
+ bases_ee16751, 4,
+ &(vtc_ee16751[0]), // expected_vtbl_contents
+ &(vtt_ee16751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16751),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names963,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26751 : dd6751 {
+ int e;
+ virtual void foo(); // _ZN7ee267513fooEv
+ ~ee26751(); // tgen
+ ee26751(); // tgen
+};
+//SIG(1 ee26751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26751 ::foo(){vfunc_called(this, "_ZN7ee267513fooEv");}
+ee26751 ::~ee26751(){ note_dtor("ee26751", this);} // tgen
+ee26751 ::ee26751(){ note_ctor("ee26751", this);} // tgen
+
+static void Test_ee26751()
+{
+ extern Class_Descriptor cd_ee26751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26751, buf);
+ ee26751 *dp, &lv = *(dp=new (buf) ee26751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee26751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(24,16), "ee26751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), 0, "ee26751");
+ check_base_class_offset(lv, (dd6751*), 0, "ee26751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26751.e");
+ test_class_info(&lv, &cd_ee26751);
+ dp->~ee26751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26751(Test_ee26751, "ee26751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26751C1Ev();
+extern void _ZN7ee26751D1Ev();
+Name_Map name_map_ee26751[] = {
+ NSPAIR(_ZN7ee26751C1Ev),
+ NSPAIR(_ZN7ee26751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee26751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26751[];
+extern void _ZN7ee267513fooEv();
+extern void _ZN6dd67513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee267513fooEv,_ZTv0_n12_N7ee267513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee267513fooEv,_ZThn24_N7ee267513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26751[0]),
+ (VTBL_ENTRY)&_ZN7ee267513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267513fooEv,_ZTv0_n12_N7ee267513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee26751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee26751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee26751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee26751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee26751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee26751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee26751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee26751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee26751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee26751[] = {
+ {&(_ZTV7ee26751[4]), 4,15},
+ {&(_tg__ZTV6dd6751__7ee26751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee26751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee26751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee26751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee26751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee26751[3]), 3,4},
+ {&(_ZTV7ee26751[10]), 10,15},
+ {&(_ZTV7ee26751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee26751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee26751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee26751[];
+extern VTBL_ENTRY _ZTV7ee26751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26751[];
+static VTBL_ENTRY alt_thunk_names964[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267513fooEv,_ZTv0_n12_N7ee267513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee267513fooEv,_ZThn24_N7ee267513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26751 = { "ee26751", // class name
+ bases_ee26751, 4,
+ &(vtc_ee26751[0]), // expected_vtbl_contents
+ &(vtt_ee26751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names964,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36751 : virtual dd6751 {
+ int e;
+ virtual void foo(); // _ZN7ee367513fooEv
+ ~ee36751(); // tgen
+ ee36751(); // tgen
+};
+//SIG(1 ee36751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36751 ::foo(){vfunc_called(this, "_ZN7ee367513fooEv");}
+ee36751 ::~ee36751(){ note_dtor("ee36751", this);} // tgen
+ee36751 ::ee36751(){ note_ctor("ee36751", this);} // tgen
+
+static void Test_ee36751()
+{
+ extern Class_Descriptor cd_ee36751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36751, buf);
+ ee36751 *dp, &lv = *(dp=new (buf) ee36751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee36751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(32,20), "ee36751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), ABISELECT(16,8), "ee36751");
+ check_base_class_offset(lv, (dd6751*), ABISELECT(16,8), "ee36751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36751.e");
+ test_class_info(&lv, &cd_ee36751);
+ dp->~ee36751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36751(Test_ee36751, "ee36751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36751C1Ev();
+extern void _ZN7ee36751D1Ev();
+Name_Map name_map_ee36751[] = {
+ NSPAIR(_ZN7ee36751C1Ev),
+ NSPAIR(_ZN7ee36751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee36751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36751[];
+extern void _ZN7ee367513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee367513fooEv,_ZTv0_n20_N7ee367513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367513fooEv,_ZThn8_N7ee367513fooEv)() __attribute__((weak));
+extern void _ZN6dd67513barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee367513fooEv,_ZTv0_n12_N7ee367513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee367513fooEv,_ZThn28_N7ee367513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36751[0]),
+ (VTBL_ENTRY)&_ZN7ee367513fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee367513fooEv,_ZTv0_n20_N7ee367513fooEv),
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367513fooEv,_ZTv0_n12_N7ee367513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee36751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee36751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee36751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee36751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee36751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee36751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee36751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee36751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee36751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee36751[] = {
+ {&(_ZTV7ee36751[5]), 5,23},
+ {&(_ZTV7ee36751[12]), 12,23},
+ {&(_ZTV7ee36751[18]), 18,23},
+ {&(_ZTV7ee36751[22]), 22,23},
+ {&(_tg__ZTV6dd6751__7ee36751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee36751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee36751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee36751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee36751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee36751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee36751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee36751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee36751[];
+extern VTBL_ENTRY _ZTV7ee36751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36751[];
+static VTBL_ENTRY alt_thunk_names965[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367513fooEv,_ZTv0_n12_N7ee367513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee367513fooEv,_ZThn28_N7ee367513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee367513fooEv,_ZTv0_n20_N7ee367513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367513fooEv,_ZThn8_N7ee367513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36751 = { "ee36751", // class name
+ bases_ee36751, 4,
+ &(vtc_ee36751[0]), // expected_vtbl_contents
+ &(vtt_ee36751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names965,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46751 : dd6751 {
+ int e;
+ virtual void bar(); // _ZN7ee467513barEv
+ ~ee46751(); // tgen
+ ee46751(); // tgen
+};
+//SIG(1 ee46751) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46751 ::bar(){vfunc_called(this, "_ZN7ee467513barEv");}
+ee46751 ::~ee46751(){ note_dtor("ee46751", this);} // tgen
+ee46751 ::ee46751(){ note_ctor("ee46751", this);} // tgen
+
+static void Test_ee46751()
+{
+ extern Class_Descriptor cd_ee46751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46751, buf);
+ ee46751 *dp, &lv = *(dp=new (buf) ee46751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee46751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(24,16), "ee46751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), 0, "ee46751");
+ check_base_class_offset(lv, (dd6751*), 0, "ee46751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46751.e");
+ test_class_info(&lv, &cd_ee46751);
+ dp->~ee46751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46751(Test_ee46751, "ee46751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46751C1Ev();
+extern void _ZN7ee46751D1Ev();
+Name_Map name_map_ee46751[] = {
+ NSPAIR(_ZN7ee46751C1Ev),
+ NSPAIR(_ZN7ee46751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee46751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN7ee467513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee467513barEv,_ZTv0_n16_N7ee467513barEv)();
+extern void ABISELECT(_ZThn24_N7ee467513barEv,_ZThn16_N7ee467513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN7ee467513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467513barEv,_ZTv0_n16_N7ee467513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee46751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee46751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee46751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee46751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee46751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee46751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee46751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee46751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee46751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee46751[] = {
+ {&(_ZTV7ee46751[4]), 4,15},
+ {&(_tg__ZTV6dd6751__7ee46751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee46751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee46751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee46751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee46751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee46751[3]), 3,4},
+ {&(_ZTV7ee46751[10]), 10,15},
+ {&(_ZTV7ee46751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee46751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee46751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee46751[];
+extern VTBL_ENTRY _ZTV7ee46751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46751[];
+static VTBL_ENTRY alt_thunk_names966[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467513barEv,_ZTv0_n16_N7ee467513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467513barEv,_ZThn16_N7ee467513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46751 = { "ee46751", // class name
+ bases_ee46751, 4,
+ &(vtc_ee46751[0]), // expected_vtbl_contents
+ &(vtt_ee46751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names966,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56751 : virtual dd6751 {
+ int e;
+ virtual void bar(); // _ZN7ee567513barEv
+ ~ee56751(); // tgen
+ ee56751(); // tgen
+};
+//SIG(1 ee56751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56751 ::bar(){vfunc_called(this, "_ZN7ee567513barEv");}
+ee56751 ::~ee56751(){ note_dtor("ee56751", this);} // tgen
+ee56751 ::ee56751(){ note_ctor("ee56751", this);} // tgen
+
+static void Test_ee56751()
+{
+ extern Class_Descriptor cd_ee56751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56751, buf);
+ ee56751 *dp, &lv = *(dp=new (buf) ee56751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee56751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(32,20), "ee56751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), ABISELECT(16,8), "ee56751");
+ check_base_class_offset(lv, (dd6751*), ABISELECT(16,8), "ee56751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56751.e");
+ test_class_info(&lv, &cd_ee56751);
+ dp->~ee56751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56751(Test_ee56751, "ee56751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56751C1Ev();
+extern void _ZN7ee56751D1Ev();
+Name_Map name_map_ee56751[] = {
+ NSPAIR(_ZN7ee56751C1Ev),
+ NSPAIR(_ZN7ee56751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee56751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56751[];
+extern void _ZN7ee567513barEv();
+extern void _ZN6dd67513fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee567513barEv,_ZTv0_n24_N7ee567513barEv)();
+extern void ABISELECT(_ZThn16_N7ee567513barEv,_ZThn8_N7ee567513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567513barEv,_ZTv0_n16_N7ee567513barEv)();
+extern void ABISELECT(_ZThn32_N7ee567513barEv,_ZThn20_N7ee567513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56751[0]),
+ (VTBL_ENTRY)&_ZN7ee567513barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee567513barEv,_ZTv0_n24_N7ee567513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567513barEv,_ZTv0_n16_N7ee567513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee56751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee56751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee56751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee56751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee56751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee56751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee56751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee56751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee56751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee56751[] = {
+ {&(_ZTV7ee56751[5]), 5,23},
+ {&(_ZTV7ee56751[12]), 12,23},
+ {&(_ZTV7ee56751[18]), 18,23},
+ {&(_ZTV7ee56751[22]), 22,23},
+ {&(_tg__ZTV6dd6751__7ee56751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee56751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee56751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee56751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee56751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee56751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee56751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee56751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee56751[];
+extern VTBL_ENTRY _ZTV7ee56751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56751[];
+static VTBL_ENTRY alt_thunk_names967[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567513barEv,_ZTv0_n16_N7ee567513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567513barEv,_ZThn20_N7ee567513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee567513barEv,_ZTv0_n24_N7ee567513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567513barEv,_ZThn8_N7ee567513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56751 = { "ee56751", // class name
+ bases_ee56751, 4,
+ &(vtc_ee56751[0]), // expected_vtbl_contents
+ &(vtt_ee56751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56751),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names967,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66751 : dd6751 {
+ int e;
+ virtual void foo(); // _ZN7ee667513fooEv
+ virtual void bar(); // _ZN7ee667513barEv
+ ~ee66751(); // tgen
+ ee66751(); // tgen
+};
+//SIG(1 ee66751) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66751 ::foo(){vfunc_called(this, "_ZN7ee667513fooEv");}
+void ee66751 ::bar(){vfunc_called(this, "_ZN7ee667513barEv");}
+ee66751 ::~ee66751(){ note_dtor("ee66751", this);} // tgen
+ee66751 ::ee66751(){ note_ctor("ee66751", this);} // tgen
+
+static void Test_ee66751()
+{
+ extern Class_Descriptor cd_ee66751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66751, buf);
+ ee66751 *dp, &lv = *(dp=new (buf) ee66751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(40,24), "ee66751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(24,16), "ee66751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), 0, "ee66751");
+ check_base_class_offset(lv, (dd6751*), 0, "ee66751");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66751.e");
+ test_class_info(&lv, &cd_ee66751);
+ dp->~ee66751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66751(Test_ee66751, "ee66751", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66751C1Ev();
+extern void _ZN7ee66751D1Ev();
+Name_Map name_map_ee66751[] = {
+ NSPAIR(_ZN7ee66751C1Ev),
+ NSPAIR(_ZN7ee66751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee66751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(40,24), //bcp->offset
+ 11, //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66751[];
+extern void _ZN7ee667513fooEv();
+extern void _ZN7ee667513barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee667513barEv,_ZTv0_n16_N7ee667513barEv)();
+extern void ABISELECT(_ZThn24_N7ee667513barEv,_ZThn16_N7ee667513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee667513fooEv,_ZTv0_n12_N7ee667513fooEv)();
+extern void ABISELECT(_ZThn40_N7ee667513fooEv,_ZThn24_N7ee667513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66751[0]),
+ (VTBL_ENTRY)&_ZN7ee667513fooEv,
+ (VTBL_ENTRY)&_ZN7ee667513barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667513barEv,_ZTv0_n16_N7ee667513barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667513fooEv,_ZTv0_n12_N7ee667513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee66751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee66751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee66751[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee66751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee66751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee66751[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee66751[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee66751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee66751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee66751[] = {
+ {&(_ZTV7ee66751[4]), 4,15},
+ {&(_tg__ZTV6dd6751__7ee66751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee66751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee66751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee66751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee66751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee66751[3]), 3,4},
+ {&(_ZTV7ee66751[10]), 10,15},
+ {&(_ZTV7ee66751[14]), 14,15},
+ {&(_tg__ZTV4bb51__7ee66751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee66751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee66751[];
+extern VTBL_ENTRY _ZTV7ee66751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66751[];
+static VTBL_ENTRY alt_thunk_names968[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67513fooEv,_ZThn24_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67513barEv,_ZThn16_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7513fooEv,_ZThn24_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7513barEv,_ZThn16_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667513fooEv,_ZTv0_n12_N7ee667513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee667513fooEv,_ZThn24_N7ee667513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667513barEv,_ZTv0_n16_N7ee667513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667513barEv,_ZThn16_N7ee667513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66751 = { "ee66751", // class name
+ bases_ee66751, 4,
+ &(vtc_ee66751[0]), // expected_vtbl_contents
+ &(vtt_ee66751[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66751),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66751),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names968,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76751 : virtual dd6751 {
+ int e;
+ virtual void foo(); // _ZN7ee767513fooEv
+ virtual void bar(); // _ZN7ee767513barEv
+ ~ee76751(); // tgen
+ ee76751(); // tgen
+};
+//SIG(1 ee76751) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76751 ::foo(){vfunc_called(this, "_ZN7ee767513fooEv");}
+void ee76751 ::bar(){vfunc_called(this, "_ZN7ee767513barEv");}
+ee76751 ::~ee76751(){ note_dtor("ee76751", this);} // tgen
+ee76751 ::ee76751(){ note_ctor("ee76751", this);} // tgen
+
+static void Test_ee76751()
+{
+ extern Class_Descriptor cd_ee76751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76751, buf);
+ ee76751 *dp, &lv = *(dp=new (buf) ee76751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee76751");
+ check_base_class_offset(lv, (bb51*)(cc751*)(dd6751*), ABISELECT(32,20), "ee76751");
+ check_base_class_offset(lv, (cc751*)(dd6751*), ABISELECT(16,8), "ee76751");
+ check_base_class_offset(lv, (dd6751*), ABISELECT(16,8), "ee76751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76751.e");
+ test_class_info(&lv, &cd_ee76751);
+ dp->~ee76751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76751(Test_ee76751, "ee76751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76751C1Ev();
+extern void _ZN7ee76751D1Ev();
+Name_Map name_map_ee76751[] = {
+ NSPAIR(_ZN7ee76751C1Ev),
+ NSPAIR(_ZN7ee76751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd6751;
+extern VTBL_ENTRY _ZTI6dd6751[];
+extern VTBL_ENTRY _ZTV6dd6751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6751[];
+static Base_Class bases_ee76751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76751[];
+extern void _ZN7ee767513fooEv();
+extern void _ZN7ee767513barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee767513fooEv,_ZTv0_n20_N7ee767513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767513fooEv,_ZThn8_N7ee767513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee767513barEv,_ZTv0_n24_N7ee767513barEv)();
+extern void ABISELECT(_ZThn16_N7ee767513barEv,_ZThn8_N7ee767513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767513barEv,_ZTv0_n16_N7ee767513barEv)();
+extern void ABISELECT(_ZThn32_N7ee767513barEv,_ZThn20_N7ee767513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767513fooEv,_ZTv0_n12_N7ee767513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee767513fooEv,_ZThn28_N7ee767513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76751[0]),
+ (VTBL_ENTRY)&_ZN7ee767513fooEv,
+ (VTBL_ENTRY)&_ZN7ee767513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767513fooEv,_ZTv0_n20_N7ee767513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee767513barEv,_ZTv0_n24_N7ee767513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767513barEv,_ZTv0_n16_N7ee767513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767513fooEv,_ZTv0_n12_N7ee767513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee76751[];
+extern void _ZN6dd67513fooEv();
+extern void _ZN6dd67513barEv();
+static VTBL_ENTRY _tg__ZTV6dd6751__7ee76751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&_ZN6dd67513fooEv,
+ (VTBL_ENTRY)&_ZN6dd67513barEv,
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc7516dd6751__7ee76751[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc7516dd6751__7ee76751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc7516dd6751__7ee76751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv)();
+extern void ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd6751__7ee76751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd6751__7ee76751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee76751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee76751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee76751[] = {
+ {&(_ZTV7ee76751[5]), 5,24},
+ {&(_ZTV7ee76751[13]), 13,24},
+ {&(_ZTV7ee76751[19]), 19,24},
+ {&(_ZTV7ee76751[23]), 23,24},
+ {&(_tg__ZTV6dd6751__7ee76751[4]), 4,6},
+ {&(_tg__ZTV5cc7516dd6751__7ee76751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc7516dd6751__7ee76751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc7516dd6751__7ee76751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd6751__7ee76751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd6751__7ee76751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee76751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee76751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee76751[];
+extern VTBL_ENTRY _ZTV7ee76751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76751[];
+static VTBL_ENTRY alt_thunk_names969[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67513fooEv,_ZTv0_n12_N6dd67513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67513fooEv,_ZThn20_N6dd67513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67513barEv,_ZTv0_n16_N6dd67513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67513barEv,_ZThn12_N6dd67513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn20_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn12_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767513fooEv,_ZTv0_n12_N7ee767513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee767513fooEv,_ZThn28_N7ee767513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767513barEv,_ZTv0_n16_N7ee767513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767513barEv,_ZThn20_N7ee767513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee767513barEv,_ZTv0_n24_N7ee767513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767513barEv,_ZThn8_N7ee767513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767513fooEv,_ZTv0_n20_N7ee767513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767513fooEv,_ZThn8_N7ee767513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76751 = { "ee76751", // class name
+ bases_ee76751, 4,
+ &(vtc_ee76751[0]), // expected_vtbl_contents
+ &(vtt_ee76751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76751),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names969,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7751 : virtual cc751 {
+ int d;
+ virtual void bar(); // _ZN6dd77513barEv
+ virtual void foo(); // _ZN6dd77513fooEv
+ ~dd7751(); // tgen
+ dd7751(); // tgen
+};
+//SIG(-1 dd7751) C1{ VBC2{ VBC3{ VBC4{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7751 ::bar(){vfunc_called(this, "_ZN6dd77513barEv");}
+void dd7751 ::foo(){vfunc_called(this, "_ZN6dd77513fooEv");}
+dd7751 ::~dd7751(){ note_dtor("dd7751", this);} // tgen
+dd7751 ::dd7751(){ note_ctor("dd7751", this);} // tgen
+
+static void Test_dd7751()
+{
+ extern Class_Descriptor cd_dd7751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7751, buf);
+ dd7751 *dp, &lv = *(dp=new (buf) dd7751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,24), "dd7751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,16), "dd7751");
+ check_base_class_offset(lv, (cc751*), ABISELECT(16,8), "dd7751");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7751.d");
+ test_class_info(&lv, &cd_dd7751);
+ dp->~dd7751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7751(Test_dd7751, "dd7751", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7751C1Ev();
+extern void _ZN6dd7751D1Ev();
+Name_Map name_map_dd7751[] = {
+ NSPAIR(_ZN6dd7751C1Ev),
+ NSPAIR(_ZN6dd7751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+static Base_Class bases_dd7751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,24), //bcp->offset
+ 20, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd7751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__6dd7751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__6dd7751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__6dd7751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_dd7751[] = {
+ {&(_ZTV6dd7751[5]), 5,24},
+ {&(_ZTV6dd7751[13]), 13,24},
+ {&(_ZTV6dd7751[19]), 19,24},
+ {&(_ZTV6dd7751[23]), 23,24},
+ {&(_tg__ZTV5cc751__6dd7751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__6dd7751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__6dd7751[3]), 3,4},
+ {&(_tg__ZTV4bb51__6dd7751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__6dd7751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static VTBL_ENTRY alt_thunk_names970[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7751 = { "dd7751", // class name
+ bases_dd7751, 3,
+ &(vtc_dd7751[0]), // expected_vtbl_contents
+ &(vtt_dd7751[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7751),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names970,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07751 : dd7751 {
+ int e;
+ ~ee07751(); // tgen
+ ee07751(); // tgen
+};
+//SIG(1 ee07751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07751 ::~ee07751(){ note_dtor("ee07751", this);} // tgen
+ee07751 ::ee07751(){ note_ctor("ee07751", this);} // tgen
+
+static void Test_ee07751()
+{
+ extern Class_Descriptor cd_ee07751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07751, buf);
+ ee07751 *dp, &lv = *(dp=new (buf) ee07751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee07751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee07751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(16,12), "ee07751");
+ check_base_class_offset(lv, (dd7751*), 0, "ee07751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07751.e");
+ test_class_info(&lv, &cd_ee07751);
+ dp->~ee07751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07751(Test_ee07751, "ee07751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07751C1Ev();
+extern void _ZN7ee07751D1Ev();
+Name_Map name_map_ee07751[] = {
+ NSPAIR(_ZN7ee07751C1Ev),
+ NSPAIR(_ZN7ee07751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee07751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee07751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee07751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee07751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee07751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee07751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee07751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee07751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee07751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee07751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee07751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee07751[] = {
+ {&(_ZTV7ee07751[5]), 5,24},
+ {&(_tg__ZTV6dd7751__7ee07751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee07751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee07751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee07751[3]), 3,4},
+ {&(_ZTV7ee07751[13]), 13,24},
+ {&(_ZTV7ee07751[19]), 19,24},
+ {&(_ZTV7ee07751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee07751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee07751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee07751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee07751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee07751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee07751[];
+extern VTBL_ENTRY _ZTV7ee07751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07751[];
+static VTBL_ENTRY alt_thunk_names971[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07751 = { "ee07751", // class name
+ bases_ee07751, 4,
+ &(vtc_ee07751[0]), // expected_vtbl_contents
+ &(vtt_ee07751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names971,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17751 : virtual dd7751 {
+ int e;
+ ~ee17751(); // tgen
+ ee17751(); // tgen
+};
+//SIG(1 ee17751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17751 ::~ee17751(){ note_dtor("ee17751", this);} // tgen
+ee17751 ::ee17751(){ note_ctor("ee17751", this);} // tgen
+
+static void Test_ee17751()
+{
+ extern Class_Descriptor cd_ee17751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17751, buf);
+ ee17751 *dp, &lv = *(dp=new (buf) ee17751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee17751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee17751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(32,16), "ee17751");
+ check_base_class_offset(lv, (dd7751*), ABISELECT(16,8), "ee17751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17751.e");
+ test_class_info(&lv, &cd_ee17751);
+ dp->~ee17751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17751(Test_ee17751, "ee17751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17751C1Ev();
+extern void _ZN7ee17751D1Ev();
+Name_Map name_map_ee17751[] = {
+ NSPAIR(_ZN7ee17751C1Ev),
+ NSPAIR(_ZN7ee17751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee17751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 28, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17751[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee17751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee17751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee17751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee17751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee17751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee17751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee17751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee17751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee17751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee17751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee17751[] = {
+ {&(_ZTV7ee17751[6]), 6,32},
+ {&(_ZTV7ee17751[13]), 13,32},
+ {&(_ZTV7ee17751[21]), 21,32},
+ {&(_ZTV7ee17751[27]), 27,32},
+ {&(_ZTV7ee17751[31]), 31,32},
+ {&(_tg__ZTV6dd7751__7ee17751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee17751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee17751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee17751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee17751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee17751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee17751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee17751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee17751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee17751[];
+extern VTBL_ENTRY _ZTV7ee17751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17751[];
+static VTBL_ENTRY alt_thunk_names972[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17751 = { "ee17751", // class name
+ bases_ee17751, 4,
+ &(vtc_ee17751[0]), // expected_vtbl_contents
+ &(vtt_ee17751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17751),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names972,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27751 : dd7751 {
+ int e;
+ virtual void foo(); // _ZN7ee277513fooEv
+ ~ee27751(); // tgen
+ ee27751(); // tgen
+};
+//SIG(1 ee27751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27751 ::foo(){vfunc_called(this, "_ZN7ee277513fooEv");}
+ee27751 ::~ee27751(){ note_dtor("ee27751", this);} // tgen
+ee27751 ::ee27751(){ note_ctor("ee27751", this);} // tgen
+
+static void Test_ee27751()
+{
+ extern Class_Descriptor cd_ee27751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27751, buf);
+ ee27751 *dp, &lv = *(dp=new (buf) ee27751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee27751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee27751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(16,12), "ee27751");
+ check_base_class_offset(lv, (dd7751*), 0, "ee27751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27751.e");
+ test_class_info(&lv, &cd_ee27751);
+ dp->~ee27751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27751(Test_ee27751, "ee27751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27751C1Ev();
+extern void _ZN7ee27751D1Ev();
+Name_Map name_map_ee27751[] = {
+ NSPAIR(_ZN7ee27751C1Ev),
+ NSPAIR(_ZN7ee27751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee27751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN7ee277513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee277513fooEv,_ZTv0_n20_N7ee277513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277513fooEv,_ZThn12_N7ee277513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277513fooEv,_ZTv0_n12_N7ee277513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee277513fooEv,_ZThn28_N7ee277513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN7ee277513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee277513fooEv,_ZTv0_n20_N7ee277513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277513fooEv,_ZTv0_n12_N7ee277513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee27751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee27751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee27751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee27751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee27751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee27751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee27751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee27751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee27751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee27751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee27751[] = {
+ {&(_ZTV7ee27751[5]), 5,24},
+ {&(_tg__ZTV6dd7751__7ee27751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee27751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee27751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee27751[3]), 3,4},
+ {&(_ZTV7ee27751[13]), 13,24},
+ {&(_ZTV7ee27751[19]), 19,24},
+ {&(_ZTV7ee27751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee27751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee27751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee27751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee27751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee27751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee27751[];
+extern VTBL_ENTRY _ZTV7ee27751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27751[];
+static VTBL_ENTRY alt_thunk_names973[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277513fooEv,_ZTv0_n12_N7ee277513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee277513fooEv,_ZThn28_N7ee277513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee277513fooEv,_ZTv0_n20_N7ee277513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277513fooEv,_ZThn12_N7ee277513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27751 = { "ee27751", // class name
+ bases_ee27751, 4,
+ &(vtc_ee27751[0]), // expected_vtbl_contents
+ &(vtt_ee27751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names973,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37751 : virtual dd7751 {
+ int e;
+ virtual void foo(); // _ZN7ee377513fooEv
+ ~ee37751(); // tgen
+ ee37751(); // tgen
+};
+//SIG(1 ee37751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37751 ::foo(){vfunc_called(this, "_ZN7ee377513fooEv");}
+ee37751 ::~ee37751(){ note_dtor("ee37751", this);} // tgen
+ee37751 ::ee37751(){ note_ctor("ee37751", this);} // tgen
+
+static void Test_ee37751()
+{
+ extern Class_Descriptor cd_ee37751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37751, buf);
+ ee37751 *dp, &lv = *(dp=new (buf) ee37751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee37751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee37751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(32,16), "ee37751");
+ check_base_class_offset(lv, (dd7751*), ABISELECT(16,8), "ee37751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37751.e");
+ test_class_info(&lv, &cd_ee37751);
+ dp->~ee37751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37751(Test_ee37751, "ee37751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37751C1Ev();
+extern void _ZN7ee37751D1Ev();
+Name_Map name_map_ee37751[] = {
+ NSPAIR(_ZN7ee37751C1Ev),
+ NSPAIR(_ZN7ee37751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee37751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 29, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37751[];
+extern void _ZN7ee377513fooEv();
+extern void _ZN6dd77513barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee377513fooEv,_ZTv0_n28_N7ee377513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377513fooEv,_ZThn8_N7ee377513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee377513fooEv,_ZTv0_n20_N7ee377513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377513fooEv,_ZThn16_N7ee377513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377513fooEv,_ZTv0_n12_N7ee377513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee377513fooEv,_ZThn32_N7ee377513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37751[0]),
+ (VTBL_ENTRY)&_ZN7ee377513fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee377513fooEv,_ZTv0_n28_N7ee377513fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee377513fooEv,_ZTv0_n20_N7ee377513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377513fooEv,_ZTv0_n12_N7ee377513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee37751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee37751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee37751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee37751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee37751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee37751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee37751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee37751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee37751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee37751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee37751[] = {
+ {&(_ZTV7ee37751[6]), 6,33},
+ {&(_ZTV7ee37751[14]), 14,33},
+ {&(_ZTV7ee37751[22]), 22,33},
+ {&(_ZTV7ee37751[28]), 28,33},
+ {&(_ZTV7ee37751[32]), 32,33},
+ {&(_tg__ZTV6dd7751__7ee37751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee37751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee37751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee37751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee37751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee37751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee37751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee37751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee37751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee37751[];
+extern VTBL_ENTRY _ZTV7ee37751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37751[];
+static VTBL_ENTRY alt_thunk_names974[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377513fooEv,_ZTv0_n12_N7ee377513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee377513fooEv,_ZThn32_N7ee377513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee377513fooEv,_ZTv0_n20_N7ee377513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377513fooEv,_ZThn16_N7ee377513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee377513fooEv,_ZTv0_n28_N7ee377513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377513fooEv,_ZThn8_N7ee377513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37751 = { "ee37751", // class name
+ bases_ee37751, 4,
+ &(vtc_ee37751[0]), // expected_vtbl_contents
+ &(vtt_ee37751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37751),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names974,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47751 : dd7751 {
+ int e;
+ virtual void bar(); // _ZN7ee477513barEv
+ ~ee47751(); // tgen
+ ee47751(); // tgen
+};
+//SIG(1 ee47751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47751 ::bar(){vfunc_called(this, "_ZN7ee477513barEv");}
+ee47751 ::~ee47751(){ note_dtor("ee47751", this);} // tgen
+ee47751 ::ee47751(){ note_ctor("ee47751", this);} // tgen
+
+static void Test_ee47751()
+{
+ extern Class_Descriptor cd_ee47751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47751, buf);
+ ee47751 *dp, &lv = *(dp=new (buf) ee47751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee47751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee47751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(16,12), "ee47751");
+ check_base_class_offset(lv, (dd7751*), 0, "ee47751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47751.e");
+ test_class_info(&lv, &cd_ee47751);
+ dp->~ee47751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47751(Test_ee47751, "ee47751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47751C1Ev();
+extern void _ZN7ee47751D1Ev();
+Name_Map name_map_ee47751[] = {
+ NSPAIR(_ZN7ee47751C1Ev),
+ NSPAIR(_ZN7ee47751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee47751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47751[];
+extern void _ZN7ee477513barEv();
+extern void _ZN6dd77513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee477513barEv,_ZTv0_n24_N7ee477513barEv)();
+extern void ABISELECT(_ZThn16_N7ee477513barEv,_ZThn12_N7ee477513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477513barEv,_ZTv0_n16_N7ee477513barEv)();
+extern void ABISELECT(_ZThn32_N7ee477513barEv,_ZThn20_N7ee477513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47751[0]),
+ (VTBL_ENTRY)&_ZN7ee477513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee477513barEv,_ZTv0_n24_N7ee477513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477513barEv,_ZTv0_n16_N7ee477513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee47751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee47751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee47751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee47751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee47751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee47751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee47751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee47751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee47751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee47751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee47751[] = {
+ {&(_ZTV7ee47751[5]), 5,24},
+ {&(_tg__ZTV6dd7751__7ee47751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee47751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee47751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee47751[3]), 3,4},
+ {&(_ZTV7ee47751[13]), 13,24},
+ {&(_ZTV7ee47751[19]), 19,24},
+ {&(_ZTV7ee47751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee47751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee47751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee47751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee47751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee47751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee47751[];
+extern VTBL_ENTRY _ZTV7ee47751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47751[];
+static VTBL_ENTRY alt_thunk_names975[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477513barEv,_ZTv0_n16_N7ee477513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477513barEv,_ZThn20_N7ee477513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee477513barEv,_ZTv0_n24_N7ee477513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477513barEv,_ZThn12_N7ee477513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47751 = { "ee47751", // class name
+ bases_ee47751, 4,
+ &(vtc_ee47751[0]), // expected_vtbl_contents
+ &(vtt_ee47751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names975,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57751 : virtual dd7751 {
+ int e;
+ virtual void bar(); // _ZN7ee577513barEv
+ ~ee57751(); // tgen
+ ee57751(); // tgen
+};
+//SIG(1 ee57751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57751 ::bar(){vfunc_called(this, "_ZN7ee577513barEv");}
+ee57751 ::~ee57751(){ note_dtor("ee57751", this);} // tgen
+ee57751 ::ee57751(){ note_ctor("ee57751", this);} // tgen
+
+static void Test_ee57751()
+{
+ extern Class_Descriptor cd_ee57751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57751, buf);
+ ee57751 *dp, &lv = *(dp=new (buf) ee57751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee57751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee57751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(32,16), "ee57751");
+ check_base_class_offset(lv, (dd7751*), ABISELECT(16,8), "ee57751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57751.e");
+ test_class_info(&lv, &cd_ee57751);
+ dp->~ee57751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57751(Test_ee57751, "ee57751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57751C1Ev();
+extern void _ZN7ee57751D1Ev();
+Name_Map name_map_ee57751[] = {
+ NSPAIR(_ZN7ee57751C1Ev),
+ NSPAIR(_ZN7ee57751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee57751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 29, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57751[];
+extern void _ZN7ee577513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee577513barEv,_ZTv0_n24_N7ee577513barEv)();
+extern void ABISELECT(_ZThn16_N7ee577513barEv,_ZThn8_N7ee577513barEv)() __attribute__((weak));
+extern void _ZN6dd77513fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee577513barEv,_ZTv0_n24_N7ee577513barEv)();
+extern void ABISELECT(_ZThn32_N7ee577513barEv,_ZThn16_N7ee577513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577513barEv,_ZTv0_n16_N7ee577513barEv)();
+extern void ABISELECT(_ZThn48_N7ee577513barEv,_ZThn24_N7ee577513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57751[0]),
+ (VTBL_ENTRY)&_ZN7ee577513barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577513barEv,_ZTv0_n24_N7ee577513barEv),
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577513barEv,_ZTv0_n24_N7ee577513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577513barEv,_ZTv0_n16_N7ee577513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee57751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee57751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee57751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee57751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee57751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee57751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee57751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee57751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee57751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee57751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee57751[] = {
+ {&(_ZTV7ee57751[6]), 6,33},
+ {&(_ZTV7ee57751[14]), 14,33},
+ {&(_ZTV7ee57751[22]), 22,33},
+ {&(_ZTV7ee57751[28]), 28,33},
+ {&(_ZTV7ee57751[32]), 32,33},
+ {&(_tg__ZTV6dd7751__7ee57751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee57751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee57751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee57751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee57751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee57751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee57751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee57751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee57751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee57751[];
+extern VTBL_ENTRY _ZTV7ee57751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57751[];
+static VTBL_ENTRY alt_thunk_names976[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577513barEv,_ZTv0_n16_N7ee577513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577513barEv,_ZThn24_N7ee577513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee577513barEv,_ZTv0_n24_N7ee577513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577513barEv,_ZThn16_N7ee577513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577513barEv,_ZThn8_N7ee577513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57751 = { "ee57751", // class name
+ bases_ee57751, 4,
+ &(vtc_ee57751[0]), // expected_vtbl_contents
+ &(vtt_ee57751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57751),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names976,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67751 : dd7751 {
+ int e;
+ virtual void foo(); // _ZN7ee677513fooEv
+ virtual void bar(); // _ZN7ee677513barEv
+ ~ee67751(); // tgen
+ ee67751(); // tgen
+};
+//SIG(1 ee67751) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67751 ::foo(){vfunc_called(this, "_ZN7ee677513fooEv");}
+void ee67751 ::bar(){vfunc_called(this, "_ZN7ee677513barEv");}
+ee67751 ::~ee67751(){ note_dtor("ee67751", this);} // tgen
+ee67751 ::ee67751(){ note_ctor("ee67751", this);} // tgen
+
+static void Test_ee67751()
+{
+ extern Class_Descriptor cd_ee67751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67751, buf);
+ ee67751 *dp, &lv = *(dp=new (buf) ee67751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(48,28), "ee67751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(32,20), "ee67751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(16,12), "ee67751");
+ check_base_class_offset(lv, (dd7751*), 0, "ee67751");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67751.e");
+ test_class_info(&lv, &cd_ee67751);
+ dp->~ee67751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67751(Test_ee67751, "ee67751", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67751C1Ev();
+extern void _ZN7ee67751D1Ev();
+Name_Map name_map_ee67751[] = {
+ NSPAIR(_ZN7ee67751C1Ev),
+ NSPAIR(_ZN7ee67751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee67751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(48,28), //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
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67751[];
+extern void _ZN7ee677513barEv();
+extern void _ZN7ee677513fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee677513fooEv,_ZTv0_n20_N7ee677513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677513fooEv,_ZThn12_N7ee677513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee677513barEv,_ZTv0_n24_N7ee677513barEv)();
+extern void ABISELECT(_ZThn16_N7ee677513barEv,_ZThn12_N7ee677513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677513barEv,_ZTv0_n16_N7ee677513barEv)();
+extern void ABISELECT(_ZThn32_N7ee677513barEv,_ZThn20_N7ee677513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677513fooEv,_ZTv0_n12_N7ee677513fooEv)();
+extern void ABISELECT(_ZThn48_N7ee677513fooEv,_ZThn28_N7ee677513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67751[0]),
+ (VTBL_ENTRY)&_ZN7ee677513barEv,
+ (VTBL_ENTRY)&_ZN7ee677513fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677513fooEv,_ZTv0_n20_N7ee677513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee677513barEv,_ZTv0_n24_N7ee677513barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677513barEv,_ZTv0_n16_N7ee677513barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677513fooEv,_ZTv0_n12_N7ee677513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee67751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee67751[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee67751[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee67751[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee67751[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee67751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee67751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee67751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee67751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee67751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee67751[] = {
+ {&(_ZTV7ee67751[5]), 5,24},
+ {&(_tg__ZTV6dd7751__7ee67751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee67751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee67751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee67751[3]), 3,4},
+ {&(_ZTV7ee67751[13]), 13,24},
+ {&(_ZTV7ee67751[19]), 19,24},
+ {&(_ZTV7ee67751[23]), 23,24},
+ {&(_tg__ZTV5cc751__7ee67751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee67751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee67751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee67751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee67751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee67751[];
+extern VTBL_ENTRY _ZTV7ee67751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67751[];
+static VTBL_ENTRY alt_thunk_names977[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn28_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn20_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn12_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn12_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677513fooEv,_ZTv0_n12_N7ee677513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee677513fooEv,_ZThn28_N7ee677513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677513barEv,_ZTv0_n16_N7ee677513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677513barEv,_ZThn20_N7ee677513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee677513barEv,_ZTv0_n24_N7ee677513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677513barEv,_ZThn12_N7ee677513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677513fooEv,_ZTv0_n20_N7ee677513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677513fooEv,_ZThn12_N7ee677513fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67751 = { "ee67751", // class name
+ bases_ee67751, 4,
+ &(vtc_ee67751[0]), // expected_vtbl_contents
+ &(vtt_ee67751[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67751),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67751),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67751),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names977,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77751 : virtual dd7751 {
+ int e;
+ virtual void foo(); // _ZN7ee777513fooEv
+ virtual void bar(); // _ZN7ee777513barEv
+ ~ee77751(); // tgen
+ ee77751(); // tgen
+};
+//SIG(1 ee77751) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77751 ::foo(){vfunc_called(this, "_ZN7ee777513fooEv");}
+void ee77751 ::bar(){vfunc_called(this, "_ZN7ee777513barEv");}
+ee77751 ::~ee77751(){ note_dtor("ee77751", this);} // tgen
+ee77751 ::ee77751(){ note_ctor("ee77751", this);} // tgen
+
+static void Test_ee77751()
+{
+ extern Class_Descriptor cd_ee77751;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77751, buf);
+ ee77751 *dp, &lv = *(dp=new (buf) ee77751());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77751)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77751)");
+ check_base_class_offset(lv, (aa1*)(bb51*), ABISELECT(64,32), "ee77751");
+ check_base_class_offset(lv, (bb51*)(cc751*), ABISELECT(48,24), "ee77751");
+ check_base_class_offset(lv, (cc751*)(dd7751*), ABISELECT(32,16), "ee77751");
+ check_base_class_offset(lv, (dd7751*), ABISELECT(16,8), "ee77751");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77751.e");
+ test_class_info(&lv, &cd_ee77751);
+ dp->~ee77751();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77751(Test_ee77751, "ee77751", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77751C1Ev();
+extern void _ZN7ee77751D1Ev();
+Name_Map name_map_ee77751[] = {
+ NSPAIR(_ZN7ee77751C1Ev),
+ NSPAIR(_ZN7ee77751D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa1;
+extern VTBL_ENTRY _ZTI3aa1[];
+extern VTBL_ENTRY _ZTV3aa1[];
+extern Class_Descriptor cd_bb51;
+extern VTBL_ENTRY _ZTI4bb51[];
+extern VTBL_ENTRY _ZTV4bb51[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb51[];
+extern Class_Descriptor cd_cc751;
+extern VTBL_ENTRY _ZTI5cc751[];
+extern VTBL_ENTRY _ZTV5cc751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc751[];
+extern Class_Descriptor cd_dd7751;
+extern VTBL_ENTRY _ZTI6dd7751[];
+extern VTBL_ENTRY _ZTV6dd7751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7751[];
+static Base_Class bases_ee77751[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa1, ABISELECT(64,32), //bcp->offset
+ 30, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb51, ABISELECT(48,24), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc751, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7751, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77751[];
+extern void _ZN7ee777513fooEv();
+extern void _ZN7ee777513barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee777513barEv,_ZTv0_n24_N7ee777513barEv)();
+extern void ABISELECT(_ZThn16_N7ee777513barEv,_ZThn8_N7ee777513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee777513fooEv,_ZTv0_n28_N7ee777513fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777513fooEv,_ZThn8_N7ee777513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777513fooEv,_ZTv0_n20_N7ee777513fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777513fooEv,_ZThn16_N7ee777513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777513barEv,_ZTv0_n24_N7ee777513barEv)();
+extern void ABISELECT(_ZThn32_N7ee777513barEv,_ZThn16_N7ee777513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777513barEv,_ZTv0_n16_N7ee777513barEv)();
+extern void ABISELECT(_ZThn48_N7ee777513barEv,_ZThn24_N7ee777513barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777513fooEv,_ZTv0_n12_N7ee777513fooEv)();
+extern void ABISELECT(_ZThn64_N7ee777513fooEv,_ZThn32_N7ee777513fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77751[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77751[0]),
+ (VTBL_ENTRY)&_ZN7ee777513fooEv,
+ (VTBL_ENTRY)&_ZN7ee777513barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777513barEv,_ZTv0_n24_N7ee777513barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee777513fooEv,_ZTv0_n28_N7ee777513fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777513fooEv,_ZTv0_n20_N7ee777513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777513barEv,_ZTv0_n24_N7ee777513barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777513barEv,_ZTv0_n16_N7ee777513barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777513fooEv,_ZTv0_n12_N7ee777513fooEv),
+};
+extern VTBL_ENTRY _ZTV7ee77751[];
+extern void _ZN6dd77513barEv();
+extern void _ZN6dd77513fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7751__7ee77751[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&_ZN6dd77513barEv,
+ (VTBL_ENTRY)&_ZN6dd77513fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv)();
+extern void ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc751__6dd7751__7ee77751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv)();
+extern void ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__6dd7751__7ee77751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__6dd7751__7ee77751[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv),
+};
+extern void _ZN5cc7513fooEv();
+extern void _ZN5cc7513barEv();
+static VTBL_ENTRY _tg__ZTV5cc751__7ee77751[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&_ZN5cc7513fooEv,
+ (VTBL_ENTRY)&_ZN5cc7513barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv)();
+extern void ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb51__5cc751__7ee77751[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa1__5cc751__7ee77751[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc751[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv),
+};
+extern void _ZN4bb513barEv();
+static VTBL_ENTRY _tg__ZTV4bb51__7ee77751[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN4bb513barEv,
+};
+extern void _ZN3aa13fooEv();
+static VTBL_ENTRY _tg__ZTV3aa1__4bb51__7ee77751[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb51[0]),
+ (VTBL_ENTRY)&_ZN3aa13fooEv,
+};
+static VTT_ENTRY vtt_ee77751[] = {
+ {&(_ZTV7ee77751[6]), 6,34},
+ {&(_ZTV7ee77751[15]), 15,34},
+ {&(_ZTV7ee77751[23]), 23,34},
+ {&(_ZTV7ee77751[29]), 29,34},
+ {&(_ZTV7ee77751[33]), 33,34},
+ {&(_tg__ZTV6dd7751__7ee77751[5]), 5,7},
+ {&(_tg__ZTV5cc751__6dd7751__7ee77751[6]), 6,8},
+ {&(_tg__ZTV4bb51__6dd7751__7ee77751[4]), 4,5},
+ {&(_tg__ZTV3aa1__6dd7751__7ee77751[3]), 3,4},
+ {&(_tg__ZTV5cc751__7ee77751[4]), 4,6},
+ {&(_tg__ZTV4bb51__5cc751__7ee77751[4]), 4,5},
+ {&(_tg__ZTV3aa1__5cc751__7ee77751[3]), 3,4},
+ {&(_tg__ZTV4bb51__7ee77751[3]), 3,4},
+ {&(_tg__ZTV3aa1__4bb51__7ee77751[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI7ee77751[];
+extern VTBL_ENTRY _ZTV7ee77751[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77751[];
+static VTBL_ENTRY alt_thunk_names978[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7513fooEv,_ZTv0_n12_N5cc7513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7513fooEv,_ZThn16_N5cc7513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7513barEv,_ZTv0_n16_N5cc7513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7513barEv,_ZThn8_N5cc7513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77513fooEv,_ZTv0_n12_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77513fooEv,_ZThn24_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77513barEv,_ZTv0_n16_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77513barEv,_ZThn16_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77513barEv,_ZTv0_n24_N6dd77513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513barEv,_ZThn8_N6dd77513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77513fooEv,_ZTv0_n20_N6dd77513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77513fooEv,_ZThn8_N6dd77513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777513fooEv,_ZTv0_n12_N7ee777513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee777513fooEv,_ZThn32_N7ee777513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777513barEv,_ZTv0_n16_N7ee777513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777513barEv,_ZThn24_N7ee777513barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777513fooEv,_ZTv0_n20_N7ee777513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777513fooEv,_ZThn16_N7ee777513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee777513fooEv,_ZTv0_n28_N7ee777513fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777513fooEv,_ZThn8_N7ee777513fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777513barEv,_ZTv0_n24_N7ee777513barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777513barEv,_ZThn16_N7ee777513barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777513barEv,_ZThn8_N7ee777513barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77751 = { "ee77751", // class name
+ bases_ee77751, 4,
+ &(vtc_ee77751[0]), // expected_vtbl_contents
+ &(vtt_ee77751[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77751),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77751),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77751),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names978,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct bb52 : virtual aa2 {
+ int b;
+ virtual void bar(); // _ZN4bb523barEv
+ ~bb52(); // tgen
+ bb52(); // tgen
+};
+//SIG(-1 bb52) C1{ VBC2{ v2 v1 Fi} v1 Fi}
+
+
+void bb52 ::bar(){vfunc_called(this, "_ZN4bb523barEv");}
+bb52 ::~bb52(){ note_dtor("bb52", this);} // tgen
+bb52 ::bb52(){ note_ctor("bb52", this);} // tgen
+
+static void Test_bb52()
+{
+ extern Class_Descriptor cd_bb52;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_bb52, buf);
+ bb52 *dp, &lv = *(dp=new (buf) bb52());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(bb52)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(bb52)");
+ check_base_class_offset(lv, (aa2*), ABISELECT(16,8), "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(32,16));
+
+#else // __cplusplus
+
+extern void _ZN4bb52C1Ev();
+extern void _ZN4bb52D1Ev();
+Name_Map name_map_bb52[] = {
+ NSPAIR(_ZN4bb52C1Ev),
+ NSPAIR(_ZN4bb52D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+static Base_Class bases_bb52[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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 _ZTI4bb52[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_bb52[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV4bb52[];
+static VTT_ENTRY vtt_bb52[] = {
+ {&(_ZTV4bb52[3]), 3,10},
+ {&(_ZTV4bb52[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static VTBL_ENTRY alt_thunk_names979[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_bb52 = { "bb52", // class name
+ bases_bb52, 1,
+ &(vtc_bb52[0]), // expected_vtbl_contents
+ &(vtt_bb52[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI4bb52),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV4bb52),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT4bb52),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names979,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc052 : bb52 {
+ int c;
+ ~cc052(); // tgen
+ cc052(); // tgen
+};
+//SIG(-1 cc052) C1{ BC2{ VBC3{ v2 v1 Fi} v1 Fi} Fi}
+
+
+cc052 ::~cc052(){ note_dtor("cc052", this);} // tgen
+cc052 ::cc052(){ note_ctor("cc052", this);} // tgen
+
+static void Test_cc052()
+{
+ extern Class_Descriptor cd_cc052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc052, buf);
+ cc052 *dp, &lv = *(dp=new (buf) cc052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc052)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(16,12), "cc052");
+ check_base_class_offset(lv, (bb52*), 0, "cc052");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc052.c");
+ test_class_info(&lv, &cd_cc052);
+ dp->~cc052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc052(Test_cc052, "cc052", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc052C1Ev();
+extern void _ZN5cc052D1Ev();
+Name_Map name_map_cc052[] = {
+ NSPAIR(_ZN5cc052C1Ev),
+ NSPAIR(_ZN5cc052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc052[] = {
+ {&(_ZTV5cc052[3]), 3,10},
+ {&(_tg__ZTV4bb52__5cc052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc052[4]), 4,6},
+ {&(_ZTV5cc052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static VTBL_ENTRY alt_thunk_names980[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc052 = { "cc052", // class name
+ bases_cc052, 2,
+ &(vtc_cc052[0]), // expected_vtbl_contents
+ &(vtt_cc052[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc052),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names980,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0052 : cc052 {
+ int d;
+ ~dd0052(); // tgen
+ dd0052(); // tgen
+};
+//SIG(-1 dd0052) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd0052 ::~dd0052(){ note_dtor("dd0052", this);} // tgen
+dd0052 ::dd0052(){ note_ctor("dd0052", this);} // tgen
+
+static void Test_dd0052()
+{
+ extern Class_Descriptor cd_dd0052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0052, buf);
+ dd0052 *dp, &lv = *(dp=new (buf) dd0052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(24,16), "dd0052");
+ check_base_class_offset(lv, (bb52*)(cc052*), 0, "dd0052");
+ check_base_class_offset(lv, (cc052*), 0, "dd0052");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0052.d");
+ test_class_info(&lv, &cd_dd0052);
+ dp->~dd0052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0052(Test_dd0052, "dd0052", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0052C1Ev();
+extern void _ZN6dd0052D1Ev();
+Name_Map name_map_dd0052[] = {
+ NSPAIR(_ZN6dd0052C1Ev),
+ NSPAIR(_ZN6dd0052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd0052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd0052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd0052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd0052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd0052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0052[] = {
+ {&(_ZTV6dd0052[3]), 3,10},
+ {&(_tg__ZTV5cc052__6dd0052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd0052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd0052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd0052[4]), 4,6},
+ {&(_ZTV6dd0052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static VTBL_ENTRY alt_thunk_names981[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0052 = { "dd0052", // class name
+ bases_dd0052, 3,
+ &(vtc_dd0052[0]), // expected_vtbl_contents
+ &(vtt_dd0052[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0052),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names981,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00052 : dd0052 {
+ int e;
+ ~ee00052(); // tgen
+ ee00052(); // tgen
+};
+//SIG(1 ee00052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00052 ::~ee00052(){ note_dtor("ee00052", this);} // tgen
+ee00052 ::ee00052(){ note_ctor("ee00052", this);} // tgen
+
+static void Test_ee00052()
+{
+ extern Class_Descriptor cd_ee00052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00052, buf);
+ ee00052 *dp, &lv = *(dp=new (buf) ee00052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(24,20), "ee00052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), 0, "ee00052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), 0, "ee00052");
+ check_base_class_offset(lv, (dd0052*), 0, "ee00052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00052.e");
+ test_class_info(&lv, &cd_ee00052);
+ dp->~ee00052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00052(Test_ee00052, "ee00052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00052C1Ev();
+extern void _ZN7ee00052D1Ev();
+Name_Map name_map_ee00052[] = {
+ NSPAIR(_ZN7ee00052C1Ev),
+ NSPAIR(_ZN7ee00052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee00052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee00052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee00052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee00052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee00052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee00052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee00052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00052[] = {
+ {&(_ZTV7ee00052[3]), 3,10},
+ {&(_tg__ZTV6dd0052__7ee00052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee00052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee00052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee00052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee00052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee00052[4]), 4,6},
+ {&(_ZTV7ee00052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00052[];
+extern VTBL_ENTRY _ZTV7ee00052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00052[];
+static VTBL_ENTRY alt_thunk_names982[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00052 = { "ee00052", // class name
+ bases_ee00052, 4,
+ &(vtc_ee00052[0]), // expected_vtbl_contents
+ &(vtt_ee00052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names982,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10052 : virtual dd0052 {
+ int e;
+ ~ee10052(); // tgen
+ ee10052(); // tgen
+};
+//SIG(1 ee10052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10052 ::~ee10052(){ note_dtor("ee10052", this);} // tgen
+ee10052 ::ee10052(){ note_ctor("ee10052", this);} // tgen
+
+static void Test_ee10052()
+{
+ extern Class_Descriptor cd_ee10052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10052, buf);
+ ee10052 *dp, &lv = *(dp=new (buf) ee10052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(40,24), "ee10052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), ABISELECT(16,8), "ee10052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), ABISELECT(16,8), "ee10052");
+ check_base_class_offset(lv, (dd0052*), ABISELECT(16,8), "ee10052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10052.e");
+ test_class_info(&lv, &cd_ee10052);
+ dp->~ee10052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10052(Test_ee10052, "ee10052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10052C1Ev();
+extern void _ZN7ee10052D1Ev();
+Name_Map name_map_ee10052[] = {
+ NSPAIR(_ZN7ee10052C1Ev),
+ NSPAIR(_ZN7ee10052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee10052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10052[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee10052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee10052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee10052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee10052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee10052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee10052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10052[] = {
+ {&(_ZTV7ee10052[4]), 4,15},
+ {&(_ZTV7ee10052[8]), 8,15},
+ {&(_ZTV7ee10052[13]), 13,15},
+ {&(_tg__ZTV6dd0052__7ee10052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee10052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee10052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee10052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee10052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee10052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10052[];
+extern VTBL_ENTRY _ZTV7ee10052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10052[];
+static VTBL_ENTRY alt_thunk_names983[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10052 = { "ee10052", // class name
+ bases_ee10052, 4,
+ &(vtc_ee10052[0]), // expected_vtbl_contents
+ &(vtt_ee10052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10052),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names983,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20052 : dd0052 {
+ int e;
+ virtual void foo(); // _ZN7ee200523fooEv
+ ~ee20052(); // tgen
+ ee20052(); // tgen
+};
+//SIG(1 ee20052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20052 ::foo(){vfunc_called(this, "_ZN7ee200523fooEv");}
+ee20052 ::~ee20052(){ note_dtor("ee20052", this);} // tgen
+ee20052 ::ee20052(){ note_ctor("ee20052", this);} // tgen
+
+static void Test_ee20052()
+{
+ extern Class_Descriptor cd_ee20052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20052, buf);
+ ee20052 *dp, &lv = *(dp=new (buf) ee20052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(24,20), "ee20052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), 0, "ee20052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), 0, "ee20052");
+ check_base_class_offset(lv, (dd0052*), 0, "ee20052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20052.e");
+ test_class_info(&lv, &cd_ee20052);
+ dp->~ee20052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20052(Test_ee20052, "ee20052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20052C1Ev();
+extern void _ZN7ee20052D1Ev();
+Name_Map name_map_ee20052[] = {
+ NSPAIR(_ZN7ee20052C1Ev),
+ NSPAIR(_ZN7ee20052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee20052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20052[];
+extern void _ZN4bb523barEv();
+extern void _ZN7ee200523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee200523fooEv,_ZTv0_n12_N7ee200523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee200523fooEv,_ZThn20_N7ee200523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN7ee200523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee200523fooEv,_ZTv0_n12_N7ee200523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee20052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee20052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee20052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee20052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee20052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee20052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20052[] = {
+ {&(_ZTV7ee20052[3]), 3,11},
+ {&(_tg__ZTV6dd0052__7ee20052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee20052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee20052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee20052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee20052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee20052[4]), 4,6},
+ {&(_ZTV7ee20052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20052[];
+extern VTBL_ENTRY _ZTV7ee20052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20052[];
+static VTBL_ENTRY alt_thunk_names984[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee200523fooEv,_ZTv0_n12_N7ee200523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee200523fooEv,_ZThn20_N7ee200523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20052 = { "ee20052", // class name
+ bases_ee20052, 4,
+ &(vtc_ee20052[0]), // expected_vtbl_contents
+ &(vtt_ee20052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names984,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30052 : virtual dd0052 {
+ int e;
+ virtual void foo(); // _ZN7ee300523fooEv
+ ~ee30052(); // tgen
+ ee30052(); // tgen
+};
+//SIG(1 ee30052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30052 ::foo(){vfunc_called(this, "_ZN7ee300523fooEv");}
+ee30052 ::~ee30052(){ note_dtor("ee30052", this);} // tgen
+ee30052 ::ee30052(){ note_ctor("ee30052", this);} // tgen
+
+static void Test_ee30052()
+{
+ extern Class_Descriptor cd_ee30052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30052, buf);
+ ee30052 *dp, &lv = *(dp=new (buf) ee30052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(40,24), "ee30052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), ABISELECT(16,8), "ee30052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), ABISELECT(16,8), "ee30052");
+ check_base_class_offset(lv, (dd0052*), ABISELECT(16,8), "ee30052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30052.e");
+ test_class_info(&lv, &cd_ee30052);
+ dp->~ee30052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30052(Test_ee30052, "ee30052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30052C1Ev();
+extern void _ZN7ee30052D1Ev();
+Name_Map name_map_ee30052[] = {
+ NSPAIR(_ZN7ee30052C1Ev),
+ NSPAIR(_ZN7ee30052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee30052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30052[];
+extern void _ZN7ee300523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee300523fooEv,_ZTv0_n12_N7ee300523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee300523fooEv,_ZThn24_N7ee300523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30052[0]),
+ (VTBL_ENTRY)&_ZN7ee300523fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee300523fooEv,_ZTv0_n12_N7ee300523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee30052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee30052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee30052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee30052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee30052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee30052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30052[] = {
+ {&(_ZTV7ee30052[4]), 4,16},
+ {&(_ZTV7ee30052[9]), 9,16},
+ {&(_ZTV7ee30052[14]), 14,16},
+ {&(_tg__ZTV6dd0052__7ee30052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee30052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee30052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee30052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee30052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee30052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30052[];
+extern VTBL_ENTRY _ZTV7ee30052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30052[];
+static VTBL_ENTRY alt_thunk_names985[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee300523fooEv,_ZTv0_n12_N7ee300523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee300523fooEv,_ZThn24_N7ee300523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30052 = { "ee30052", // class name
+ bases_ee30052, 4,
+ &(vtc_ee30052[0]), // expected_vtbl_contents
+ &(vtt_ee30052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names985,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40052 : dd0052 {
+ int e;
+ virtual void bar(); // _ZN7ee400523barEv
+ ~ee40052(); // tgen
+ ee40052(); // tgen
+};
+//SIG(1 ee40052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40052 ::bar(){vfunc_called(this, "_ZN7ee400523barEv");}
+ee40052 ::~ee40052(){ note_dtor("ee40052", this);} // tgen
+ee40052 ::ee40052(){ note_ctor("ee40052", this);} // tgen
+
+static void Test_ee40052()
+{
+ extern Class_Descriptor cd_ee40052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40052, buf);
+ ee40052 *dp, &lv = *(dp=new (buf) ee40052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(24,20), "ee40052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), 0, "ee40052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), 0, "ee40052");
+ check_base_class_offset(lv, (dd0052*), 0, "ee40052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40052.e");
+ test_class_info(&lv, &cd_ee40052);
+ dp->~ee40052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40052(Test_ee40052, "ee40052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40052C1Ev();
+extern void _ZN7ee40052D1Ev();
+Name_Map name_map_ee40052[] = {
+ NSPAIR(_ZN7ee40052C1Ev),
+ NSPAIR(_ZN7ee40052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee40052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40052[];
+extern void _ZN7ee400523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee400523barEv,_ZTv0_n16_N7ee400523barEv)();
+extern void ABISELECT(_ZThn24_N7ee400523barEv,_ZThn20_N7ee400523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40052[0]),
+ (VTBL_ENTRY)&_ZN7ee400523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee400523barEv,_ZTv0_n16_N7ee400523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee40052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee40052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee40052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee40052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee40052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee40052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40052[] = {
+ {&(_ZTV7ee40052[3]), 3,10},
+ {&(_tg__ZTV6dd0052__7ee40052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee40052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee40052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee40052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee40052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee40052[4]), 4,6},
+ {&(_ZTV7ee40052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40052[];
+extern VTBL_ENTRY _ZTV7ee40052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40052[];
+static VTBL_ENTRY alt_thunk_names986[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee400523barEv,_ZTv0_n16_N7ee400523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee400523barEv,_ZThn20_N7ee400523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40052 = { "ee40052", // class name
+ bases_ee40052, 4,
+ &(vtc_ee40052[0]), // expected_vtbl_contents
+ &(vtt_ee40052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names986,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50052 : virtual dd0052 {
+ int e;
+ virtual void bar(); // _ZN7ee500523barEv
+ ~ee50052(); // tgen
+ ee50052(); // tgen
+};
+//SIG(1 ee50052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50052 ::bar(){vfunc_called(this, "_ZN7ee500523barEv");}
+ee50052 ::~ee50052(){ note_dtor("ee50052", this);} // tgen
+ee50052 ::ee50052(){ note_ctor("ee50052", this);} // tgen
+
+static void Test_ee50052()
+{
+ extern Class_Descriptor cd_ee50052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50052, buf);
+ ee50052 *dp, &lv = *(dp=new (buf) ee50052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(40,24), "ee50052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), ABISELECT(16,8), "ee50052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), ABISELECT(16,8), "ee50052");
+ check_base_class_offset(lv, (dd0052*), ABISELECT(16,8), "ee50052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50052.e");
+ test_class_info(&lv, &cd_ee50052);
+ dp->~ee50052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50052(Test_ee50052, "ee50052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50052C1Ev();
+extern void _ZN7ee50052D1Ev();
+Name_Map name_map_ee50052[] = {
+ NSPAIR(_ZN7ee50052C1Ev),
+ NSPAIR(_ZN7ee50052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee50052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50052[];
+extern void _ZN7ee500523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500523barEv,_ZTv0_n16_N7ee500523barEv)();
+extern void ABISELECT(_ZThn16_N7ee500523barEv,_ZThn8_N7ee500523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee500523barEv,_ZTv0_n16_N7ee500523barEv)();
+extern void ABISELECT(_ZThn40_N7ee500523barEv,_ZThn24_N7ee500523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50052[0]),
+ (VTBL_ENTRY)&_ZN7ee500523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500523barEv,_ZTv0_n16_N7ee500523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee500523barEv,_ZTv0_n16_N7ee500523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee50052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee50052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee50052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee50052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee50052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee50052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50052[] = {
+ {&(_ZTV7ee50052[4]), 4,16},
+ {&(_ZTV7ee50052[9]), 9,16},
+ {&(_ZTV7ee50052[14]), 14,16},
+ {&(_tg__ZTV6dd0052__7ee50052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee50052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee50052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee50052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee50052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee50052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50052[];
+extern VTBL_ENTRY _ZTV7ee50052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50052[];
+static VTBL_ENTRY alt_thunk_names987[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee500523barEv,_ZTv0_n16_N7ee500523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee500523barEv,_ZThn24_N7ee500523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee500523barEv,_ZThn8_N7ee500523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50052 = { "ee50052", // class name
+ bases_ee50052, 4,
+ &(vtc_ee50052[0]), // expected_vtbl_contents
+ &(vtt_ee50052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names987,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60052 : dd0052 {
+ int e;
+ virtual void foo(); // _ZN7ee600523fooEv
+ virtual void bar(); // _ZN7ee600523barEv
+ ~ee60052(); // tgen
+ ee60052(); // tgen
+};
+//SIG(1 ee60052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60052 ::foo(){vfunc_called(this, "_ZN7ee600523fooEv");}
+void ee60052 ::bar(){vfunc_called(this, "_ZN7ee600523barEv");}
+ee60052 ::~ee60052(){ note_dtor("ee60052", this);} // tgen
+ee60052 ::ee60052(){ note_ctor("ee60052", this);} // tgen
+
+static void Test_ee60052()
+{
+ extern Class_Descriptor cd_ee60052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60052, buf);
+ ee60052 *dp, &lv = *(dp=new (buf) ee60052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(24,20), "ee60052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), 0, "ee60052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), 0, "ee60052");
+ check_base_class_offset(lv, (dd0052*), 0, "ee60052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60052.e");
+ test_class_info(&lv, &cd_ee60052);
+ dp->~ee60052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60052(Test_ee60052, "ee60052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60052C1Ev();
+extern void _ZN7ee60052D1Ev();
+Name_Map name_map_ee60052[] = {
+ NSPAIR(_ZN7ee60052C1Ev),
+ NSPAIR(_ZN7ee60052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee60052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60052[];
+extern void _ZN7ee600523barEv();
+extern void _ZN7ee600523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee600523fooEv,_ZTv0_n12_N7ee600523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee600523fooEv,_ZThn20_N7ee600523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee600523barEv,_ZTv0_n16_N7ee600523barEv)();
+extern void ABISELECT(_ZThn24_N7ee600523barEv,_ZThn20_N7ee600523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60052[0]),
+ (VTBL_ENTRY)&_ZN7ee600523barEv,
+ (VTBL_ENTRY)&_ZN7ee600523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee600523fooEv,_ZTv0_n12_N7ee600523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee600523barEv,_ZTv0_n16_N7ee600523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee60052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee60052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee60052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee60052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee60052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee60052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60052[] = {
+ {&(_ZTV7ee60052[3]), 3,11},
+ {&(_tg__ZTV6dd0052__7ee60052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee60052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee60052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee60052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee60052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee60052[4]), 4,6},
+ {&(_ZTV7ee60052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60052[];
+extern VTBL_ENTRY _ZTV7ee60052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60052[];
+static VTBL_ENTRY alt_thunk_names988[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee600523barEv,_ZTv0_n16_N7ee600523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee600523barEv,_ZThn20_N7ee600523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee600523fooEv,_ZTv0_n12_N7ee600523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee600523fooEv,_ZThn20_N7ee600523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60052 = { "ee60052", // class name
+ bases_ee60052, 4,
+ &(vtc_ee60052[0]), // expected_vtbl_contents
+ &(vtt_ee60052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names988,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70052 : virtual dd0052 {
+ int e;
+ virtual void foo(); // _ZN7ee700523fooEv
+ virtual void bar(); // _ZN7ee700523barEv
+ ~ee70052(); // tgen
+ ee70052(); // tgen
+};
+//SIG(1 ee70052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70052 ::foo(){vfunc_called(this, "_ZN7ee700523fooEv");}
+void ee70052 ::bar(){vfunc_called(this, "_ZN7ee700523barEv");}
+ee70052 ::~ee70052(){ note_dtor("ee70052", this);} // tgen
+ee70052 ::ee70052(){ note_ctor("ee70052", this);} // tgen
+
+static void Test_ee70052()
+{
+ extern Class_Descriptor cd_ee70052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70052, buf);
+ ee70052 *dp, &lv = *(dp=new (buf) ee70052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd0052*), ABISELECT(40,24), "ee70052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd0052*), ABISELECT(16,8), "ee70052");
+ check_base_class_offset(lv, (cc052*)(dd0052*), ABISELECT(16,8), "ee70052");
+ check_base_class_offset(lv, (dd0052*), ABISELECT(16,8), "ee70052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70052.e");
+ test_class_info(&lv, &cd_ee70052);
+ dp->~ee70052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70052(Test_ee70052, "ee70052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70052C1Ev();
+extern void _ZN7ee70052D1Ev();
+Name_Map name_map_ee70052[] = {
+ NSPAIR(_ZN7ee70052C1Ev),
+ NSPAIR(_ZN7ee70052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd0052;
+extern VTBL_ENTRY _ZTI6dd0052[];
+extern VTBL_ENTRY _ZTV6dd0052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0052[];
+static Base_Class bases_ee70052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0052, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70052[];
+extern void _ZN7ee700523fooEv();
+extern void _ZN7ee700523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee700523barEv,_ZTv0_n16_N7ee700523barEv)();
+extern void ABISELECT(_ZThn16_N7ee700523barEv,_ZThn8_N7ee700523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee700523fooEv,_ZTv0_n12_N7ee700523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee700523fooEv,_ZThn24_N7ee700523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee700523barEv,_ZTv0_n16_N7ee700523barEv)();
+extern void ABISELECT(_ZThn40_N7ee700523barEv,_ZThn24_N7ee700523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70052[0]),
+ (VTBL_ENTRY)&_ZN7ee700523fooEv,
+ (VTBL_ENTRY)&_ZN7ee700523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700523barEv,_ZTv0_n16_N7ee700523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee700523fooEv,_ZTv0_n12_N7ee700523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee700523barEv,_ZTv0_n16_N7ee700523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0052__7ee70052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd0052__7ee70052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd0052__7ee70052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd0052__7ee70052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd0052__7ee70052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0052__7ee70052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70052[] = {
+ {&(_ZTV7ee70052[4]), 4,17},
+ {&(_ZTV7ee70052[10]), 10,17},
+ {&(_ZTV7ee70052[15]), 15,17},
+ {&(_tg__ZTV6dd0052__7ee70052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd0052__7ee70052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd0052__7ee70052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd0052__7ee70052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd0052__7ee70052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0052__7ee70052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70052[];
+extern VTBL_ENTRY _ZTV7ee70052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70052[];
+static VTBL_ENTRY alt_thunk_names989[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee700523fooEv,_ZTv0_n12_N7ee700523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee700523fooEv,_ZThn24_N7ee700523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee700523barEv,_ZTv0_n16_N7ee700523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee700523barEv,_ZThn24_N7ee700523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee700523barEv,_ZThn8_N7ee700523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70052 = { "ee70052", // class name
+ bases_ee70052, 4,
+ &(vtc_ee70052[0]), // expected_vtbl_contents
+ &(vtt_ee70052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names989,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1052 : virtual cc052 {
+ int d;
+ ~dd1052(); // tgen
+ dd1052(); // tgen
+};
+//SIG(-1 dd1052) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd1052 ::~dd1052(){ note_dtor("dd1052", this);} // tgen
+dd1052 ::dd1052(){ note_ctor("dd1052", this);} // tgen
+
+static void Test_dd1052()
+{
+ extern Class_Descriptor cd_dd1052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1052, buf);
+ dd1052 *dp, &lv = *(dp=new (buf) dd1052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,20), "dd1052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,8), "dd1052");
+ check_base_class_offset(lv, (cc052*), ABISELECT(16,8), "dd1052");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1052.d");
+ test_class_info(&lv, &cd_dd1052);
+ dp->~dd1052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1052(Test_dd1052, "dd1052", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1052C1Ev();
+extern void _ZN6dd1052D1Ev();
+Name_Map name_map_dd1052[] = {
+ NSPAIR(_ZN6dd1052C1Ev),
+ NSPAIR(_ZN6dd1052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd1052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ 4, //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 _ZTI6dd1052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd1052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd1052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd1052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1052[] = {
+ {&(_ZTV6dd1052[4]), 4,15},
+ {&(_ZTV6dd1052[8]), 8,15},
+ {&(_ZTV6dd1052[13]), 13,15},
+ {&(_tg__ZTV5cc052__6dd1052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd1052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd1052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd1052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static VTBL_ENTRY alt_thunk_names990[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1052 = { "dd1052", // class name
+ bases_dd1052, 3,
+ &(vtc_dd1052[0]), // expected_vtbl_contents
+ &(vtt_dd1052[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1052),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1052),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names990,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01052 : dd1052 {
+ int e;
+ ~ee01052(); // tgen
+ ee01052(); // tgen
+};
+//SIG(1 ee01052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01052 ::~ee01052(){ note_dtor("ee01052", this);} // tgen
+ee01052 ::ee01052(){ note_ctor("ee01052", this);} // tgen
+
+static void Test_ee01052()
+{
+ extern Class_Descriptor cd_ee01052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01052, buf);
+ ee01052 *dp, &lv = *(dp=new (buf) ee01052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee01052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee01052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(16,12), "ee01052");
+ check_base_class_offset(lv, (dd1052*), 0, "ee01052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01052.e");
+ test_class_info(&lv, &cd_ee01052);
+ dp->~ee01052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01052(Test_ee01052, "ee01052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01052C1Ev();
+extern void _ZN7ee01052D1Ev();
+Name_Map name_map_ee01052[] = {
+ NSPAIR(_ZN7ee01052C1Ev),
+ NSPAIR(_ZN7ee01052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee01052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01052[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee01052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee01052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee01052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee01052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee01052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee01052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee01052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01052[] = {
+ {&(_ZTV7ee01052[4]), 4,15},
+ {&(_tg__ZTV6dd1052__7ee01052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee01052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee01052[4]), 4,6},
+ {&(_ZTV7ee01052[8]), 8,15},
+ {&(_ZTV7ee01052[13]), 13,15},
+ {&(_tg__ZTV5cc052__7ee01052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee01052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee01052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee01052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01052[];
+extern VTBL_ENTRY _ZTV7ee01052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01052[];
+static VTBL_ENTRY alt_thunk_names991[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01052 = { "ee01052", // class name
+ bases_ee01052, 4,
+ &(vtc_ee01052[0]), // expected_vtbl_contents
+ &(vtt_ee01052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01052),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names991,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11052 : virtual dd1052 {
+ int e;
+ ~ee11052(); // tgen
+ ee11052(); // tgen
+};
+//SIG(1 ee11052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11052 ::~ee11052(){ note_dtor("ee11052", this);} // tgen
+ee11052 ::ee11052(){ note_ctor("ee11052", this);} // tgen
+
+static void Test_ee11052()
+{
+ extern Class_Descriptor cd_ee11052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11052, buf);
+ ee11052 *dp, &lv = *(dp=new (buf) ee11052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee11052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee11052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(32,16), "ee11052");
+ check_base_class_offset(lv, (dd1052*), ABISELECT(16,8), "ee11052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11052.e");
+ test_class_info(&lv, &cd_ee11052);
+ dp->~ee11052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11052(Test_ee11052, "ee11052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11052C1Ev();
+extern void _ZN7ee11052D1Ev();
+Name_Map name_map_ee11052[] = {
+ NSPAIR(_ZN7ee11052C1Ev),
+ NSPAIR(_ZN7ee11052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee11052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11052[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11052[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11052[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee11052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee11052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee11052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee11052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee11052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee11052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee11052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11052[] = {
+ {&(_ZTV7ee11052[5]), 5,20},
+ {&(_ZTV7ee11052[9]), 9,20},
+ {&(_ZTV7ee11052[13]), 13,20},
+ {&(_ZTV7ee11052[18]), 18,20},
+ {&(_tg__ZTV6dd1052__7ee11052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee11052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee11052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee11052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee11052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee11052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee11052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11052[];
+extern VTBL_ENTRY _ZTV7ee11052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11052[];
+static VTBL_ENTRY alt_thunk_names992[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11052 = { "ee11052", // class name
+ bases_ee11052, 4,
+ &(vtc_ee11052[0]), // expected_vtbl_contents
+ &(vtt_ee11052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11052),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names992,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21052 : dd1052 {
+ int e;
+ virtual void foo(); // _ZN7ee210523fooEv
+ ~ee21052(); // tgen
+ ee21052(); // tgen
+};
+//SIG(1 ee21052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21052 ::foo(){vfunc_called(this, "_ZN7ee210523fooEv");}
+ee21052 ::~ee21052(){ note_dtor("ee21052", this);} // tgen
+ee21052 ::ee21052(){ note_ctor("ee21052", this);} // tgen
+
+static void Test_ee21052()
+{
+ extern Class_Descriptor cd_ee21052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21052, buf);
+ ee21052 *dp, &lv = *(dp=new (buf) ee21052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee21052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee21052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(16,12), "ee21052");
+ check_base_class_offset(lv, (dd1052*), 0, "ee21052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21052.e");
+ test_class_info(&lv, &cd_ee21052);
+ dp->~ee21052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21052(Test_ee21052, "ee21052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21052C1Ev();
+extern void _ZN7ee21052D1Ev();
+Name_Map name_map_ee21052[] = {
+ NSPAIR(_ZN7ee21052C1Ev),
+ NSPAIR(_ZN7ee21052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee21052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21052[];
+extern void _ZN7ee210523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee210523fooEv,_ZTv0_n12_N7ee210523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee210523fooEv,_ZThn24_N7ee210523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21052[0]),
+ (VTBL_ENTRY)&_ZN7ee210523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee210523fooEv,_ZTv0_n12_N7ee210523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee21052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee21052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee21052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee21052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee21052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee21052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee21052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21052[] = {
+ {&(_ZTV7ee21052[4]), 4,16},
+ {&(_tg__ZTV6dd1052__7ee21052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee21052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee21052[4]), 4,6},
+ {&(_ZTV7ee21052[9]), 9,16},
+ {&(_ZTV7ee21052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee21052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee21052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee21052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee21052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21052[];
+extern VTBL_ENTRY _ZTV7ee21052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21052[];
+static VTBL_ENTRY alt_thunk_names993[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee210523fooEv,_ZTv0_n12_N7ee210523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee210523fooEv,_ZThn24_N7ee210523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21052 = { "ee21052", // class name
+ bases_ee21052, 4,
+ &(vtc_ee21052[0]), // expected_vtbl_contents
+ &(vtt_ee21052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names993,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31052 : virtual dd1052 {
+ int e;
+ virtual void foo(); // _ZN7ee310523fooEv
+ ~ee31052(); // tgen
+ ee31052(); // tgen
+};
+//SIG(1 ee31052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31052 ::foo(){vfunc_called(this, "_ZN7ee310523fooEv");}
+ee31052 ::~ee31052(){ note_dtor("ee31052", this);} // tgen
+ee31052 ::ee31052(){ note_ctor("ee31052", this);} // tgen
+
+static void Test_ee31052()
+{
+ extern Class_Descriptor cd_ee31052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31052, buf);
+ ee31052 *dp, &lv = *(dp=new (buf) ee31052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee31052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee31052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(32,16), "ee31052");
+ check_base_class_offset(lv, (dd1052*), ABISELECT(16,8), "ee31052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31052.e");
+ test_class_info(&lv, &cd_ee31052);
+ dp->~ee31052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31052(Test_ee31052, "ee31052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31052C1Ev();
+extern void _ZN7ee31052D1Ev();
+Name_Map name_map_ee31052[] = {
+ NSPAIR(_ZN7ee31052C1Ev),
+ NSPAIR(_ZN7ee31052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee31052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31052[];
+extern void _ZN7ee310523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee310523fooEv,_ZTv0_n12_N7ee310523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee310523fooEv,_ZThn28_N7ee310523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31052[0]),
+ (VTBL_ENTRY)&_ZN7ee310523fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31052[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee310523fooEv,_ZTv0_n12_N7ee310523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee31052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee31052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee31052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee31052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee31052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee31052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee31052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31052[] = {
+ {&(_ZTV7ee31052[5]), 5,21},
+ {&(_ZTV7ee31052[10]), 10,21},
+ {&(_ZTV7ee31052[14]), 14,21},
+ {&(_ZTV7ee31052[19]), 19,21},
+ {&(_tg__ZTV6dd1052__7ee31052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee31052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee31052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee31052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee31052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee31052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee31052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31052[];
+extern VTBL_ENTRY _ZTV7ee31052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31052[];
+static VTBL_ENTRY alt_thunk_names994[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee310523fooEv,_ZTv0_n12_N7ee310523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee310523fooEv,_ZThn28_N7ee310523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31052 = { "ee31052", // class name
+ bases_ee31052, 4,
+ &(vtc_ee31052[0]), // expected_vtbl_contents
+ &(vtt_ee31052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31052),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names994,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41052 : dd1052 {
+ int e;
+ virtual void bar(); // _ZN7ee410523barEv
+ ~ee41052(); // tgen
+ ee41052(); // tgen
+};
+//SIG(1 ee41052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41052 ::bar(){vfunc_called(this, "_ZN7ee410523barEv");}
+ee41052 ::~ee41052(){ note_dtor("ee41052", this);} // tgen
+ee41052 ::ee41052(){ note_ctor("ee41052", this);} // tgen
+
+static void Test_ee41052()
+{
+ extern Class_Descriptor cd_ee41052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41052, buf);
+ ee41052 *dp, &lv = *(dp=new (buf) ee41052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee41052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee41052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(16,12), "ee41052");
+ check_base_class_offset(lv, (dd1052*), 0, "ee41052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41052.e");
+ test_class_info(&lv, &cd_ee41052);
+ dp->~ee41052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41052(Test_ee41052, "ee41052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41052C1Ev();
+extern void _ZN7ee41052D1Ev();
+Name_Map name_map_ee41052[] = {
+ NSPAIR(_ZN7ee41052C1Ev),
+ NSPAIR(_ZN7ee41052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee41052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41052[];
+extern void _ZN7ee410523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410523barEv,_ZTv0_n16_N7ee410523barEv)();
+extern void ABISELECT(_ZThn16_N7ee410523barEv,_ZThn12_N7ee410523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee410523barEv,_ZTv0_n16_N7ee410523barEv)();
+extern void ABISELECT(_ZThn32_N7ee410523barEv,_ZThn24_N7ee410523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41052[0]),
+ (VTBL_ENTRY)&_ZN7ee410523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410523barEv,_ZTv0_n16_N7ee410523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee410523barEv,_ZTv0_n16_N7ee410523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee41052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee41052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee41052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee41052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee41052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee41052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee41052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41052[] = {
+ {&(_ZTV7ee41052[4]), 4,16},
+ {&(_tg__ZTV6dd1052__7ee41052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee41052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee41052[4]), 4,6},
+ {&(_ZTV7ee41052[9]), 9,16},
+ {&(_ZTV7ee41052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee41052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee41052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee41052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee41052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41052[];
+extern VTBL_ENTRY _ZTV7ee41052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41052[];
+static VTBL_ENTRY alt_thunk_names995[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee410523barEv,_ZTv0_n16_N7ee410523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee410523barEv,_ZThn24_N7ee410523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee410523barEv,_ZThn12_N7ee410523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41052 = { "ee41052", // class name
+ bases_ee41052, 4,
+ &(vtc_ee41052[0]), // expected_vtbl_contents
+ &(vtt_ee41052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names995,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51052 : virtual dd1052 {
+ int e;
+ virtual void bar(); // _ZN7ee510523barEv
+ ~ee51052(); // tgen
+ ee51052(); // tgen
+};
+//SIG(1 ee51052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51052 ::bar(){vfunc_called(this, "_ZN7ee510523barEv");}
+ee51052 ::~ee51052(){ note_dtor("ee51052", this);} // tgen
+ee51052 ::ee51052(){ note_ctor("ee51052", this);} // tgen
+
+static void Test_ee51052()
+{
+ extern Class_Descriptor cd_ee51052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51052, buf);
+ ee51052 *dp, &lv = *(dp=new (buf) ee51052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee51052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee51052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(32,16), "ee51052");
+ check_base_class_offset(lv, (dd1052*), ABISELECT(16,8), "ee51052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51052.e");
+ test_class_info(&lv, &cd_ee51052);
+ dp->~ee51052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51052(Test_ee51052, "ee51052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51052C1Ev();
+extern void _ZN7ee51052D1Ev();
+Name_Map name_map_ee51052[] = {
+ NSPAIR(_ZN7ee51052C1Ev),
+ NSPAIR(_ZN7ee51052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee51052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51052[];
+extern void _ZN7ee510523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510523barEv,_ZTv0_n16_N7ee510523barEv)();
+extern void ABISELECT(_ZThn32_N7ee510523barEv,_ZThn16_N7ee510523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee510523barEv,_ZTv0_n16_N7ee510523barEv)();
+extern void ABISELECT(_ZThn48_N7ee510523barEv,_ZThn28_N7ee510523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51052[0]),
+ (VTBL_ENTRY)&_ZN7ee510523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51052[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510523barEv,_ZTv0_n16_N7ee510523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee510523barEv,_ZTv0_n16_N7ee510523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee51052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee51052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee51052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee51052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee51052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee51052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee51052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51052[] = {
+ {&(_ZTV7ee51052[5]), 5,21},
+ {&(_ZTV7ee51052[10]), 10,21},
+ {&(_ZTV7ee51052[14]), 14,21},
+ {&(_ZTV7ee51052[19]), 19,21},
+ {&(_tg__ZTV6dd1052__7ee51052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee51052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee51052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee51052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee51052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee51052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee51052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51052[];
+extern VTBL_ENTRY _ZTV7ee51052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51052[];
+static VTBL_ENTRY alt_thunk_names996[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee510523barEv,_ZTv0_n16_N7ee510523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee510523barEv,_ZThn28_N7ee510523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee510523barEv,_ZThn16_N7ee510523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51052 = { "ee51052", // class name
+ bases_ee51052, 4,
+ &(vtc_ee51052[0]), // expected_vtbl_contents
+ &(vtt_ee51052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51052),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names996,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61052 : dd1052 {
+ int e;
+ virtual void foo(); // _ZN7ee610523fooEv
+ virtual void bar(); // _ZN7ee610523barEv
+ ~ee61052(); // tgen
+ ee61052(); // tgen
+};
+//SIG(1 ee61052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61052 ::foo(){vfunc_called(this, "_ZN7ee610523fooEv");}
+void ee61052 ::bar(){vfunc_called(this, "_ZN7ee610523barEv");}
+ee61052 ::~ee61052(){ note_dtor("ee61052", this);} // tgen
+ee61052 ::ee61052(){ note_ctor("ee61052", this);} // tgen
+
+static void Test_ee61052()
+{
+ extern Class_Descriptor cd_ee61052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61052, buf);
+ ee61052 *dp, &lv = *(dp=new (buf) ee61052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee61052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee61052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(16,12), "ee61052");
+ check_base_class_offset(lv, (dd1052*), 0, "ee61052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61052.e");
+ test_class_info(&lv, &cd_ee61052);
+ dp->~ee61052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61052(Test_ee61052, "ee61052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61052C1Ev();
+extern void _ZN7ee61052D1Ev();
+Name_Map name_map_ee61052[] = {
+ NSPAIR(_ZN7ee61052C1Ev),
+ NSPAIR(_ZN7ee61052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee61052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61052[];
+extern void _ZN7ee610523fooEv();
+extern void _ZN7ee610523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee610523barEv,_ZTv0_n16_N7ee610523barEv)();
+extern void ABISELECT(_ZThn16_N7ee610523barEv,_ZThn12_N7ee610523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee610523fooEv,_ZTv0_n12_N7ee610523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee610523fooEv,_ZThn24_N7ee610523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee610523barEv,_ZTv0_n16_N7ee610523barEv)();
+extern void ABISELECT(_ZThn32_N7ee610523barEv,_ZThn24_N7ee610523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61052[0]),
+ (VTBL_ENTRY)&_ZN7ee610523fooEv,
+ (VTBL_ENTRY)&_ZN7ee610523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610523barEv,_ZTv0_n16_N7ee610523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee610523fooEv,_ZTv0_n12_N7ee610523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee610523barEv,_ZTv0_n16_N7ee610523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee61052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee61052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee61052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee61052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee61052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee61052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee61052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61052[] = {
+ {&(_ZTV7ee61052[4]), 4,17},
+ {&(_tg__ZTV6dd1052__7ee61052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee61052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee61052[4]), 4,6},
+ {&(_ZTV7ee61052[10]), 10,17},
+ {&(_ZTV7ee61052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee61052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee61052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee61052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee61052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61052[];
+extern VTBL_ENTRY _ZTV7ee61052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61052[];
+static VTBL_ENTRY alt_thunk_names997[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee610523fooEv,_ZTv0_n12_N7ee610523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee610523fooEv,_ZThn24_N7ee610523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee610523barEv,_ZTv0_n16_N7ee610523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee610523barEv,_ZThn24_N7ee610523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee610523barEv,_ZThn12_N7ee610523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61052 = { "ee61052", // class name
+ bases_ee61052, 4,
+ &(vtc_ee61052[0]), // expected_vtbl_contents
+ &(vtt_ee61052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names997,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71052 : virtual dd1052 {
+ int e;
+ virtual void foo(); // _ZN7ee710523fooEv
+ virtual void bar(); // _ZN7ee710523barEv
+ ~ee71052(); // tgen
+ ee71052(); // tgen
+};
+//SIG(1 ee71052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71052 ::foo(){vfunc_called(this, "_ZN7ee710523fooEv");}
+void ee71052 ::bar(){vfunc_called(this, "_ZN7ee710523barEv");}
+ee71052 ::~ee71052(){ note_dtor("ee71052", this);} // tgen
+ee71052 ::ee71052(){ note_ctor("ee71052", this);} // tgen
+
+static void Test_ee71052()
+{
+ extern Class_Descriptor cd_ee71052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71052, buf);
+ ee71052 *dp, &lv = *(dp=new (buf) ee71052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee71052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee71052");
+ check_base_class_offset(lv, (cc052*)(dd1052*), ABISELECT(32,16), "ee71052");
+ check_base_class_offset(lv, (dd1052*), ABISELECT(16,8), "ee71052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71052.e");
+ test_class_info(&lv, &cd_ee71052);
+ dp->~ee71052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71052(Test_ee71052, "ee71052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71052C1Ev();
+extern void _ZN7ee71052D1Ev();
+Name_Map name_map_ee71052[] = {
+ NSPAIR(_ZN7ee71052C1Ev),
+ NSPAIR(_ZN7ee71052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd1052;
+extern VTBL_ENTRY _ZTI6dd1052[];
+extern VTBL_ENTRY _ZTV6dd1052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1052[];
+static Base_Class bases_ee71052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1052, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71052[];
+extern void _ZN7ee710523fooEv();
+extern void _ZN7ee710523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee710523barEv,_ZTv0_n16_N7ee710523barEv)();
+extern void ABISELECT(_ZThn32_N7ee710523barEv,_ZThn16_N7ee710523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee710523fooEv,_ZTv0_n12_N7ee710523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee710523fooEv,_ZThn28_N7ee710523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee710523barEv,_ZTv0_n16_N7ee710523barEv)();
+extern void ABISELECT(_ZThn48_N7ee710523barEv,_ZThn28_N7ee710523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71052[0]),
+ (VTBL_ENTRY)&_ZN7ee710523fooEv,
+ (VTBL_ENTRY)&_ZN7ee710523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71052[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710523barEv,_ZTv0_n16_N7ee710523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee710523fooEv,_ZTv0_n12_N7ee710523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee710523barEv,_ZTv0_n16_N7ee710523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71052[];
+static VTBL_ENTRY _tg__ZTV6dd1052__7ee71052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd1052__7ee71052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1052__7ee71052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee71052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee71052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee71052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee71052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71052[] = {
+ {&(_ZTV7ee71052[5]), 5,22},
+ {&(_ZTV7ee71052[11]), 11,22},
+ {&(_ZTV7ee71052[15]), 15,22},
+ {&(_ZTV7ee71052[20]), 20,22},
+ {&(_tg__ZTV6dd1052__7ee71052[4]), 4,4},
+ {&(_tg__ZTV5cc052__6dd1052__7ee71052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1052__7ee71052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee71052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee71052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee71052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee71052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71052[];
+extern VTBL_ENTRY _ZTV7ee71052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71052[];
+static VTBL_ENTRY alt_thunk_names998[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee710523fooEv,_ZTv0_n12_N7ee710523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee710523fooEv,_ZThn28_N7ee710523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee710523barEv,_ZTv0_n16_N7ee710523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee710523barEv,_ZThn28_N7ee710523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee710523barEv,_ZThn16_N7ee710523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71052 = { "ee71052", // class name
+ bases_ee71052, 4,
+ &(vtc_ee71052[0]), // expected_vtbl_contents
+ &(vtt_ee71052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71052),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names998,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2052 : cc052 {
+ int d;
+ virtual void foo(); // _ZN6dd20523fooEv
+ ~dd2052(); // tgen
+ dd2052(); // tgen
+};
+//SIG(-1 dd2052) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2052 ::foo(){vfunc_called(this, "_ZN6dd20523fooEv");}
+dd2052 ::~dd2052(){ note_dtor("dd2052", this);} // tgen
+dd2052 ::dd2052(){ note_ctor("dd2052", this);} // tgen
+
+static void Test_dd2052()
+{
+ extern Class_Descriptor cd_dd2052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2052, buf);
+ dd2052 *dp, &lv = *(dp=new (buf) dd2052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(24,16), "dd2052");
+ check_base_class_offset(lv, (bb52*)(cc052*), 0, "dd2052");
+ check_base_class_offset(lv, (cc052*), 0, "dd2052");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2052.d");
+ test_class_info(&lv, &cd_dd2052);
+ dp->~dd2052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2052(Test_dd2052, "dd2052", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2052C1Ev();
+extern void _ZN6dd2052D1Ev();
+Name_Map name_map_dd2052[] = {
+ NSPAIR(_ZN6dd2052C1Ev),
+ NSPAIR(_ZN6dd2052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd2052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd2052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd2052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd2052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd2052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2052[] = {
+ {&(_ZTV6dd2052[3]), 3,11},
+ {&(_tg__ZTV5cc052__6dd2052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd2052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd2052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd2052[4]), 4,6},
+ {&(_ZTV6dd2052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static VTBL_ENTRY alt_thunk_names999[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2052 = { "dd2052", // class name
+ bases_dd2052, 3,
+ &(vtc_dd2052[0]), // expected_vtbl_contents
+ &(vtt_dd2052[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2052),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names999,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02052 : dd2052 {
+ int e;
+ ~ee02052(); // tgen
+ ee02052(); // tgen
+};
+//SIG(1 ee02052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02052 ::~ee02052(){ note_dtor("ee02052", this);} // tgen
+ee02052 ::ee02052(){ note_ctor("ee02052", this);} // tgen
+
+static void Test_ee02052()
+{
+ extern Class_Descriptor cd_ee02052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02052, buf);
+ ee02052 *dp, &lv = *(dp=new (buf) ee02052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(24,20), "ee02052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), 0, "ee02052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), 0, "ee02052");
+ check_base_class_offset(lv, (dd2052*), 0, "ee02052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02052.e");
+ test_class_info(&lv, &cd_ee02052);
+ dp->~ee02052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02052(Test_ee02052, "ee02052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02052C1Ev();
+extern void _ZN7ee02052D1Ev();
+Name_Map name_map_ee02052[] = {
+ NSPAIR(_ZN7ee02052C1Ev),
+ NSPAIR(_ZN7ee02052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee02052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee02052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee02052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee02052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee02052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee02052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee02052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02052[] = {
+ {&(_ZTV7ee02052[3]), 3,11},
+ {&(_tg__ZTV6dd2052__7ee02052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee02052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee02052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee02052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee02052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee02052[4]), 4,6},
+ {&(_ZTV7ee02052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02052[];
+extern VTBL_ENTRY _ZTV7ee02052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02052[];
+static VTBL_ENTRY alt_thunk_names1000[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02052 = { "ee02052", // class name
+ bases_ee02052, 4,
+ &(vtc_ee02052[0]), // expected_vtbl_contents
+ &(vtt_ee02052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1000,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12052 : virtual dd2052 {
+ int e;
+ ~ee12052(); // tgen
+ ee12052(); // tgen
+};
+//SIG(1 ee12052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12052 ::~ee12052(){ note_dtor("ee12052", this);} // tgen
+ee12052 ::ee12052(){ note_ctor("ee12052", this);} // tgen
+
+static void Test_ee12052()
+{
+ extern Class_Descriptor cd_ee12052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12052, buf);
+ ee12052 *dp, &lv = *(dp=new (buf) ee12052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(40,24), "ee12052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), ABISELECT(16,8), "ee12052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), ABISELECT(16,8), "ee12052");
+ check_base_class_offset(lv, (dd2052*), ABISELECT(16,8), "ee12052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12052.e");
+ test_class_info(&lv, &cd_ee12052);
+ dp->~ee12052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12052(Test_ee12052, "ee12052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12052C1Ev();
+extern void _ZN7ee12052D1Ev();
+Name_Map name_map_ee12052[] = {
+ NSPAIR(_ZN7ee12052C1Ev),
+ NSPAIR(_ZN7ee12052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee12052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12052[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee12052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee12052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee12052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee12052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee12052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee12052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12052[] = {
+ {&(_ZTV7ee12052[4]), 4,17},
+ {&(_ZTV7ee12052[9]), 9,17},
+ {&(_ZTV7ee12052[15]), 15,17},
+ {&(_tg__ZTV6dd2052__7ee12052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee12052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee12052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee12052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee12052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee12052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12052[];
+extern VTBL_ENTRY _ZTV7ee12052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12052[];
+static VTBL_ENTRY alt_thunk_names1001[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12052 = { "ee12052", // class name
+ bases_ee12052, 4,
+ &(vtc_ee12052[0]), // expected_vtbl_contents
+ &(vtt_ee12052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1001,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22052 : dd2052 {
+ int e;
+ virtual void foo(); // _ZN7ee220523fooEv
+ ~ee22052(); // tgen
+ ee22052(); // tgen
+};
+//SIG(1 ee22052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22052 ::foo(){vfunc_called(this, "_ZN7ee220523fooEv");}
+ee22052 ::~ee22052(){ note_dtor("ee22052", this);} // tgen
+ee22052 ::ee22052(){ note_ctor("ee22052", this);} // tgen
+
+static void Test_ee22052()
+{
+ extern Class_Descriptor cd_ee22052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22052, buf);
+ ee22052 *dp, &lv = *(dp=new (buf) ee22052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(24,20), "ee22052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), 0, "ee22052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), 0, "ee22052");
+ check_base_class_offset(lv, (dd2052*), 0, "ee22052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22052.e");
+ test_class_info(&lv, &cd_ee22052);
+ dp->~ee22052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22052(Test_ee22052, "ee22052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22052C1Ev();
+extern void _ZN7ee22052D1Ev();
+Name_Map name_map_ee22052[] = {
+ NSPAIR(_ZN7ee22052C1Ev),
+ NSPAIR(_ZN7ee22052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee22052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22052[];
+extern void _ZN4bb523barEv();
+extern void _ZN7ee220523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee220523fooEv,_ZTv0_n12_N7ee220523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee220523fooEv,_ZThn20_N7ee220523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN7ee220523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee220523fooEv,_ZTv0_n12_N7ee220523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee22052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee22052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee22052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee22052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee22052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee22052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22052[] = {
+ {&(_ZTV7ee22052[3]), 3,11},
+ {&(_tg__ZTV6dd2052__7ee22052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee22052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee22052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee22052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee22052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee22052[4]), 4,6},
+ {&(_ZTV7ee22052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22052[];
+extern VTBL_ENTRY _ZTV7ee22052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22052[];
+static VTBL_ENTRY alt_thunk_names1002[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee220523fooEv,_ZTv0_n12_N7ee220523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee220523fooEv,_ZThn20_N7ee220523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22052 = { "ee22052", // class name
+ bases_ee22052, 4,
+ &(vtc_ee22052[0]), // expected_vtbl_contents
+ &(vtt_ee22052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1002,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32052 : virtual dd2052 {
+ int e;
+ virtual void foo(); // _ZN7ee320523fooEv
+ ~ee32052(); // tgen
+ ee32052(); // tgen
+};
+//SIG(1 ee32052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32052 ::foo(){vfunc_called(this, "_ZN7ee320523fooEv");}
+ee32052 ::~ee32052(){ note_dtor("ee32052", this);} // tgen
+ee32052 ::ee32052(){ note_ctor("ee32052", this);} // tgen
+
+static void Test_ee32052()
+{
+ extern Class_Descriptor cd_ee32052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32052, buf);
+ ee32052 *dp, &lv = *(dp=new (buf) ee32052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(40,24), "ee32052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), ABISELECT(16,8), "ee32052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), ABISELECT(16,8), "ee32052");
+ check_base_class_offset(lv, (dd2052*), ABISELECT(16,8), "ee32052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32052.e");
+ test_class_info(&lv, &cd_ee32052);
+ dp->~ee32052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32052(Test_ee32052, "ee32052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32052C1Ev();
+extern void _ZN7ee32052D1Ev();
+Name_Map name_map_ee32052[] = {
+ NSPAIR(_ZN7ee32052C1Ev),
+ NSPAIR(_ZN7ee32052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee32052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32052[];
+extern void _ZN7ee320523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee320523fooEv,_ZTv0_n20_N7ee320523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee320523fooEv,_ZThn8_N7ee320523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee320523fooEv,_ZTv0_n12_N7ee320523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee320523fooEv,_ZThn24_N7ee320523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32052[0]),
+ (VTBL_ENTRY)&_ZN7ee320523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee320523fooEv,_ZTv0_n20_N7ee320523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee320523fooEv,_ZTv0_n12_N7ee320523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee32052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee32052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee32052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee32052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee32052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee32052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32052[] = {
+ {&(_ZTV7ee32052[4]), 4,18},
+ {&(_ZTV7ee32052[10]), 10,18},
+ {&(_ZTV7ee32052[16]), 16,18},
+ {&(_tg__ZTV6dd2052__7ee32052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee32052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee32052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee32052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee32052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee32052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32052[];
+extern VTBL_ENTRY _ZTV7ee32052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32052[];
+static VTBL_ENTRY alt_thunk_names1003[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee320523fooEv,_ZTv0_n12_N7ee320523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee320523fooEv,_ZThn24_N7ee320523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee320523fooEv,_ZTv0_n20_N7ee320523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee320523fooEv,_ZThn8_N7ee320523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32052 = { "ee32052", // class name
+ bases_ee32052, 4,
+ &(vtc_ee32052[0]), // expected_vtbl_contents
+ &(vtt_ee32052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32052),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1003,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42052 : dd2052 {
+ int e;
+ virtual void bar(); // _ZN7ee420523barEv
+ ~ee42052(); // tgen
+ ee42052(); // tgen
+};
+//SIG(1 ee42052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42052 ::bar(){vfunc_called(this, "_ZN7ee420523barEv");}
+ee42052 ::~ee42052(){ note_dtor("ee42052", this);} // tgen
+ee42052 ::ee42052(){ note_ctor("ee42052", this);} // tgen
+
+static void Test_ee42052()
+{
+ extern Class_Descriptor cd_ee42052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42052, buf);
+ ee42052 *dp, &lv = *(dp=new (buf) ee42052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(24,20), "ee42052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), 0, "ee42052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), 0, "ee42052");
+ check_base_class_offset(lv, (dd2052*), 0, "ee42052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42052.e");
+ test_class_info(&lv, &cd_ee42052);
+ dp->~ee42052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42052(Test_ee42052, "ee42052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42052C1Ev();
+extern void _ZN7ee42052D1Ev();
+Name_Map name_map_ee42052[] = {
+ NSPAIR(_ZN7ee42052C1Ev),
+ NSPAIR(_ZN7ee42052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee42052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42052[];
+extern void _ZN7ee420523barEv();
+extern void _ZN6dd20523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee420523barEv,_ZTv0_n16_N7ee420523barEv)();
+extern void ABISELECT(_ZThn24_N7ee420523barEv,_ZThn20_N7ee420523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42052[0]),
+ (VTBL_ENTRY)&_ZN7ee420523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee420523barEv,_ZTv0_n16_N7ee420523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee42052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee42052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee42052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee42052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee42052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee42052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42052[] = {
+ {&(_ZTV7ee42052[3]), 3,11},
+ {&(_tg__ZTV6dd2052__7ee42052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee42052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee42052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee42052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee42052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee42052[4]), 4,6},
+ {&(_ZTV7ee42052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42052[];
+extern VTBL_ENTRY _ZTV7ee42052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42052[];
+static VTBL_ENTRY alt_thunk_names1004[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee420523barEv,_ZTv0_n16_N7ee420523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee420523barEv,_ZThn20_N7ee420523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42052 = { "ee42052", // class name
+ bases_ee42052, 4,
+ &(vtc_ee42052[0]), // expected_vtbl_contents
+ &(vtt_ee42052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1004,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52052 : virtual dd2052 {
+ int e;
+ virtual void bar(); // _ZN7ee520523barEv
+ ~ee52052(); // tgen
+ ee52052(); // tgen
+};
+//SIG(1 ee52052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52052 ::bar(){vfunc_called(this, "_ZN7ee520523barEv");}
+ee52052 ::~ee52052(){ note_dtor("ee52052", this);} // tgen
+ee52052 ::ee52052(){ note_ctor("ee52052", this);} // tgen
+
+static void Test_ee52052()
+{
+ extern Class_Descriptor cd_ee52052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52052, buf);
+ ee52052 *dp, &lv = *(dp=new (buf) ee52052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(40,24), "ee52052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), ABISELECT(16,8), "ee52052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), ABISELECT(16,8), "ee52052");
+ check_base_class_offset(lv, (dd2052*), ABISELECT(16,8), "ee52052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52052.e");
+ test_class_info(&lv, &cd_ee52052);
+ dp->~ee52052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52052(Test_ee52052, "ee52052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52052C1Ev();
+extern void _ZN7ee52052D1Ev();
+Name_Map name_map_ee52052[] = {
+ NSPAIR(_ZN7ee52052C1Ev),
+ NSPAIR(_ZN7ee52052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee52052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52052[];
+extern void _ZN7ee520523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee520523barEv,_ZTv0_n16_N7ee520523barEv)();
+extern void ABISELECT(_ZThn16_N7ee520523barEv,_ZThn8_N7ee520523barEv)() __attribute__((weak));
+extern void _ZN6dd20523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee520523barEv,_ZTv0_n16_N7ee520523barEv)();
+extern void ABISELECT(_ZThn40_N7ee520523barEv,_ZThn24_N7ee520523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52052[0]),
+ (VTBL_ENTRY)&_ZN7ee520523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520523barEv,_ZTv0_n16_N7ee520523barEv),
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee520523barEv,_ZTv0_n16_N7ee520523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee52052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee52052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee52052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee52052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee52052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee52052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52052[] = {
+ {&(_ZTV7ee52052[4]), 4,18},
+ {&(_ZTV7ee52052[10]), 10,18},
+ {&(_ZTV7ee52052[16]), 16,18},
+ {&(_tg__ZTV6dd2052__7ee52052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee52052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee52052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee52052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee52052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee52052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52052[];
+extern VTBL_ENTRY _ZTV7ee52052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52052[];
+static VTBL_ENTRY alt_thunk_names1005[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee520523barEv,_ZTv0_n16_N7ee520523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee520523barEv,_ZThn24_N7ee520523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee520523barEv,_ZThn8_N7ee520523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52052 = { "ee52052", // class name
+ bases_ee52052, 4,
+ &(vtc_ee52052[0]), // expected_vtbl_contents
+ &(vtt_ee52052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52052),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1005,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62052 : dd2052 {
+ int e;
+ virtual void foo(); // _ZN7ee620523fooEv
+ virtual void bar(); // _ZN7ee620523barEv
+ ~ee62052(); // tgen
+ ee62052(); // tgen
+};
+//SIG(1 ee62052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62052 ::foo(){vfunc_called(this, "_ZN7ee620523fooEv");}
+void ee62052 ::bar(){vfunc_called(this, "_ZN7ee620523barEv");}
+ee62052 ::~ee62052(){ note_dtor("ee62052", this);} // tgen
+ee62052 ::ee62052(){ note_ctor("ee62052", this);} // tgen
+
+static void Test_ee62052()
+{
+ extern Class_Descriptor cd_ee62052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62052, buf);
+ ee62052 *dp, &lv = *(dp=new (buf) ee62052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(24,20), "ee62052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), 0, "ee62052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), 0, "ee62052");
+ check_base_class_offset(lv, (dd2052*), 0, "ee62052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62052.e");
+ test_class_info(&lv, &cd_ee62052);
+ dp->~ee62052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62052(Test_ee62052, "ee62052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62052C1Ev();
+extern void _ZN7ee62052D1Ev();
+Name_Map name_map_ee62052[] = {
+ NSPAIR(_ZN7ee62052C1Ev),
+ NSPAIR(_ZN7ee62052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee62052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62052[];
+extern void _ZN7ee620523barEv();
+extern void _ZN7ee620523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee620523fooEv,_ZTv0_n12_N7ee620523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee620523fooEv,_ZThn20_N7ee620523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee620523barEv,_ZTv0_n16_N7ee620523barEv)();
+extern void ABISELECT(_ZThn24_N7ee620523barEv,_ZThn20_N7ee620523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62052[0]),
+ (VTBL_ENTRY)&_ZN7ee620523barEv,
+ (VTBL_ENTRY)&_ZN7ee620523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee620523fooEv,_ZTv0_n12_N7ee620523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee620523barEv,_ZTv0_n16_N7ee620523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee62052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee62052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee62052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee62052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee62052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee62052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62052[] = {
+ {&(_ZTV7ee62052[3]), 3,11},
+ {&(_tg__ZTV6dd2052__7ee62052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee62052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee62052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee62052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee62052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee62052[4]), 4,6},
+ {&(_ZTV7ee62052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62052[];
+extern VTBL_ENTRY _ZTV7ee62052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62052[];
+static VTBL_ENTRY alt_thunk_names1006[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn20_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee620523barEv,_ZTv0_n16_N7ee620523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee620523barEv,_ZThn20_N7ee620523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee620523fooEv,_ZTv0_n12_N7ee620523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee620523fooEv,_ZThn20_N7ee620523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62052 = { "ee62052", // class name
+ bases_ee62052, 4,
+ &(vtc_ee62052[0]), // expected_vtbl_contents
+ &(vtt_ee62052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1006,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72052 : virtual dd2052 {
+ int e;
+ virtual void foo(); // _ZN7ee720523fooEv
+ virtual void bar(); // _ZN7ee720523barEv
+ ~ee72052(); // tgen
+ ee72052(); // tgen
+};
+//SIG(1 ee72052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72052 ::foo(){vfunc_called(this, "_ZN7ee720523fooEv");}
+void ee72052 ::bar(){vfunc_called(this, "_ZN7ee720523barEv");}
+ee72052 ::~ee72052(){ note_dtor("ee72052", this);} // tgen
+ee72052 ::ee72052(){ note_ctor("ee72052", this);} // tgen
+
+static void Test_ee72052()
+{
+ extern Class_Descriptor cd_ee72052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72052, buf);
+ ee72052 *dp, &lv = *(dp=new (buf) ee72052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd2052*), ABISELECT(40,24), "ee72052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd2052*), ABISELECT(16,8), "ee72052");
+ check_base_class_offset(lv, (cc052*)(dd2052*), ABISELECT(16,8), "ee72052");
+ check_base_class_offset(lv, (dd2052*), ABISELECT(16,8), "ee72052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72052.e");
+ test_class_info(&lv, &cd_ee72052);
+ dp->~ee72052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72052(Test_ee72052, "ee72052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72052C1Ev();
+extern void _ZN7ee72052D1Ev();
+Name_Map name_map_ee72052[] = {
+ NSPAIR(_ZN7ee72052C1Ev),
+ NSPAIR(_ZN7ee72052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd2052;
+extern VTBL_ENTRY _ZTI6dd2052[];
+extern VTBL_ENTRY _ZTV6dd2052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2052[];
+static Base_Class bases_ee72052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2052, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72052[];
+extern void _ZN7ee720523fooEv();
+extern void _ZN7ee720523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee720523barEv,_ZTv0_n16_N7ee720523barEv)();
+extern void ABISELECT(_ZThn16_N7ee720523barEv,_ZThn8_N7ee720523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee720523fooEv,_ZTv0_n20_N7ee720523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee720523fooEv,_ZThn8_N7ee720523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee720523fooEv,_ZTv0_n12_N7ee720523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee720523fooEv,_ZThn24_N7ee720523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee720523barEv,_ZTv0_n16_N7ee720523barEv)();
+extern void ABISELECT(_ZThn40_N7ee720523barEv,_ZThn24_N7ee720523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72052[0]),
+ (VTBL_ENTRY)&_ZN7ee720523fooEv,
+ (VTBL_ENTRY)&_ZN7ee720523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720523barEv,_ZTv0_n16_N7ee720523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee720523fooEv,_ZTv0_n20_N7ee720523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee720523fooEv,_ZTv0_n12_N7ee720523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee720523barEv,_ZTv0_n16_N7ee720523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72052[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd20523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2052__7ee72052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd20523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd2052__7ee72052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd2052__7ee72052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd2052__7ee72052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd2052__7ee72052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2052__7ee72052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72052[] = {
+ {&(_ZTV7ee72052[4]), 4,19},
+ {&(_ZTV7ee72052[11]), 11,19},
+ {&(_ZTV7ee72052[17]), 17,19},
+ {&(_tg__ZTV6dd2052__7ee72052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd2052__7ee72052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd2052__7ee72052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd2052__7ee72052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd2052__7ee72052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2052__7ee72052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72052[];
+extern VTBL_ENTRY _ZTV7ee72052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72052[];
+static VTBL_ENTRY alt_thunk_names1007[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd20523fooEv,_ZTv0_n12_N6dd20523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd20523fooEv,_ZThn16_N6dd20523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee720523fooEv,_ZTv0_n12_N7ee720523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee720523fooEv,_ZThn24_N7ee720523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee720523fooEv,_ZTv0_n20_N7ee720523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720523fooEv,_ZThn8_N7ee720523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee720523barEv,_ZTv0_n16_N7ee720523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee720523barEv,_ZThn24_N7ee720523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee720523barEv,_ZThn8_N7ee720523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72052 = { "ee72052", // class name
+ bases_ee72052, 4,
+ &(vtc_ee72052[0]), // expected_vtbl_contents
+ &(vtt_ee72052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72052),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1007,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3052 : virtual cc052 {
+ int d;
+ virtual void foo(); // _ZN6dd30523fooEv
+ ~dd3052(); // tgen
+ dd3052(); // tgen
+};
+//SIG(-1 dd3052) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3052 ::foo(){vfunc_called(this, "_ZN6dd30523fooEv");}
+dd3052 ::~dd3052(){ note_dtor("dd3052", this);} // tgen
+dd3052 ::dd3052(){ note_ctor("dd3052", this);} // tgen
+
+static void Test_dd3052()
+{
+ extern Class_Descriptor cd_dd3052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3052, buf);
+ dd3052 *dp, &lv = *(dp=new (buf) dd3052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,20), "dd3052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,8), "dd3052");
+ check_base_class_offset(lv, (cc052*), ABISELECT(16,8), "dd3052");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3052.d");
+ test_class_info(&lv, &cd_dd3052);
+ dp->~dd3052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3052(Test_dd3052, "dd3052", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3052C1Ev();
+extern void _ZN6dd3052D1Ev();
+Name_Map name_map_dd3052[] = {
+ NSPAIR(_ZN6dd3052C1Ev),
+ NSPAIR(_ZN6dd3052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd3052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd3052[];
+extern void _ZN6dd30523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd3052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd3052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd3052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3052[] = {
+ {&(_ZTV6dd3052[4]), 4,16},
+ {&(_ZTV6dd3052[9]), 9,16},
+ {&(_ZTV6dd3052[14]), 14,16},
+ {&(_tg__ZTV5cc052__6dd3052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd3052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd3052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd3052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static VTBL_ENTRY alt_thunk_names1008[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3052 = { "dd3052", // class name
+ bases_dd3052, 3,
+ &(vtc_dd3052[0]), // expected_vtbl_contents
+ &(vtt_dd3052[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3052),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1008,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03052 : dd3052 {
+ int e;
+ ~ee03052(); // tgen
+ ee03052(); // tgen
+};
+//SIG(1 ee03052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03052 ::~ee03052(){ note_dtor("ee03052", this);} // tgen
+ee03052 ::ee03052(){ note_ctor("ee03052", this);} // tgen
+
+static void Test_ee03052()
+{
+ extern Class_Descriptor cd_ee03052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03052, buf);
+ ee03052 *dp, &lv = *(dp=new (buf) ee03052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee03052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee03052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(16,12), "ee03052");
+ check_base_class_offset(lv, (dd3052*), 0, "ee03052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03052.e");
+ test_class_info(&lv, &cd_ee03052);
+ dp->~ee03052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03052(Test_ee03052, "ee03052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03052C1Ev();
+extern void _ZN7ee03052D1Ev();
+Name_Map name_map_ee03052[] = {
+ NSPAIR(_ZN7ee03052C1Ev),
+ NSPAIR(_ZN7ee03052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee03052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03052[];
+extern void _ZN6dd30523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee03052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee03052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee03052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee03052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee03052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee03052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee03052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03052[] = {
+ {&(_ZTV7ee03052[4]), 4,16},
+ {&(_tg__ZTV6dd3052__7ee03052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee03052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee03052[4]), 4,6},
+ {&(_ZTV7ee03052[9]), 9,16},
+ {&(_ZTV7ee03052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee03052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee03052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee03052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee03052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03052[];
+extern VTBL_ENTRY _ZTV7ee03052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03052[];
+static VTBL_ENTRY alt_thunk_names1009[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03052 = { "ee03052", // class name
+ bases_ee03052, 4,
+ &(vtc_ee03052[0]), // expected_vtbl_contents
+ &(vtt_ee03052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1009,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13052 : virtual dd3052 {
+ int e;
+ ~ee13052(); // tgen
+ ee13052(); // tgen
+};
+//SIG(1 ee13052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13052 ::~ee13052(){ note_dtor("ee13052", this);} // tgen
+ee13052 ::ee13052(){ note_ctor("ee13052", this);} // tgen
+
+static void Test_ee13052()
+{
+ extern Class_Descriptor cd_ee13052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13052, buf);
+ ee13052 *dp, &lv = *(dp=new (buf) ee13052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee13052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee13052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(32,16), "ee13052");
+ check_base_class_offset(lv, (dd3052*), ABISELECT(16,8), "ee13052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13052.e");
+ test_class_info(&lv, &cd_ee13052);
+ dp->~ee13052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13052(Test_ee13052, "ee13052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13052C1Ev();
+extern void _ZN7ee13052D1Ev();
+Name_Map name_map_ee13052[] = {
+ NSPAIR(_ZN7ee13052C1Ev),
+ NSPAIR(_ZN7ee13052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee13052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13052[];
+extern void _ZN6dd30523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13052[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee13052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee13052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee13052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee13052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee13052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee13052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee13052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13052[] = {
+ {&(_ZTV7ee13052[5]), 5,22},
+ {&(_ZTV7ee13052[10]), 10,22},
+ {&(_ZTV7ee13052[15]), 15,22},
+ {&(_ZTV7ee13052[20]), 20,22},
+ {&(_tg__ZTV6dd3052__7ee13052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee13052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee13052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee13052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee13052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee13052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee13052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13052[];
+extern VTBL_ENTRY _ZTV7ee13052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13052[];
+static VTBL_ENTRY alt_thunk_names1010[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13052 = { "ee13052", // class name
+ bases_ee13052, 4,
+ &(vtc_ee13052[0]), // expected_vtbl_contents
+ &(vtt_ee13052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13052),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1010,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23052 : dd3052 {
+ int e;
+ virtual void foo(); // _ZN7ee230523fooEv
+ ~ee23052(); // tgen
+ ee23052(); // tgen
+};
+//SIG(1 ee23052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23052 ::foo(){vfunc_called(this, "_ZN7ee230523fooEv");}
+ee23052 ::~ee23052(){ note_dtor("ee23052", this);} // tgen
+ee23052 ::ee23052(){ note_ctor("ee23052", this);} // tgen
+
+static void Test_ee23052()
+{
+ extern Class_Descriptor cd_ee23052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23052, buf);
+ ee23052 *dp, &lv = *(dp=new (buf) ee23052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee23052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee23052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(16,12), "ee23052");
+ check_base_class_offset(lv, (dd3052*), 0, "ee23052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23052.e");
+ test_class_info(&lv, &cd_ee23052);
+ dp->~ee23052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23052(Test_ee23052, "ee23052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23052C1Ev();
+extern void _ZN7ee23052D1Ev();
+Name_Map name_map_ee23052[] = {
+ NSPAIR(_ZN7ee23052C1Ev),
+ NSPAIR(_ZN7ee23052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee23052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23052[];
+extern void _ZN7ee230523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee230523fooEv,_ZTv0_n12_N7ee230523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee230523fooEv,_ZThn24_N7ee230523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23052[0]),
+ (VTBL_ENTRY)&_ZN7ee230523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee230523fooEv,_ZTv0_n12_N7ee230523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee23052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee23052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee23052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee23052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee23052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee23052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee23052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23052[] = {
+ {&(_ZTV7ee23052[4]), 4,16},
+ {&(_tg__ZTV6dd3052__7ee23052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee23052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee23052[4]), 4,6},
+ {&(_ZTV7ee23052[9]), 9,16},
+ {&(_ZTV7ee23052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee23052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee23052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee23052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee23052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23052[];
+extern VTBL_ENTRY _ZTV7ee23052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23052[];
+static VTBL_ENTRY alt_thunk_names1011[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee230523fooEv,_ZTv0_n12_N7ee230523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee230523fooEv,_ZThn24_N7ee230523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23052 = { "ee23052", // class name
+ bases_ee23052, 4,
+ &(vtc_ee23052[0]), // expected_vtbl_contents
+ &(vtt_ee23052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1011,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33052 : virtual dd3052 {
+ int e;
+ virtual void foo(); // _ZN7ee330523fooEv
+ ~ee33052(); // tgen
+ ee33052(); // tgen
+};
+//SIG(1 ee33052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33052 ::foo(){vfunc_called(this, "_ZN7ee330523fooEv");}
+ee33052 ::~ee33052(){ note_dtor("ee33052", this);} // tgen
+ee33052 ::ee33052(){ note_ctor("ee33052", this);} // tgen
+
+static void Test_ee33052()
+{
+ extern Class_Descriptor cd_ee33052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33052, buf);
+ ee33052 *dp, &lv = *(dp=new (buf) ee33052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee33052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee33052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(32,16), "ee33052");
+ check_base_class_offset(lv, (dd3052*), ABISELECT(16,8), "ee33052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33052.e");
+ test_class_info(&lv, &cd_ee33052);
+ dp->~ee33052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33052(Test_ee33052, "ee33052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33052C1Ev();
+extern void _ZN7ee33052D1Ev();
+Name_Map name_map_ee33052[] = {
+ NSPAIR(_ZN7ee33052C1Ev),
+ NSPAIR(_ZN7ee33052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee33052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33052[];
+extern void _ZN7ee330523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee330523fooEv,_ZTv0_n20_N7ee330523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee330523fooEv,_ZThn8_N7ee330523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee330523fooEv,_ZTv0_n12_N7ee330523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee330523fooEv,_ZThn28_N7ee330523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33052[0]),
+ (VTBL_ENTRY)&_ZN7ee330523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee330523fooEv,_ZTv0_n20_N7ee330523fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee330523fooEv,_ZTv0_n12_N7ee330523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee33052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee33052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee33052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee33052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee33052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee33052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee33052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33052[] = {
+ {&(_ZTV7ee33052[5]), 5,23},
+ {&(_ZTV7ee33052[11]), 11,23},
+ {&(_ZTV7ee33052[16]), 16,23},
+ {&(_ZTV7ee33052[21]), 21,23},
+ {&(_tg__ZTV6dd3052__7ee33052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee33052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee33052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee33052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee33052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee33052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee33052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33052[];
+extern VTBL_ENTRY _ZTV7ee33052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33052[];
+static VTBL_ENTRY alt_thunk_names1012[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee330523fooEv,_ZTv0_n12_N7ee330523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee330523fooEv,_ZThn28_N7ee330523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee330523fooEv,_ZTv0_n20_N7ee330523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee330523fooEv,_ZThn8_N7ee330523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33052 = { "ee33052", // class name
+ bases_ee33052, 4,
+ &(vtc_ee33052[0]), // expected_vtbl_contents
+ &(vtt_ee33052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33052),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1012,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43052 : dd3052 {
+ int e;
+ virtual void bar(); // _ZN7ee430523barEv
+ ~ee43052(); // tgen
+ ee43052(); // tgen
+};
+//SIG(1 ee43052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43052 ::bar(){vfunc_called(this, "_ZN7ee430523barEv");}
+ee43052 ::~ee43052(){ note_dtor("ee43052", this);} // tgen
+ee43052 ::ee43052(){ note_ctor("ee43052", this);} // tgen
+
+static void Test_ee43052()
+{
+ extern Class_Descriptor cd_ee43052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43052, buf);
+ ee43052 *dp, &lv = *(dp=new (buf) ee43052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee43052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee43052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(16,12), "ee43052");
+ check_base_class_offset(lv, (dd3052*), 0, "ee43052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43052.e");
+ test_class_info(&lv, &cd_ee43052);
+ dp->~ee43052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43052(Test_ee43052, "ee43052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43052C1Ev();
+extern void _ZN7ee43052D1Ev();
+Name_Map name_map_ee43052[] = {
+ NSPAIR(_ZN7ee43052C1Ev),
+ NSPAIR(_ZN7ee43052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee43052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43052[];
+extern void _ZN6dd30523fooEv();
+extern void _ZN7ee430523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee430523barEv,_ZTv0_n16_N7ee430523barEv)();
+extern void ABISELECT(_ZThn16_N7ee430523barEv,_ZThn12_N7ee430523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee430523barEv,_ZTv0_n16_N7ee430523barEv)();
+extern void ABISELECT(_ZThn32_N7ee430523barEv,_ZThn24_N7ee430523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+ (VTBL_ENTRY)&_ZN7ee430523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430523barEv,_ZTv0_n16_N7ee430523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee430523barEv,_ZTv0_n16_N7ee430523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee43052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee43052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee43052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee43052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee43052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee43052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee43052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43052[] = {
+ {&(_ZTV7ee43052[4]), 4,17},
+ {&(_tg__ZTV6dd3052__7ee43052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee43052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee43052[4]), 4,6},
+ {&(_ZTV7ee43052[10]), 10,17},
+ {&(_ZTV7ee43052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee43052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee43052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee43052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee43052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43052[];
+extern VTBL_ENTRY _ZTV7ee43052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43052[];
+static VTBL_ENTRY alt_thunk_names1013[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee430523barEv,_ZTv0_n16_N7ee430523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee430523barEv,_ZThn24_N7ee430523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee430523barEv,_ZThn12_N7ee430523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43052 = { "ee43052", // class name
+ bases_ee43052, 4,
+ &(vtc_ee43052[0]), // expected_vtbl_contents
+ &(vtt_ee43052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1013,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53052 : virtual dd3052 {
+ int e;
+ virtual void bar(); // _ZN7ee530523barEv
+ ~ee53052(); // tgen
+ ee53052(); // tgen
+};
+//SIG(1 ee53052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53052 ::bar(){vfunc_called(this, "_ZN7ee530523barEv");}
+ee53052 ::~ee53052(){ note_dtor("ee53052", this);} // tgen
+ee53052 ::ee53052(){ note_ctor("ee53052", this);} // tgen
+
+static void Test_ee53052()
+{
+ extern Class_Descriptor cd_ee53052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53052, buf);
+ ee53052 *dp, &lv = *(dp=new (buf) ee53052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee53052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee53052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(32,16), "ee53052");
+ check_base_class_offset(lv, (dd3052*), ABISELECT(16,8), "ee53052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53052.e");
+ test_class_info(&lv, &cd_ee53052);
+ dp->~ee53052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53052(Test_ee53052, "ee53052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53052C1Ev();
+extern void _ZN7ee53052D1Ev();
+Name_Map name_map_ee53052[] = {
+ NSPAIR(_ZN7ee53052C1Ev),
+ NSPAIR(_ZN7ee53052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee53052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53052[];
+extern void _ZN7ee530523barEv();
+extern void _ZN6dd30523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee530523barEv,_ZTv0_n16_N7ee530523barEv)();
+extern void ABISELECT(_ZThn32_N7ee530523barEv,_ZThn16_N7ee530523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee530523barEv,_ZTv0_n16_N7ee530523barEv)();
+extern void ABISELECT(_ZThn48_N7ee530523barEv,_ZThn28_N7ee530523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53052[0]),
+ (VTBL_ENTRY)&_ZN7ee530523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530523barEv,_ZTv0_n16_N7ee530523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee530523barEv,_ZTv0_n16_N7ee530523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee53052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee53052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee53052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee53052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee53052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee53052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee53052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53052[] = {
+ {&(_ZTV7ee53052[5]), 5,23},
+ {&(_ZTV7ee53052[11]), 11,23},
+ {&(_ZTV7ee53052[16]), 16,23},
+ {&(_ZTV7ee53052[21]), 21,23},
+ {&(_tg__ZTV6dd3052__7ee53052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee53052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee53052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee53052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee53052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee53052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee53052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53052[];
+extern VTBL_ENTRY _ZTV7ee53052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53052[];
+static VTBL_ENTRY alt_thunk_names1014[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee530523barEv,_ZTv0_n16_N7ee530523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee530523barEv,_ZThn28_N7ee530523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee530523barEv,_ZThn16_N7ee530523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53052 = { "ee53052", // class name
+ bases_ee53052, 4,
+ &(vtc_ee53052[0]), // expected_vtbl_contents
+ &(vtt_ee53052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53052),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1014,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63052 : dd3052 {
+ int e;
+ virtual void foo(); // _ZN7ee630523fooEv
+ virtual void bar(); // _ZN7ee630523barEv
+ ~ee63052(); // tgen
+ ee63052(); // tgen
+};
+//SIG(1 ee63052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63052 ::foo(){vfunc_called(this, "_ZN7ee630523fooEv");}
+void ee63052 ::bar(){vfunc_called(this, "_ZN7ee630523barEv");}
+ee63052 ::~ee63052(){ note_dtor("ee63052", this);} // tgen
+ee63052 ::ee63052(){ note_ctor("ee63052", this);} // tgen
+
+static void Test_ee63052()
+{
+ extern Class_Descriptor cd_ee63052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63052, buf);
+ ee63052 *dp, &lv = *(dp=new (buf) ee63052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee63052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee63052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(16,12), "ee63052");
+ check_base_class_offset(lv, (dd3052*), 0, "ee63052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63052.e");
+ test_class_info(&lv, &cd_ee63052);
+ dp->~ee63052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63052(Test_ee63052, "ee63052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63052C1Ev();
+extern void _ZN7ee63052D1Ev();
+Name_Map name_map_ee63052[] = {
+ NSPAIR(_ZN7ee63052C1Ev),
+ NSPAIR(_ZN7ee63052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee63052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63052[];
+extern void _ZN7ee630523fooEv();
+extern void _ZN7ee630523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee630523barEv,_ZTv0_n16_N7ee630523barEv)();
+extern void ABISELECT(_ZThn16_N7ee630523barEv,_ZThn12_N7ee630523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee630523fooEv,_ZTv0_n12_N7ee630523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee630523fooEv,_ZThn24_N7ee630523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee630523barEv,_ZTv0_n16_N7ee630523barEv)();
+extern void ABISELECT(_ZThn32_N7ee630523barEv,_ZThn24_N7ee630523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63052[0]),
+ (VTBL_ENTRY)&_ZN7ee630523fooEv,
+ (VTBL_ENTRY)&_ZN7ee630523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630523barEv,_ZTv0_n16_N7ee630523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee630523fooEv,_ZTv0_n12_N7ee630523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee630523barEv,_ZTv0_n16_N7ee630523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee63052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee63052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee63052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee63052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee63052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee63052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee63052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63052[] = {
+ {&(_ZTV7ee63052[4]), 4,17},
+ {&(_tg__ZTV6dd3052__7ee63052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee63052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee63052[4]), 4,6},
+ {&(_ZTV7ee63052[10]), 10,17},
+ {&(_ZTV7ee63052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee63052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee63052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee63052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee63052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63052[];
+extern VTBL_ENTRY _ZTV7ee63052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63052[];
+static VTBL_ENTRY alt_thunk_names1015[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn24_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee630523fooEv,_ZTv0_n12_N7ee630523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee630523fooEv,_ZThn24_N7ee630523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee630523barEv,_ZTv0_n16_N7ee630523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee630523barEv,_ZThn24_N7ee630523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee630523barEv,_ZThn12_N7ee630523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63052 = { "ee63052", // class name
+ bases_ee63052, 4,
+ &(vtc_ee63052[0]), // expected_vtbl_contents
+ &(vtt_ee63052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1015,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73052 : virtual dd3052 {
+ int e;
+ virtual void foo(); // _ZN7ee730523fooEv
+ virtual void bar(); // _ZN7ee730523barEv
+ ~ee73052(); // tgen
+ ee73052(); // tgen
+};
+//SIG(1 ee73052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73052 ::foo(){vfunc_called(this, "_ZN7ee730523fooEv");}
+void ee73052 ::bar(){vfunc_called(this, "_ZN7ee730523barEv");}
+ee73052 ::~ee73052(){ note_dtor("ee73052", this);} // tgen
+ee73052 ::ee73052(){ note_ctor("ee73052", this);} // tgen
+
+static void Test_ee73052()
+{
+ extern Class_Descriptor cd_ee73052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73052, buf);
+ ee73052 *dp, &lv = *(dp=new (buf) ee73052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee73052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee73052");
+ check_base_class_offset(lv, (cc052*)(dd3052*), ABISELECT(32,16), "ee73052");
+ check_base_class_offset(lv, (dd3052*), ABISELECT(16,8), "ee73052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73052.e");
+ test_class_info(&lv, &cd_ee73052);
+ dp->~ee73052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73052(Test_ee73052, "ee73052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73052C1Ev();
+extern void _ZN7ee73052D1Ev();
+Name_Map name_map_ee73052[] = {
+ NSPAIR(_ZN7ee73052C1Ev),
+ NSPAIR(_ZN7ee73052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd3052;
+extern VTBL_ENTRY _ZTI6dd3052[];
+extern VTBL_ENTRY _ZTV6dd3052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3052[];
+static Base_Class bases_ee73052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3052, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73052[];
+extern void _ZN7ee730523fooEv();
+extern void _ZN7ee730523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee730523fooEv,_ZTv0_n20_N7ee730523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee730523fooEv,_ZThn8_N7ee730523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730523barEv,_ZTv0_n16_N7ee730523barEv)();
+extern void ABISELECT(_ZThn32_N7ee730523barEv,_ZThn16_N7ee730523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee730523fooEv,_ZTv0_n12_N7ee730523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee730523fooEv,_ZThn28_N7ee730523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee730523barEv,_ZTv0_n16_N7ee730523barEv)();
+extern void ABISELECT(_ZThn48_N7ee730523barEv,_ZThn28_N7ee730523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73052[0]),
+ (VTBL_ENTRY)&_ZN7ee730523fooEv,
+ (VTBL_ENTRY)&_ZN7ee730523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee730523fooEv,_ZTv0_n20_N7ee730523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730523barEv,_ZTv0_n16_N7ee730523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee730523fooEv,_ZTv0_n12_N7ee730523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee730523barEv,_ZTv0_n16_N7ee730523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73052[];
+extern void _ZN6dd30523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3052__7ee73052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN6dd30523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd3052__7ee73052[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3052__7ee73052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee73052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee73052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee73052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee73052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73052[] = {
+ {&(_ZTV7ee73052[5]), 5,24},
+ {&(_ZTV7ee73052[12]), 12,24},
+ {&(_ZTV7ee73052[17]), 17,24},
+ {&(_ZTV7ee73052[22]), 22,24},
+ {&(_tg__ZTV6dd3052__7ee73052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd3052__7ee73052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3052__7ee73052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee73052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee73052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee73052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee73052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73052[];
+extern VTBL_ENTRY _ZTV7ee73052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73052[];
+static VTBL_ENTRY alt_thunk_names1016[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd30523fooEv,_ZTv0_n12_N6dd30523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd30523fooEv,_ZThn20_N6dd30523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee730523fooEv,_ZTv0_n12_N7ee730523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee730523fooEv,_ZThn28_N7ee730523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee730523barEv,_ZTv0_n16_N7ee730523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee730523barEv,_ZThn28_N7ee730523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee730523barEv,_ZThn16_N7ee730523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee730523fooEv,_ZTv0_n20_N7ee730523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee730523fooEv,_ZThn8_N7ee730523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73052 = { "ee73052", // class name
+ bases_ee73052, 4,
+ &(vtc_ee73052[0]), // expected_vtbl_contents
+ &(vtt_ee73052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73052),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1016,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4052 : cc052 {
+ int d;
+ virtual void bar(); // _ZN6dd40523barEv
+ ~dd4052(); // tgen
+ dd4052(); // tgen
+};
+//SIG(-1 dd4052) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4052 ::bar(){vfunc_called(this, "_ZN6dd40523barEv");}
+dd4052 ::~dd4052(){ note_dtor("dd4052", this);} // tgen
+dd4052 ::dd4052(){ note_ctor("dd4052", this);} // tgen
+
+static void Test_dd4052()
+{
+ extern Class_Descriptor cd_dd4052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4052, buf);
+ dd4052 *dp, &lv = *(dp=new (buf) dd4052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(24,16), "dd4052");
+ check_base_class_offset(lv, (bb52*)(cc052*), 0, "dd4052");
+ check_base_class_offset(lv, (cc052*), 0, "dd4052");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4052.d");
+ test_class_info(&lv, &cd_dd4052);
+ dp->~dd4052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4052(Test_dd4052, "dd4052", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4052C1Ev();
+extern void _ZN6dd4052D1Ev();
+Name_Map name_map_dd4052[] = {
+ NSPAIR(_ZN6dd4052C1Ev),
+ NSPAIR(_ZN6dd4052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd4052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern void _ZN6dd40523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd4052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd4052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd4052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd4052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4052[] = {
+ {&(_ZTV6dd4052[3]), 3,10},
+ {&(_tg__ZTV5cc052__6dd4052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd4052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd4052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd4052[4]), 4,6},
+ {&(_ZTV6dd4052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static VTBL_ENTRY alt_thunk_names1017[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4052 = { "dd4052", // class name
+ bases_dd4052, 3,
+ &(vtc_dd4052[0]), // expected_vtbl_contents
+ &(vtt_dd4052[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4052),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1017,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04052 : dd4052 {
+ int e;
+ ~ee04052(); // tgen
+ ee04052(); // tgen
+};
+//SIG(1 ee04052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04052 ::~ee04052(){ note_dtor("ee04052", this);} // tgen
+ee04052 ::ee04052(){ note_ctor("ee04052", this);} // tgen
+
+static void Test_ee04052()
+{
+ extern Class_Descriptor cd_ee04052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04052, buf);
+ ee04052 *dp, &lv = *(dp=new (buf) ee04052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(24,20), "ee04052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), 0, "ee04052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), 0, "ee04052");
+ check_base_class_offset(lv, (dd4052*), 0, "ee04052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04052.e");
+ test_class_info(&lv, &cd_ee04052);
+ dp->~ee04052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04052(Test_ee04052, "ee04052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04052C1Ev();
+extern void _ZN7ee04052D1Ev();
+Name_Map name_map_ee04052[] = {
+ NSPAIR(_ZN7ee04052C1Ev),
+ NSPAIR(_ZN7ee04052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee04052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04052[];
+extern void _ZN6dd40523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee04052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee04052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee04052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee04052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee04052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee04052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee04052[] = {
+ {&(_ZTV7ee04052[3]), 3,10},
+ {&(_tg__ZTV6dd4052__7ee04052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee04052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee04052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee04052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee04052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee04052[4]), 4,6},
+ {&(_ZTV7ee04052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04052[];
+extern VTBL_ENTRY _ZTV7ee04052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04052[];
+static VTBL_ENTRY alt_thunk_names1018[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04052 = { "ee04052", // class name
+ bases_ee04052, 4,
+ &(vtc_ee04052[0]), // expected_vtbl_contents
+ &(vtt_ee04052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1018,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14052 : virtual dd4052 {
+ int e;
+ ~ee14052(); // tgen
+ ee14052(); // tgen
+};
+//SIG(1 ee14052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14052 ::~ee14052(){ note_dtor("ee14052", this);} // tgen
+ee14052 ::ee14052(){ note_ctor("ee14052", this);} // tgen
+
+static void Test_ee14052()
+{
+ extern Class_Descriptor cd_ee14052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14052, buf);
+ ee14052 *dp, &lv = *(dp=new (buf) ee14052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(40,24), "ee14052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), ABISELECT(16,8), "ee14052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), ABISELECT(16,8), "ee14052");
+ check_base_class_offset(lv, (dd4052*), ABISELECT(16,8), "ee14052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14052.e");
+ test_class_info(&lv, &cd_ee14052);
+ dp->~ee14052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14052(Test_ee14052, "ee14052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14052C1Ev();
+extern void _ZN7ee14052D1Ev();
+Name_Map name_map_ee14052[] = {
+ NSPAIR(_ZN7ee14052C1Ev),
+ NSPAIR(_ZN7ee14052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee14052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14052[];
+extern void _ZN6dd40523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14052[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee14052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee14052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee14052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee14052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee14052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee14052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee14052[] = {
+ {&(_ZTV7ee14052[4]), 4,15},
+ {&(_ZTV7ee14052[8]), 8,15},
+ {&(_ZTV7ee14052[13]), 13,15},
+ {&(_tg__ZTV6dd4052__7ee14052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee14052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee14052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee14052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee14052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee14052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14052[];
+extern VTBL_ENTRY _ZTV7ee14052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14052[];
+static VTBL_ENTRY alt_thunk_names1019[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14052 = { "ee14052", // class name
+ bases_ee14052, 4,
+ &(vtc_ee14052[0]), // expected_vtbl_contents
+ &(vtt_ee14052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14052),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1019,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24052 : dd4052 {
+ int e;
+ virtual void foo(); // _ZN7ee240523fooEv
+ ~ee24052(); // tgen
+ ee24052(); // tgen
+};
+//SIG(1 ee24052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24052 ::foo(){vfunc_called(this, "_ZN7ee240523fooEv");}
+ee24052 ::~ee24052(){ note_dtor("ee24052", this);} // tgen
+ee24052 ::ee24052(){ note_ctor("ee24052", this);} // tgen
+
+static void Test_ee24052()
+{
+ extern Class_Descriptor cd_ee24052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24052, buf);
+ ee24052 *dp, &lv = *(dp=new (buf) ee24052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(24,20), "ee24052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), 0, "ee24052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), 0, "ee24052");
+ check_base_class_offset(lv, (dd4052*), 0, "ee24052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24052.e");
+ test_class_info(&lv, &cd_ee24052);
+ dp->~ee24052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24052(Test_ee24052, "ee24052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24052C1Ev();
+extern void _ZN7ee24052D1Ev();
+Name_Map name_map_ee24052[] = {
+ NSPAIR(_ZN7ee24052C1Ev),
+ NSPAIR(_ZN7ee24052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee24052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24052[];
+extern void _ZN6dd40523barEv();
+extern void _ZN7ee240523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee240523fooEv,_ZTv0_n12_N7ee240523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee240523fooEv,_ZThn20_N7ee240523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+ (VTBL_ENTRY)&_ZN7ee240523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee240523fooEv,_ZTv0_n12_N7ee240523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee24052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee24052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee24052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee24052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee24052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee24052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee24052[] = {
+ {&(_ZTV7ee24052[3]), 3,11},
+ {&(_tg__ZTV6dd4052__7ee24052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee24052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee24052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee24052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee24052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee24052[4]), 4,6},
+ {&(_ZTV7ee24052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24052[];
+extern VTBL_ENTRY _ZTV7ee24052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24052[];
+static VTBL_ENTRY alt_thunk_names1020[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee240523fooEv,_ZTv0_n12_N7ee240523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee240523fooEv,_ZThn20_N7ee240523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24052 = { "ee24052", // class name
+ bases_ee24052, 4,
+ &(vtc_ee24052[0]), // expected_vtbl_contents
+ &(vtt_ee24052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1020,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34052 : virtual dd4052 {
+ int e;
+ virtual void foo(); // _ZN7ee340523fooEv
+ ~ee34052(); // tgen
+ ee34052(); // tgen
+};
+//SIG(1 ee34052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34052 ::foo(){vfunc_called(this, "_ZN7ee340523fooEv");}
+ee34052 ::~ee34052(){ note_dtor("ee34052", this);} // tgen
+ee34052 ::ee34052(){ note_ctor("ee34052", this);} // tgen
+
+static void Test_ee34052()
+{
+ extern Class_Descriptor cd_ee34052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34052, buf);
+ ee34052 *dp, &lv = *(dp=new (buf) ee34052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(40,24), "ee34052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), ABISELECT(16,8), "ee34052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), ABISELECT(16,8), "ee34052");
+ check_base_class_offset(lv, (dd4052*), ABISELECT(16,8), "ee34052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34052.e");
+ test_class_info(&lv, &cd_ee34052);
+ dp->~ee34052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34052(Test_ee34052, "ee34052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34052C1Ev();
+extern void _ZN7ee34052D1Ev();
+Name_Map name_map_ee34052[] = {
+ NSPAIR(_ZN7ee34052C1Ev),
+ NSPAIR(_ZN7ee34052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee34052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34052[];
+extern void _ZN7ee340523fooEv();
+extern void _ZN6dd40523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee340523fooEv,_ZTv0_n12_N7ee340523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee340523fooEv,_ZThn24_N7ee340523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34052[0]),
+ (VTBL_ENTRY)&_ZN7ee340523fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee340523fooEv,_ZTv0_n12_N7ee340523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee34052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee34052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee34052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee34052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee34052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee34052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee34052[] = {
+ {&(_ZTV7ee34052[4]), 4,16},
+ {&(_ZTV7ee34052[9]), 9,16},
+ {&(_ZTV7ee34052[14]), 14,16},
+ {&(_tg__ZTV6dd4052__7ee34052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee34052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee34052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee34052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee34052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee34052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34052[];
+extern VTBL_ENTRY _ZTV7ee34052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34052[];
+static VTBL_ENTRY alt_thunk_names1021[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee340523fooEv,_ZTv0_n12_N7ee340523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee340523fooEv,_ZThn24_N7ee340523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34052 = { "ee34052", // class name
+ bases_ee34052, 4,
+ &(vtc_ee34052[0]), // expected_vtbl_contents
+ &(vtt_ee34052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1021,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44052 : dd4052 {
+ int e;
+ virtual void bar(); // _ZN7ee440523barEv
+ ~ee44052(); // tgen
+ ee44052(); // tgen
+};
+//SIG(1 ee44052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44052 ::bar(){vfunc_called(this, "_ZN7ee440523barEv");}
+ee44052 ::~ee44052(){ note_dtor("ee44052", this);} // tgen
+ee44052 ::ee44052(){ note_ctor("ee44052", this);} // tgen
+
+static void Test_ee44052()
+{
+ extern Class_Descriptor cd_ee44052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44052, buf);
+ ee44052 *dp, &lv = *(dp=new (buf) ee44052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(24,20), "ee44052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), 0, "ee44052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), 0, "ee44052");
+ check_base_class_offset(lv, (dd4052*), 0, "ee44052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44052.e");
+ test_class_info(&lv, &cd_ee44052);
+ dp->~ee44052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44052(Test_ee44052, "ee44052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44052C1Ev();
+extern void _ZN7ee44052D1Ev();
+Name_Map name_map_ee44052[] = {
+ NSPAIR(_ZN7ee44052C1Ev),
+ NSPAIR(_ZN7ee44052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee44052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44052[];
+extern void _ZN7ee440523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee440523barEv,_ZTv0_n16_N7ee440523barEv)();
+extern void ABISELECT(_ZThn24_N7ee440523barEv,_ZThn20_N7ee440523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44052[0]),
+ (VTBL_ENTRY)&_ZN7ee440523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee440523barEv,_ZTv0_n16_N7ee440523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee44052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee44052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee44052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee44052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee44052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee44052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee44052[] = {
+ {&(_ZTV7ee44052[3]), 3,10},
+ {&(_tg__ZTV6dd4052__7ee44052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee44052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee44052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee44052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee44052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee44052[4]), 4,6},
+ {&(_ZTV7ee44052[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44052[];
+extern VTBL_ENTRY _ZTV7ee44052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44052[];
+static VTBL_ENTRY alt_thunk_names1022[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee440523barEv,_ZTv0_n16_N7ee440523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee440523barEv,_ZThn20_N7ee440523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44052 = { "ee44052", // class name
+ bases_ee44052, 4,
+ &(vtc_ee44052[0]), // expected_vtbl_contents
+ &(vtt_ee44052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44052),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1022,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54052 : virtual dd4052 {
+ int e;
+ virtual void bar(); // _ZN7ee540523barEv
+ ~ee54052(); // tgen
+ ee54052(); // tgen
+};
+//SIG(1 ee54052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54052 ::bar(){vfunc_called(this, "_ZN7ee540523barEv");}
+ee54052 ::~ee54052(){ note_dtor("ee54052", this);} // tgen
+ee54052 ::ee54052(){ note_ctor("ee54052", this);} // tgen
+
+static void Test_ee54052()
+{
+ extern Class_Descriptor cd_ee54052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54052, buf);
+ ee54052 *dp, &lv = *(dp=new (buf) ee54052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(40,24), "ee54052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), ABISELECT(16,8), "ee54052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), ABISELECT(16,8), "ee54052");
+ check_base_class_offset(lv, (dd4052*), ABISELECT(16,8), "ee54052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54052.e");
+ test_class_info(&lv, &cd_ee54052);
+ dp->~ee54052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54052(Test_ee54052, "ee54052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54052C1Ev();
+extern void _ZN7ee54052D1Ev();
+Name_Map name_map_ee54052[] = {
+ NSPAIR(_ZN7ee54052C1Ev),
+ NSPAIR(_ZN7ee54052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee54052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54052[];
+extern void _ZN7ee540523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540523barEv,_ZTv0_n16_N7ee540523barEv)();
+extern void ABISELECT(_ZThn16_N7ee540523barEv,_ZThn8_N7ee540523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee540523barEv,_ZTv0_n16_N7ee540523barEv)();
+extern void ABISELECT(_ZThn40_N7ee540523barEv,_ZThn24_N7ee540523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54052[0]),
+ (VTBL_ENTRY)&_ZN7ee540523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540523barEv,_ZTv0_n16_N7ee540523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee540523barEv,_ZTv0_n16_N7ee540523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee54052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee54052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee54052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee54052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee54052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee54052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee54052[] = {
+ {&(_ZTV7ee54052[4]), 4,16},
+ {&(_ZTV7ee54052[9]), 9,16},
+ {&(_ZTV7ee54052[14]), 14,16},
+ {&(_tg__ZTV6dd4052__7ee54052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee54052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee54052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee54052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee54052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee54052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54052[];
+extern VTBL_ENTRY _ZTV7ee54052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54052[];
+static VTBL_ENTRY alt_thunk_names1023[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee540523barEv,_ZTv0_n16_N7ee540523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee540523barEv,_ZThn24_N7ee540523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee540523barEv,_ZThn8_N7ee540523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54052 = { "ee54052", // class name
+ bases_ee54052, 4,
+ &(vtc_ee54052[0]), // expected_vtbl_contents
+ &(vtt_ee54052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1023,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64052 : dd4052 {
+ int e;
+ virtual void foo(); // _ZN7ee640523fooEv
+ virtual void bar(); // _ZN7ee640523barEv
+ ~ee64052(); // tgen
+ ee64052(); // tgen
+};
+//SIG(1 ee64052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64052 ::foo(){vfunc_called(this, "_ZN7ee640523fooEv");}
+void ee64052 ::bar(){vfunc_called(this, "_ZN7ee640523barEv");}
+ee64052 ::~ee64052(){ note_dtor("ee64052", this);} // tgen
+ee64052 ::ee64052(){ note_ctor("ee64052", this);} // tgen
+
+static void Test_ee64052()
+{
+ extern Class_Descriptor cd_ee64052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64052, buf);
+ ee64052 *dp, &lv = *(dp=new (buf) ee64052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(24,20), "ee64052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), 0, "ee64052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), 0, "ee64052");
+ check_base_class_offset(lv, (dd4052*), 0, "ee64052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64052.e");
+ test_class_info(&lv, &cd_ee64052);
+ dp->~ee64052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64052(Test_ee64052, "ee64052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64052C1Ev();
+extern void _ZN7ee64052D1Ev();
+Name_Map name_map_ee64052[] = {
+ NSPAIR(_ZN7ee64052C1Ev),
+ NSPAIR(_ZN7ee64052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee64052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64052[];
+extern void _ZN7ee640523barEv();
+extern void _ZN7ee640523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee640523fooEv,_ZTv0_n12_N7ee640523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee640523fooEv,_ZThn20_N7ee640523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee640523barEv,_ZTv0_n16_N7ee640523barEv)();
+extern void ABISELECT(_ZThn24_N7ee640523barEv,_ZThn20_N7ee640523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64052[0]),
+ (VTBL_ENTRY)&_ZN7ee640523barEv,
+ (VTBL_ENTRY)&_ZN7ee640523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee640523fooEv,_ZTv0_n12_N7ee640523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee640523barEv,_ZTv0_n16_N7ee640523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee64052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee64052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee64052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee64052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee64052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee64052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee64052[] = {
+ {&(_ZTV7ee64052[3]), 3,11},
+ {&(_tg__ZTV6dd4052__7ee64052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee64052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee64052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee64052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee64052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee64052[4]), 4,6},
+ {&(_ZTV7ee64052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64052[];
+extern VTBL_ENTRY _ZTV7ee64052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64052[];
+static VTBL_ENTRY alt_thunk_names1024[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn20_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee640523barEv,_ZTv0_n16_N7ee640523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee640523barEv,_ZThn20_N7ee640523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee640523fooEv,_ZTv0_n12_N7ee640523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee640523fooEv,_ZThn20_N7ee640523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64052 = { "ee64052", // class name
+ bases_ee64052, 4,
+ &(vtc_ee64052[0]), // expected_vtbl_contents
+ &(vtt_ee64052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1024,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74052 : virtual dd4052 {
+ int e;
+ virtual void foo(); // _ZN7ee740523fooEv
+ virtual void bar(); // _ZN7ee740523barEv
+ ~ee74052(); // tgen
+ ee74052(); // tgen
+};
+//SIG(1 ee74052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74052 ::foo(){vfunc_called(this, "_ZN7ee740523fooEv");}
+void ee74052 ::bar(){vfunc_called(this, "_ZN7ee740523barEv");}
+ee74052 ::~ee74052(){ note_dtor("ee74052", this);} // tgen
+ee74052 ::ee74052(){ note_ctor("ee74052", this);} // tgen
+
+static void Test_ee74052()
+{
+ extern Class_Descriptor cd_ee74052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74052, buf);
+ ee74052 *dp, &lv = *(dp=new (buf) ee74052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd4052*), ABISELECT(40,24), "ee74052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd4052*), ABISELECT(16,8), "ee74052");
+ check_base_class_offset(lv, (cc052*)(dd4052*), ABISELECT(16,8), "ee74052");
+ check_base_class_offset(lv, (dd4052*), ABISELECT(16,8), "ee74052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74052.e");
+ test_class_info(&lv, &cd_ee74052);
+ dp->~ee74052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74052(Test_ee74052, "ee74052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74052C1Ev();
+extern void _ZN7ee74052D1Ev();
+Name_Map name_map_ee74052[] = {
+ NSPAIR(_ZN7ee74052C1Ev),
+ NSPAIR(_ZN7ee74052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd4052;
+extern VTBL_ENTRY _ZTI6dd4052[];
+extern VTBL_ENTRY _ZTV6dd4052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4052[];
+static Base_Class bases_ee74052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4052, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74052[];
+extern void _ZN7ee740523fooEv();
+extern void _ZN7ee740523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee740523barEv,_ZTv0_n16_N7ee740523barEv)();
+extern void ABISELECT(_ZThn16_N7ee740523barEv,_ZThn8_N7ee740523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee740523fooEv,_ZTv0_n12_N7ee740523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee740523fooEv,_ZThn24_N7ee740523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee740523barEv,_ZTv0_n16_N7ee740523barEv)();
+extern void ABISELECT(_ZThn40_N7ee740523barEv,_ZThn24_N7ee740523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74052[0]),
+ (VTBL_ENTRY)&_ZN7ee740523fooEv,
+ (VTBL_ENTRY)&_ZN7ee740523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740523barEv,_ZTv0_n16_N7ee740523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee740523fooEv,_ZTv0_n12_N7ee740523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee740523barEv,_ZTv0_n16_N7ee740523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74052[];
+extern void _ZN6dd40523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4052__7ee74052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN6dd40523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd4052__7ee74052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd4052__7ee74052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd4052__7ee74052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd4052__7ee74052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv)();
+extern void ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4052__7ee74052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv),
+};
+static VTT_ENTRY vtt_ee74052[] = {
+ {&(_ZTV7ee74052[4]), 4,17},
+ {&(_ZTV7ee74052[10]), 10,17},
+ {&(_ZTV7ee74052[15]), 15,17},
+ {&(_tg__ZTV6dd4052__7ee74052[3]), 3,4},
+ {&(_tg__ZTV5cc0526dd4052__7ee74052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd4052__7ee74052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd4052__7ee74052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd4052__7ee74052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4052__7ee74052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74052[];
+extern VTBL_ENTRY _ZTV7ee74052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74052[];
+static VTBL_ENTRY alt_thunk_names1025[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd40523barEv,_ZTv0_n16_N6dd40523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd40523barEv,_ZThn16_N6dd40523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee740523fooEv,_ZTv0_n12_N7ee740523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee740523fooEv,_ZThn24_N7ee740523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee740523barEv,_ZTv0_n16_N7ee740523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee740523barEv,_ZThn24_N7ee740523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee740523barEv,_ZThn8_N7ee740523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74052 = { "ee74052", // class name
+ bases_ee74052, 4,
+ &(vtc_ee74052[0]), // expected_vtbl_contents
+ &(vtt_ee74052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1025,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5052 : virtual cc052 {
+ int d;
+ virtual void bar(); // _ZN6dd50523barEv
+ ~dd5052(); // tgen
+ dd5052(); // tgen
+};
+//SIG(-1 dd5052) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5052 ::bar(){vfunc_called(this, "_ZN6dd50523barEv");}
+dd5052 ::~dd5052(){ note_dtor("dd5052", this);} // tgen
+dd5052 ::dd5052(){ note_ctor("dd5052", this);} // tgen
+
+static void Test_dd5052()
+{
+ extern Class_Descriptor cd_dd5052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5052, buf);
+ dd5052 *dp, &lv = *(dp=new (buf) dd5052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,20), "dd5052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,8), "dd5052");
+ check_base_class_offset(lv, (cc052*), ABISELECT(16,8), "dd5052");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5052.d");
+ test_class_info(&lv, &cd_dd5052);
+ dp->~dd5052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5052(Test_dd5052, "dd5052", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5052C1Ev();
+extern void _ZN6dd5052D1Ev();
+Name_Map name_map_dd5052[] = {
+ NSPAIR(_ZN6dd5052C1Ev),
+ NSPAIR(_ZN6dd5052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd5052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd5052[];
+extern void _ZN6dd50523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd5052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd5052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd5052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5052[] = {
+ {&(_ZTV6dd5052[4]), 4,16},
+ {&(_ZTV6dd5052[9]), 9,16},
+ {&(_ZTV6dd5052[14]), 14,16},
+ {&(_tg__ZTV5cc052__6dd5052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd5052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd5052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd5052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static VTBL_ENTRY alt_thunk_names1026[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5052 = { "dd5052", // class name
+ bases_dd5052, 3,
+ &(vtc_dd5052[0]), // expected_vtbl_contents
+ &(vtt_dd5052[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5052),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1026,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05052 : dd5052 {
+ int e;
+ ~ee05052(); // tgen
+ ee05052(); // tgen
+};
+//SIG(1 ee05052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05052 ::~ee05052(){ note_dtor("ee05052", this);} // tgen
+ee05052 ::ee05052(){ note_ctor("ee05052", this);} // tgen
+
+static void Test_ee05052()
+{
+ extern Class_Descriptor cd_ee05052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05052, buf);
+ ee05052 *dp, &lv = *(dp=new (buf) ee05052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee05052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee05052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(16,12), "ee05052");
+ check_base_class_offset(lv, (dd5052*), 0, "ee05052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05052.e");
+ test_class_info(&lv, &cd_ee05052);
+ dp->~ee05052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05052(Test_ee05052, "ee05052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05052C1Ev();
+extern void _ZN7ee05052D1Ev();
+Name_Map name_map_ee05052[] = {
+ NSPAIR(_ZN7ee05052C1Ev),
+ NSPAIR(_ZN7ee05052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee05052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05052[];
+extern void _ZN6dd50523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee05052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee05052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee05052[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee05052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee05052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee05052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee05052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05052[] = {
+ {&(_ZTV7ee05052[4]), 4,16},
+ {&(_tg__ZTV6dd5052__7ee05052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee05052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee05052[4]), 4,6},
+ {&(_ZTV7ee05052[9]), 9,16},
+ {&(_ZTV7ee05052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee05052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee05052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee05052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee05052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05052[];
+extern VTBL_ENTRY _ZTV7ee05052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05052[];
+static VTBL_ENTRY alt_thunk_names1027[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05052 = { "ee05052", // class name
+ bases_ee05052, 4,
+ &(vtc_ee05052[0]), // expected_vtbl_contents
+ &(vtt_ee05052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1027,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15052 : virtual dd5052 {
+ int e;
+ ~ee15052(); // tgen
+ ee15052(); // tgen
+};
+//SIG(1 ee15052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15052 ::~ee15052(){ note_dtor("ee15052", this);} // tgen
+ee15052 ::ee15052(){ note_ctor("ee15052", this);} // tgen
+
+static void Test_ee15052()
+{
+ extern Class_Descriptor cd_ee15052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15052, buf);
+ ee15052 *dp, &lv = *(dp=new (buf) ee15052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee15052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee15052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(32,16), "ee15052");
+ check_base_class_offset(lv, (dd5052*), ABISELECT(16,8), "ee15052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15052.e");
+ test_class_info(&lv, &cd_ee15052);
+ dp->~ee15052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15052(Test_ee15052, "ee15052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15052C1Ev();
+extern void _ZN7ee15052D1Ev();
+Name_Map name_map_ee15052[] = {
+ NSPAIR(_ZN7ee15052C1Ev),
+ NSPAIR(_ZN7ee15052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee15052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15052[];
+extern void _ZN6dd50523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15052[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee15052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee15052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee15052[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee15052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee15052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee15052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee15052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15052[] = {
+ {&(_ZTV7ee15052[5]), 5,22},
+ {&(_ZTV7ee15052[10]), 10,22},
+ {&(_ZTV7ee15052[15]), 15,22},
+ {&(_ZTV7ee15052[20]), 20,22},
+ {&(_tg__ZTV6dd5052__7ee15052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee15052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee15052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee15052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee15052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee15052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee15052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15052[];
+extern VTBL_ENTRY _ZTV7ee15052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15052[];
+static VTBL_ENTRY alt_thunk_names1028[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15052 = { "ee15052", // class name
+ bases_ee15052, 4,
+ &(vtc_ee15052[0]), // expected_vtbl_contents
+ &(vtt_ee15052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15052),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1028,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25052 : dd5052 {
+ int e;
+ virtual void foo(); // _ZN7ee250523fooEv
+ ~ee25052(); // tgen
+ ee25052(); // tgen
+};
+//SIG(1 ee25052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25052 ::foo(){vfunc_called(this, "_ZN7ee250523fooEv");}
+ee25052 ::~ee25052(){ note_dtor("ee25052", this);} // tgen
+ee25052 ::ee25052(){ note_ctor("ee25052", this);} // tgen
+
+static void Test_ee25052()
+{
+ extern Class_Descriptor cd_ee25052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25052, buf);
+ ee25052 *dp, &lv = *(dp=new (buf) ee25052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee25052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee25052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(16,12), "ee25052");
+ check_base_class_offset(lv, (dd5052*), 0, "ee25052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25052.e");
+ test_class_info(&lv, &cd_ee25052);
+ dp->~ee25052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25052(Test_ee25052, "ee25052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25052C1Ev();
+extern void _ZN7ee25052D1Ev();
+Name_Map name_map_ee25052[] = {
+ NSPAIR(_ZN7ee25052C1Ev),
+ NSPAIR(_ZN7ee25052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee25052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25052[];
+extern void _ZN6dd50523barEv();
+extern void _ZN7ee250523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee250523fooEv,_ZTv0_n12_N7ee250523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee250523fooEv,_ZThn24_N7ee250523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+ (VTBL_ENTRY)&_ZN7ee250523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee250523fooEv,_ZTv0_n12_N7ee250523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee25052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee25052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee25052[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee25052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee25052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee25052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee25052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25052[] = {
+ {&(_ZTV7ee25052[4]), 4,17},
+ {&(_tg__ZTV6dd5052__7ee25052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee25052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee25052[4]), 4,6},
+ {&(_ZTV7ee25052[10]), 10,17},
+ {&(_ZTV7ee25052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee25052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee25052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee25052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee25052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25052[];
+extern VTBL_ENTRY _ZTV7ee25052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25052[];
+static VTBL_ENTRY alt_thunk_names1029[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee250523fooEv,_ZTv0_n12_N7ee250523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee250523fooEv,_ZThn24_N7ee250523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25052 = { "ee25052", // class name
+ bases_ee25052, 4,
+ &(vtc_ee25052[0]), // expected_vtbl_contents
+ &(vtt_ee25052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1029,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35052 : virtual dd5052 {
+ int e;
+ virtual void foo(); // _ZN7ee350523fooEv
+ ~ee35052(); // tgen
+ ee35052(); // tgen
+};
+//SIG(1 ee35052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35052 ::foo(){vfunc_called(this, "_ZN7ee350523fooEv");}
+ee35052 ::~ee35052(){ note_dtor("ee35052", this);} // tgen
+ee35052 ::ee35052(){ note_ctor("ee35052", this);} // tgen
+
+static void Test_ee35052()
+{
+ extern Class_Descriptor cd_ee35052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35052, buf);
+ ee35052 *dp, &lv = *(dp=new (buf) ee35052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee35052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee35052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(32,16), "ee35052");
+ check_base_class_offset(lv, (dd5052*), ABISELECT(16,8), "ee35052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35052.e");
+ test_class_info(&lv, &cd_ee35052);
+ dp->~ee35052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35052(Test_ee35052, "ee35052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35052C1Ev();
+extern void _ZN7ee35052D1Ev();
+Name_Map name_map_ee35052[] = {
+ NSPAIR(_ZN7ee35052C1Ev),
+ NSPAIR(_ZN7ee35052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee35052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35052[];
+extern void _ZN7ee350523fooEv();
+extern void _ZN6dd50523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee350523fooEv,_ZTv0_n12_N7ee350523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee350523fooEv,_ZThn28_N7ee350523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35052[0]),
+ (VTBL_ENTRY)&_ZN7ee350523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee350523fooEv,_ZTv0_n12_N7ee350523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee35052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee35052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee35052[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee35052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee35052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee35052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee35052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35052[] = {
+ {&(_ZTV7ee35052[5]), 5,23},
+ {&(_ZTV7ee35052[11]), 11,23},
+ {&(_ZTV7ee35052[16]), 16,23},
+ {&(_ZTV7ee35052[21]), 21,23},
+ {&(_tg__ZTV6dd5052__7ee35052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee35052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee35052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee35052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee35052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee35052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee35052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35052[];
+extern VTBL_ENTRY _ZTV7ee35052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35052[];
+static VTBL_ENTRY alt_thunk_names1030[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee350523fooEv,_ZTv0_n12_N7ee350523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee350523fooEv,_ZThn28_N7ee350523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35052 = { "ee35052", // class name
+ bases_ee35052, 4,
+ &(vtc_ee35052[0]), // expected_vtbl_contents
+ &(vtt_ee35052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35052),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1030,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45052 : dd5052 {
+ int e;
+ virtual void bar(); // _ZN7ee450523barEv
+ ~ee45052(); // tgen
+ ee45052(); // tgen
+};
+//SIG(1 ee45052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45052 ::bar(){vfunc_called(this, "_ZN7ee450523barEv");}
+ee45052 ::~ee45052(){ note_dtor("ee45052", this);} // tgen
+ee45052 ::ee45052(){ note_ctor("ee45052", this);} // tgen
+
+static void Test_ee45052()
+{
+ extern Class_Descriptor cd_ee45052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45052, buf);
+ ee45052 *dp, &lv = *(dp=new (buf) ee45052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee45052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee45052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(16,12), "ee45052");
+ check_base_class_offset(lv, (dd5052*), 0, "ee45052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45052.e");
+ test_class_info(&lv, &cd_ee45052);
+ dp->~ee45052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45052(Test_ee45052, "ee45052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45052C1Ev();
+extern void _ZN7ee45052D1Ev();
+Name_Map name_map_ee45052[] = {
+ NSPAIR(_ZN7ee45052C1Ev),
+ NSPAIR(_ZN7ee45052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee45052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45052[];
+extern void _ZN7ee450523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450523barEv,_ZTv0_n16_N7ee450523barEv)();
+extern void ABISELECT(_ZThn16_N7ee450523barEv,_ZThn12_N7ee450523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee450523barEv,_ZTv0_n16_N7ee450523barEv)();
+extern void ABISELECT(_ZThn32_N7ee450523barEv,_ZThn24_N7ee450523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45052[0]),
+ (VTBL_ENTRY)&_ZN7ee450523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450523barEv,_ZTv0_n16_N7ee450523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee450523barEv,_ZTv0_n16_N7ee450523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee45052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee45052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee45052[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee45052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee45052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee45052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee45052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45052[] = {
+ {&(_ZTV7ee45052[4]), 4,16},
+ {&(_tg__ZTV6dd5052__7ee45052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee45052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee45052[4]), 4,6},
+ {&(_ZTV7ee45052[9]), 9,16},
+ {&(_ZTV7ee45052[14]), 14,16},
+ {&(_tg__ZTV5cc052__7ee45052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee45052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee45052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee45052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45052[];
+extern VTBL_ENTRY _ZTV7ee45052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45052[];
+static VTBL_ENTRY alt_thunk_names1031[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee450523barEv,_ZTv0_n16_N7ee450523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee450523barEv,_ZThn24_N7ee450523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee450523barEv,_ZThn12_N7ee450523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45052 = { "ee45052", // class name
+ bases_ee45052, 4,
+ &(vtc_ee45052[0]), // expected_vtbl_contents
+ &(vtt_ee45052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45052),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1031,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55052 : virtual dd5052 {
+ int e;
+ virtual void bar(); // _ZN7ee550523barEv
+ ~ee55052(); // tgen
+ ee55052(); // tgen
+};
+//SIG(1 ee55052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55052 ::bar(){vfunc_called(this, "_ZN7ee550523barEv");}
+ee55052 ::~ee55052(){ note_dtor("ee55052", this);} // tgen
+ee55052 ::ee55052(){ note_ctor("ee55052", this);} // tgen
+
+static void Test_ee55052()
+{
+ extern Class_Descriptor cd_ee55052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55052, buf);
+ ee55052 *dp, &lv = *(dp=new (buf) ee55052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee55052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee55052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(32,16), "ee55052");
+ check_base_class_offset(lv, (dd5052*), ABISELECT(16,8), "ee55052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55052.e");
+ test_class_info(&lv, &cd_ee55052);
+ dp->~ee55052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55052(Test_ee55052, "ee55052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55052C1Ev();
+extern void _ZN7ee55052D1Ev();
+Name_Map name_map_ee55052[] = {
+ NSPAIR(_ZN7ee55052C1Ev),
+ NSPAIR(_ZN7ee55052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee55052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55052[];
+extern void _ZN7ee550523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee550523barEv,_ZTv0_n20_N7ee550523barEv)();
+extern void ABISELECT(_ZThn16_N7ee550523barEv,_ZThn8_N7ee550523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee550523barEv,_ZTv0_n16_N7ee550523barEv)();
+extern void ABISELECT(_ZThn32_N7ee550523barEv,_ZThn16_N7ee550523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee550523barEv,_ZTv0_n16_N7ee550523barEv)();
+extern void ABISELECT(_ZThn48_N7ee550523barEv,_ZThn28_N7ee550523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55052[0]),
+ (VTBL_ENTRY)&_ZN7ee550523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee550523barEv,_ZTv0_n20_N7ee550523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550523barEv,_ZTv0_n16_N7ee550523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee550523barEv,_ZTv0_n16_N7ee550523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee55052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee55052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee55052[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee55052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee55052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee55052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee55052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55052[] = {
+ {&(_ZTV7ee55052[5]), 5,23},
+ {&(_ZTV7ee55052[11]), 11,23},
+ {&(_ZTV7ee55052[16]), 16,23},
+ {&(_ZTV7ee55052[21]), 21,23},
+ {&(_tg__ZTV6dd5052__7ee55052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee55052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee55052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee55052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee55052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee55052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee55052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55052[];
+extern VTBL_ENTRY _ZTV7ee55052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55052[];
+static VTBL_ENTRY alt_thunk_names1032[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee550523barEv,_ZTv0_n16_N7ee550523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee550523barEv,_ZThn28_N7ee550523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee550523barEv,_ZThn16_N7ee550523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee550523barEv,_ZTv0_n20_N7ee550523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee550523barEv,_ZThn8_N7ee550523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55052 = { "ee55052", // class name
+ bases_ee55052, 4,
+ &(vtc_ee55052[0]), // expected_vtbl_contents
+ &(vtt_ee55052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55052),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1032,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65052 : dd5052 {
+ int e;
+ virtual void foo(); // _ZN7ee650523fooEv
+ virtual void bar(); // _ZN7ee650523barEv
+ ~ee65052(); // tgen
+ ee65052(); // tgen
+};
+//SIG(1 ee65052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65052 ::foo(){vfunc_called(this, "_ZN7ee650523fooEv");}
+void ee65052 ::bar(){vfunc_called(this, "_ZN7ee650523barEv");}
+ee65052 ::~ee65052(){ note_dtor("ee65052", this);} // tgen
+ee65052 ::ee65052(){ note_ctor("ee65052", this);} // tgen
+
+static void Test_ee65052()
+{
+ extern Class_Descriptor cd_ee65052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65052, buf);
+ ee65052 *dp, &lv = *(dp=new (buf) ee65052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee65052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee65052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(16,12), "ee65052");
+ check_base_class_offset(lv, (dd5052*), 0, "ee65052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65052.e");
+ test_class_info(&lv, &cd_ee65052);
+ dp->~ee65052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65052(Test_ee65052, "ee65052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65052C1Ev();
+extern void _ZN7ee65052D1Ev();
+Name_Map name_map_ee65052[] = {
+ NSPAIR(_ZN7ee65052C1Ev),
+ NSPAIR(_ZN7ee65052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee65052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65052[];
+extern void _ZN7ee650523barEv();
+extern void _ZN7ee650523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee650523barEv,_ZTv0_n16_N7ee650523barEv)();
+extern void ABISELECT(_ZThn16_N7ee650523barEv,_ZThn12_N7ee650523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee650523fooEv,_ZTv0_n12_N7ee650523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee650523fooEv,_ZThn24_N7ee650523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee650523barEv,_ZTv0_n16_N7ee650523barEv)();
+extern void ABISELECT(_ZThn32_N7ee650523barEv,_ZThn24_N7ee650523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65052[0]),
+ (VTBL_ENTRY)&_ZN7ee650523barEv,
+ (VTBL_ENTRY)&_ZN7ee650523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650523barEv,_ZTv0_n16_N7ee650523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee650523fooEv,_ZTv0_n12_N7ee650523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee650523barEv,_ZTv0_n16_N7ee650523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee65052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee65052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee65052[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee65052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee65052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee65052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee65052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65052[] = {
+ {&(_ZTV7ee65052[4]), 4,17},
+ {&(_tg__ZTV6dd5052__7ee65052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee65052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee65052[4]), 4,6},
+ {&(_ZTV7ee65052[10]), 10,17},
+ {&(_ZTV7ee65052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee65052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee65052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee65052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee65052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65052[];
+extern VTBL_ENTRY _ZTV7ee65052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65052[];
+static VTBL_ENTRY alt_thunk_names1033[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn24_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn12_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee650523fooEv,_ZTv0_n12_N7ee650523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee650523fooEv,_ZThn24_N7ee650523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee650523barEv,_ZTv0_n16_N7ee650523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee650523barEv,_ZThn24_N7ee650523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee650523barEv,_ZThn12_N7ee650523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65052 = { "ee65052", // class name
+ bases_ee65052, 4,
+ &(vtc_ee65052[0]), // expected_vtbl_contents
+ &(vtt_ee65052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1033,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75052 : virtual dd5052 {
+ int e;
+ virtual void foo(); // _ZN7ee750523fooEv
+ virtual void bar(); // _ZN7ee750523barEv
+ ~ee75052(); // tgen
+ ee75052(); // tgen
+};
+//SIG(1 ee75052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75052 ::foo(){vfunc_called(this, "_ZN7ee750523fooEv");}
+void ee75052 ::bar(){vfunc_called(this, "_ZN7ee750523barEv");}
+ee75052 ::~ee75052(){ note_dtor("ee75052", this);} // tgen
+ee75052 ::ee75052(){ note_ctor("ee75052", this);} // tgen
+
+static void Test_ee75052()
+{
+ extern Class_Descriptor cd_ee75052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75052, buf);
+ ee75052 *dp, &lv = *(dp=new (buf) ee75052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee75052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee75052");
+ check_base_class_offset(lv, (cc052*)(dd5052*), ABISELECT(32,16), "ee75052");
+ check_base_class_offset(lv, (dd5052*), ABISELECT(16,8), "ee75052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75052.e");
+ test_class_info(&lv, &cd_ee75052);
+ dp->~ee75052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75052(Test_ee75052, "ee75052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75052C1Ev();
+extern void _ZN7ee75052D1Ev();
+Name_Map name_map_ee75052[] = {
+ NSPAIR(_ZN7ee75052C1Ev),
+ NSPAIR(_ZN7ee75052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd5052;
+extern VTBL_ENTRY _ZTI6dd5052[];
+extern VTBL_ENTRY _ZTV6dd5052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5052[];
+static Base_Class bases_ee75052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5052, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75052[];
+extern void _ZN7ee750523fooEv();
+extern void _ZN7ee750523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee750523barEv,_ZTv0_n20_N7ee750523barEv)();
+extern void ABISELECT(_ZThn16_N7ee750523barEv,_ZThn8_N7ee750523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750523barEv,_ZTv0_n16_N7ee750523barEv)();
+extern void ABISELECT(_ZThn32_N7ee750523barEv,_ZThn16_N7ee750523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee750523fooEv,_ZTv0_n12_N7ee750523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee750523fooEv,_ZThn28_N7ee750523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee750523barEv,_ZTv0_n16_N7ee750523barEv)();
+extern void ABISELECT(_ZThn48_N7ee750523barEv,_ZThn28_N7ee750523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75052[0]),
+ (VTBL_ENTRY)&_ZN7ee750523fooEv,
+ (VTBL_ENTRY)&_ZN7ee750523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee750523barEv,_ZTv0_n20_N7ee750523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750523barEv,_ZTv0_n16_N7ee750523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee750523fooEv,_ZTv0_n12_N7ee750523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee750523barEv,_ZTv0_n16_N7ee750523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75052[];
+extern void _ZN6dd50523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5052__7ee75052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN6dd50523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd5052__7ee75052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv)();
+extern void ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5052__7ee75052[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee75052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee75052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee75052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee75052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75052[] = {
+ {&(_ZTV7ee75052[5]), 5,24},
+ {&(_ZTV7ee75052[12]), 12,24},
+ {&(_ZTV7ee75052[17]), 17,24},
+ {&(_ZTV7ee75052[22]), 22,24},
+ {&(_tg__ZTV6dd5052__7ee75052[4]), 4,5},
+ {&(_tg__ZTV5cc052__6dd5052__7ee75052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5052__7ee75052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee75052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee75052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee75052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee75052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75052[];
+extern VTBL_ENTRY _ZTV7ee75052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75052[];
+static VTBL_ENTRY alt_thunk_names1034[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd50523barEv,_ZTv0_n16_N6dd50523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd50523barEv,_ZThn20_N6dd50523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd50523barEv,_ZThn8_N6dd50523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee750523fooEv,_ZTv0_n12_N7ee750523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee750523fooEv,_ZThn28_N7ee750523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee750523barEv,_ZTv0_n16_N7ee750523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee750523barEv,_ZThn28_N7ee750523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee750523barEv,_ZThn16_N7ee750523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee750523barEv,_ZTv0_n20_N7ee750523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee750523barEv,_ZThn8_N7ee750523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75052 = { "ee75052", // class name
+ bases_ee75052, 4,
+ &(vtc_ee75052[0]), // expected_vtbl_contents
+ &(vtt_ee75052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75052),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1034,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6052 : cc052 {
+ int d;
+ virtual void bar(); // _ZN6dd60523barEv
+ virtual void foo(); // _ZN6dd60523fooEv
+ ~dd6052(); // tgen
+ dd6052(); // tgen
+};
+//SIG(-1 dd6052) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6052 ::bar(){vfunc_called(this, "_ZN6dd60523barEv");}
+void dd6052 ::foo(){vfunc_called(this, "_ZN6dd60523fooEv");}
+dd6052 ::~dd6052(){ note_dtor("dd6052", this);} // tgen
+dd6052 ::dd6052(){ note_ctor("dd6052", this);} // tgen
+
+static void Test_dd6052()
+{
+ extern Class_Descriptor cd_dd6052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6052, buf);
+ dd6052 *dp, &lv = *(dp=new (buf) dd6052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(24,16), "dd6052");
+ check_base_class_offset(lv, (bb52*)(cc052*), 0, "dd6052");
+ check_base_class_offset(lv, (cc052*), 0, "dd6052");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6052.d");
+ test_class_info(&lv, &cd_dd6052);
+ dp->~dd6052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6052(Test_dd6052, "dd6052", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6052C1Ev();
+extern void _ZN6dd6052D1Ev();
+Name_Map name_map_dd6052[] = {
+ NSPAIR(_ZN6dd6052C1Ev),
+ NSPAIR(_ZN6dd6052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd6052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd6052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd6052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd6052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd6052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6052[] = {
+ {&(_ZTV6dd6052[3]), 3,11},
+ {&(_tg__ZTV5cc052__6dd6052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd6052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd6052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd6052[4]), 4,6},
+ {&(_ZTV6dd6052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static VTBL_ENTRY alt_thunk_names1035[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6052 = { "dd6052", // class name
+ bases_dd6052, 3,
+ &(vtc_dd6052[0]), // expected_vtbl_contents
+ &(vtt_dd6052[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6052),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1035,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06052 : dd6052 {
+ int e;
+ ~ee06052(); // tgen
+ ee06052(); // tgen
+};
+//SIG(1 ee06052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06052 ::~ee06052(){ note_dtor("ee06052", this);} // tgen
+ee06052 ::ee06052(){ note_ctor("ee06052", this);} // tgen
+
+static void Test_ee06052()
+{
+ extern Class_Descriptor cd_ee06052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06052, buf);
+ ee06052 *dp, &lv = *(dp=new (buf) ee06052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(24,20), "ee06052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), 0, "ee06052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), 0, "ee06052");
+ check_base_class_offset(lv, (dd6052*), 0, "ee06052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06052.e");
+ test_class_info(&lv, &cd_ee06052);
+ dp->~ee06052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06052(Test_ee06052, "ee06052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06052C1Ev();
+extern void _ZN7ee06052D1Ev();
+Name_Map name_map_ee06052[] = {
+ NSPAIR(_ZN7ee06052C1Ev),
+ NSPAIR(_ZN7ee06052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee06052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee06052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee06052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee06052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee06052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee06052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee06052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee06052[] = {
+ {&(_ZTV7ee06052[3]), 3,11},
+ {&(_tg__ZTV6dd6052__7ee06052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee06052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee06052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee06052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee06052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee06052[4]), 4,6},
+ {&(_ZTV7ee06052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06052[];
+extern VTBL_ENTRY _ZTV7ee06052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06052[];
+static VTBL_ENTRY alt_thunk_names1036[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06052 = { "ee06052", // class name
+ bases_ee06052, 4,
+ &(vtc_ee06052[0]), // expected_vtbl_contents
+ &(vtt_ee06052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1036,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16052 : virtual dd6052 {
+ int e;
+ ~ee16052(); // tgen
+ ee16052(); // tgen
+};
+//SIG(1 ee16052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16052 ::~ee16052(){ note_dtor("ee16052", this);} // tgen
+ee16052 ::ee16052(){ note_ctor("ee16052", this);} // tgen
+
+static void Test_ee16052()
+{
+ extern Class_Descriptor cd_ee16052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16052, buf);
+ ee16052 *dp, &lv = *(dp=new (buf) ee16052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(40,24), "ee16052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), ABISELECT(16,8), "ee16052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), ABISELECT(16,8), "ee16052");
+ check_base_class_offset(lv, (dd6052*), ABISELECT(16,8), "ee16052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16052.e");
+ test_class_info(&lv, &cd_ee16052);
+ dp->~ee16052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16052(Test_ee16052, "ee16052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16052C1Ev();
+extern void _ZN7ee16052D1Ev();
+Name_Map name_map_ee16052[] = {
+ NSPAIR(_ZN7ee16052C1Ev),
+ NSPAIR(_ZN7ee16052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee16052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16052[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee16052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee16052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee16052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee16052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee16052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee16052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee16052[] = {
+ {&(_ZTV7ee16052[4]), 4,17},
+ {&(_ZTV7ee16052[9]), 9,17},
+ {&(_ZTV7ee16052[15]), 15,17},
+ {&(_tg__ZTV6dd6052__7ee16052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee16052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee16052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee16052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee16052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee16052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16052[];
+extern VTBL_ENTRY _ZTV7ee16052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16052[];
+static VTBL_ENTRY alt_thunk_names1037[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16052 = { "ee16052", // class name
+ bases_ee16052, 4,
+ &(vtc_ee16052[0]), // expected_vtbl_contents
+ &(vtt_ee16052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1037,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26052 : dd6052 {
+ int e;
+ virtual void foo(); // _ZN7ee260523fooEv
+ ~ee26052(); // tgen
+ ee26052(); // tgen
+};
+//SIG(1 ee26052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26052 ::foo(){vfunc_called(this, "_ZN7ee260523fooEv");}
+ee26052 ::~ee26052(){ note_dtor("ee26052", this);} // tgen
+ee26052 ::ee26052(){ note_ctor("ee26052", this);} // tgen
+
+static void Test_ee26052()
+{
+ extern Class_Descriptor cd_ee26052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26052, buf);
+ ee26052 *dp, &lv = *(dp=new (buf) ee26052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(24,20), "ee26052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), 0, "ee26052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), 0, "ee26052");
+ check_base_class_offset(lv, (dd6052*), 0, "ee26052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26052.e");
+ test_class_info(&lv, &cd_ee26052);
+ dp->~ee26052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26052(Test_ee26052, "ee26052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26052C1Ev();
+extern void _ZN7ee26052D1Ev();
+Name_Map name_map_ee26052[] = {
+ NSPAIR(_ZN7ee26052C1Ev),
+ NSPAIR(_ZN7ee26052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee26052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN7ee260523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee260523fooEv,_ZTv0_n12_N7ee260523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee260523fooEv,_ZThn20_N7ee260523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN7ee260523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee260523fooEv,_ZTv0_n12_N7ee260523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee26052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee26052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee26052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee26052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee26052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee26052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee26052[] = {
+ {&(_ZTV7ee26052[3]), 3,11},
+ {&(_tg__ZTV6dd6052__7ee26052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee26052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee26052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee26052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee26052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee26052[4]), 4,6},
+ {&(_ZTV7ee26052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26052[];
+extern VTBL_ENTRY _ZTV7ee26052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26052[];
+static VTBL_ENTRY alt_thunk_names1038[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee260523fooEv,_ZTv0_n12_N7ee260523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee260523fooEv,_ZThn20_N7ee260523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26052 = { "ee26052", // class name
+ bases_ee26052, 4,
+ &(vtc_ee26052[0]), // expected_vtbl_contents
+ &(vtt_ee26052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1038,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36052 : virtual dd6052 {
+ int e;
+ virtual void foo(); // _ZN7ee360523fooEv
+ ~ee36052(); // tgen
+ ee36052(); // tgen
+};
+//SIG(1 ee36052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36052 ::foo(){vfunc_called(this, "_ZN7ee360523fooEv");}
+ee36052 ::~ee36052(){ note_dtor("ee36052", this);} // tgen
+ee36052 ::ee36052(){ note_ctor("ee36052", this);} // tgen
+
+static void Test_ee36052()
+{
+ extern Class_Descriptor cd_ee36052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36052, buf);
+ ee36052 *dp, &lv = *(dp=new (buf) ee36052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(40,24), "ee36052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), ABISELECT(16,8), "ee36052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), ABISELECT(16,8), "ee36052");
+ check_base_class_offset(lv, (dd6052*), ABISELECT(16,8), "ee36052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36052.e");
+ test_class_info(&lv, &cd_ee36052);
+ dp->~ee36052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36052(Test_ee36052, "ee36052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36052C1Ev();
+extern void _ZN7ee36052D1Ev();
+Name_Map name_map_ee36052[] = {
+ NSPAIR(_ZN7ee36052C1Ev),
+ NSPAIR(_ZN7ee36052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee36052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36052[];
+extern void _ZN7ee360523fooEv();
+extern void _ZN6dd60523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee360523fooEv,_ZTv0_n20_N7ee360523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee360523fooEv,_ZThn8_N7ee360523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee360523fooEv,_ZTv0_n12_N7ee360523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee360523fooEv,_ZThn24_N7ee360523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36052[0]),
+ (VTBL_ENTRY)&_ZN7ee360523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee360523fooEv,_ZTv0_n20_N7ee360523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee360523fooEv,_ZTv0_n12_N7ee360523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee36052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee36052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee36052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee36052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee36052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee36052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee36052[] = {
+ {&(_ZTV7ee36052[4]), 4,18},
+ {&(_ZTV7ee36052[10]), 10,18},
+ {&(_ZTV7ee36052[16]), 16,18},
+ {&(_tg__ZTV6dd6052__7ee36052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee36052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee36052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee36052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee36052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee36052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36052[];
+extern VTBL_ENTRY _ZTV7ee36052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36052[];
+static VTBL_ENTRY alt_thunk_names1039[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee360523fooEv,_ZTv0_n12_N7ee360523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee360523fooEv,_ZThn24_N7ee360523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee360523fooEv,_ZTv0_n20_N7ee360523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee360523fooEv,_ZThn8_N7ee360523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36052 = { "ee36052", // class name
+ bases_ee36052, 4,
+ &(vtc_ee36052[0]), // expected_vtbl_contents
+ &(vtt_ee36052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36052),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1039,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46052 : dd6052 {
+ int e;
+ virtual void bar(); // _ZN7ee460523barEv
+ ~ee46052(); // tgen
+ ee46052(); // tgen
+};
+//SIG(1 ee46052) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46052 ::bar(){vfunc_called(this, "_ZN7ee460523barEv");}
+ee46052 ::~ee46052(){ note_dtor("ee46052", this);} // tgen
+ee46052 ::ee46052(){ note_ctor("ee46052", this);} // tgen
+
+static void Test_ee46052()
+{
+ extern Class_Descriptor cd_ee46052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46052, buf);
+ ee46052 *dp, &lv = *(dp=new (buf) ee46052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(24,20), "ee46052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), 0, "ee46052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), 0, "ee46052");
+ check_base_class_offset(lv, (dd6052*), 0, "ee46052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46052.e");
+ test_class_info(&lv, &cd_ee46052);
+ dp->~ee46052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46052(Test_ee46052, "ee46052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46052C1Ev();
+extern void _ZN7ee46052D1Ev();
+Name_Map name_map_ee46052[] = {
+ NSPAIR(_ZN7ee46052C1Ev),
+ NSPAIR(_ZN7ee46052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee46052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46052[];
+extern void _ZN7ee460523barEv();
+extern void _ZN6dd60523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee460523barEv,_ZTv0_n16_N7ee460523barEv)();
+extern void ABISELECT(_ZThn24_N7ee460523barEv,_ZThn20_N7ee460523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46052[0]),
+ (VTBL_ENTRY)&_ZN7ee460523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee460523barEv,_ZTv0_n16_N7ee460523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee46052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee46052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee46052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee46052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee46052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee46052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee46052[] = {
+ {&(_ZTV7ee46052[3]), 3,11},
+ {&(_tg__ZTV6dd6052__7ee46052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee46052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee46052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee46052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee46052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee46052[4]), 4,6},
+ {&(_ZTV7ee46052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46052[];
+extern VTBL_ENTRY _ZTV7ee46052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46052[];
+static VTBL_ENTRY alt_thunk_names1040[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee460523barEv,_ZTv0_n16_N7ee460523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee460523barEv,_ZThn20_N7ee460523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46052 = { "ee46052", // class name
+ bases_ee46052, 4,
+ &(vtc_ee46052[0]), // expected_vtbl_contents
+ &(vtt_ee46052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1040,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56052 : virtual dd6052 {
+ int e;
+ virtual void bar(); // _ZN7ee560523barEv
+ ~ee56052(); // tgen
+ ee56052(); // tgen
+};
+//SIG(1 ee56052) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56052 ::bar(){vfunc_called(this, "_ZN7ee560523barEv");}
+ee56052 ::~ee56052(){ note_dtor("ee56052", this);} // tgen
+ee56052 ::ee56052(){ note_ctor("ee56052", this);} // tgen
+
+static void Test_ee56052()
+{
+ extern Class_Descriptor cd_ee56052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56052, buf);
+ ee56052 *dp, &lv = *(dp=new (buf) ee56052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(40,24), "ee56052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), ABISELECT(16,8), "ee56052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), ABISELECT(16,8), "ee56052");
+ check_base_class_offset(lv, (dd6052*), ABISELECT(16,8), "ee56052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56052.e");
+ test_class_info(&lv, &cd_ee56052);
+ dp->~ee56052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56052(Test_ee56052, "ee56052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56052C1Ev();
+extern void _ZN7ee56052D1Ev();
+Name_Map name_map_ee56052[] = {
+ NSPAIR(_ZN7ee56052C1Ev),
+ NSPAIR(_ZN7ee56052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee56052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56052[];
+extern void _ZN7ee560523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee560523barEv,_ZTv0_n16_N7ee560523barEv)();
+extern void ABISELECT(_ZThn16_N7ee560523barEv,_ZThn8_N7ee560523barEv)() __attribute__((weak));
+extern void _ZN6dd60523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee560523barEv,_ZTv0_n16_N7ee560523barEv)();
+extern void ABISELECT(_ZThn40_N7ee560523barEv,_ZThn24_N7ee560523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56052[0]),
+ (VTBL_ENTRY)&_ZN7ee560523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560523barEv,_ZTv0_n16_N7ee560523barEv),
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee560523barEv,_ZTv0_n16_N7ee560523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee56052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee56052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee56052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee56052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee56052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee56052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee56052[] = {
+ {&(_ZTV7ee56052[4]), 4,18},
+ {&(_ZTV7ee56052[10]), 10,18},
+ {&(_ZTV7ee56052[16]), 16,18},
+ {&(_tg__ZTV6dd6052__7ee56052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee56052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee56052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee56052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee56052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee56052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56052[];
+extern VTBL_ENTRY _ZTV7ee56052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56052[];
+static VTBL_ENTRY alt_thunk_names1041[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee560523barEv,_ZTv0_n16_N7ee560523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee560523barEv,_ZThn24_N7ee560523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee560523barEv,_ZThn8_N7ee560523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56052 = { "ee56052", // class name
+ bases_ee56052, 4,
+ &(vtc_ee56052[0]), // expected_vtbl_contents
+ &(vtt_ee56052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56052),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1041,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66052 : dd6052 {
+ int e;
+ virtual void foo(); // _ZN7ee660523fooEv
+ virtual void bar(); // _ZN7ee660523barEv
+ ~ee66052(); // tgen
+ ee66052(); // tgen
+};
+//SIG(1 ee66052) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66052 ::foo(){vfunc_called(this, "_ZN7ee660523fooEv");}
+void ee66052 ::bar(){vfunc_called(this, "_ZN7ee660523barEv");}
+ee66052 ::~ee66052(){ note_dtor("ee66052", this);} // tgen
+ee66052 ::ee66052(){ note_ctor("ee66052", this);} // tgen
+
+static void Test_ee66052()
+{
+ extern Class_Descriptor cd_ee66052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66052, buf);
+ ee66052 *dp, &lv = *(dp=new (buf) ee66052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(24,20), "ee66052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), 0, "ee66052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), 0, "ee66052");
+ check_base_class_offset(lv, (dd6052*), 0, "ee66052");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66052.e");
+ test_class_info(&lv, &cd_ee66052);
+ dp->~ee66052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66052(Test_ee66052, "ee66052", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66052C1Ev();
+extern void _ZN7ee66052D1Ev();
+Name_Map name_map_ee66052[] = {
+ NSPAIR(_ZN7ee66052C1Ev),
+ NSPAIR(_ZN7ee66052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee66052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66052[];
+extern void _ZN7ee660523barEv();
+extern void _ZN7ee660523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee660523fooEv,_ZTv0_n12_N7ee660523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee660523fooEv,_ZThn20_N7ee660523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee660523barEv,_ZTv0_n16_N7ee660523barEv)();
+extern void ABISELECT(_ZThn24_N7ee660523barEv,_ZThn20_N7ee660523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66052[0]),
+ (VTBL_ENTRY)&_ZN7ee660523barEv,
+ (VTBL_ENTRY)&_ZN7ee660523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee660523fooEv,_ZTv0_n12_N7ee660523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee660523barEv,_ZTv0_n16_N7ee660523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee66052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee66052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee66052[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee66052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee66052[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee66052[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee66052[] = {
+ {&(_ZTV7ee66052[3]), 3,11},
+ {&(_tg__ZTV6dd6052__7ee66052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee66052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee66052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee66052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee66052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee66052[4]), 4,6},
+ {&(_ZTV7ee66052[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66052[];
+extern VTBL_ENTRY _ZTV7ee66052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66052[];
+static VTBL_ENTRY alt_thunk_names1042[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn20_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn20_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee660523barEv,_ZTv0_n16_N7ee660523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee660523barEv,_ZThn20_N7ee660523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee660523fooEv,_ZTv0_n12_N7ee660523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee660523fooEv,_ZThn20_N7ee660523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66052 = { "ee66052", // class name
+ bases_ee66052, 4,
+ &(vtc_ee66052[0]), // expected_vtbl_contents
+ &(vtt_ee66052[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66052),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66052),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1042,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76052 : virtual dd6052 {
+ int e;
+ virtual void foo(); // _ZN7ee760523fooEv
+ virtual void bar(); // _ZN7ee760523barEv
+ ~ee76052(); // tgen
+ ee76052(); // tgen
+};
+//SIG(1 ee76052) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76052 ::foo(){vfunc_called(this, "_ZN7ee760523fooEv");}
+void ee76052 ::bar(){vfunc_called(this, "_ZN7ee760523barEv");}
+ee76052 ::~ee76052(){ note_dtor("ee76052", this);} // tgen
+ee76052 ::ee76052(){ note_ctor("ee76052", this);} // tgen
+
+static void Test_ee76052()
+{
+ extern Class_Descriptor cd_ee76052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76052, buf);
+ ee76052 *dp, &lv = *(dp=new (buf) ee76052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*)(dd6052*), ABISELECT(40,24), "ee76052");
+ check_base_class_offset(lv, (bb52*)(cc052*)(dd6052*), ABISELECT(16,8), "ee76052");
+ check_base_class_offset(lv, (cc052*)(dd6052*), ABISELECT(16,8), "ee76052");
+ check_base_class_offset(lv, (dd6052*), ABISELECT(16,8), "ee76052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76052.e");
+ test_class_info(&lv, &cd_ee76052);
+ dp->~ee76052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76052(Test_ee76052, "ee76052", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76052C1Ev();
+extern void _ZN7ee76052D1Ev();
+Name_Map name_map_ee76052[] = {
+ NSPAIR(_ZN7ee76052C1Ev),
+ NSPAIR(_ZN7ee76052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd6052;
+extern VTBL_ENTRY _ZTI6dd6052[];
+extern VTBL_ENTRY _ZTV6dd6052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6052[];
+static Base_Class bases_ee76052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6052, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76052[];
+extern void _ZN7ee760523fooEv();
+extern void _ZN7ee760523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee760523barEv,_ZTv0_n16_N7ee760523barEv)();
+extern void ABISELECT(_ZThn16_N7ee760523barEv,_ZThn8_N7ee760523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee760523fooEv,_ZTv0_n20_N7ee760523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee760523fooEv,_ZThn8_N7ee760523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee760523fooEv,_ZTv0_n12_N7ee760523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee760523fooEv,_ZThn24_N7ee760523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee760523barEv,_ZTv0_n16_N7ee760523barEv)();
+extern void ABISELECT(_ZThn40_N7ee760523barEv,_ZThn24_N7ee760523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76052[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76052[0]),
+ (VTBL_ENTRY)&_ZN7ee760523fooEv,
+ (VTBL_ENTRY)&_ZN7ee760523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760523barEv,_ZTv0_n16_N7ee760523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee760523fooEv,_ZTv0_n20_N7ee760523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee760523fooEv,_ZTv0_n12_N7ee760523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee760523barEv,_ZTv0_n16_N7ee760523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76052[];
+extern void _ZN6dd60523barEv();
+extern void _ZN6dd60523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6052__7ee76052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&_ZN6dd60523barEv,
+ (VTBL_ENTRY)&_ZN6dd60523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc0526dd6052__7ee76052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc0526dd6052__7ee76052[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc0526dd6052__7ee76052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc0526dd6052__7ee76052[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv)();
+extern void ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6052__7ee76052[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv),
+};
+static VTT_ENTRY vtt_ee76052[] = {
+ {&(_ZTV7ee76052[4]), 4,19},
+ {&(_ZTV7ee76052[11]), 11,19},
+ {&(_ZTV7ee76052[17]), 17,19},
+ {&(_tg__ZTV6dd6052__7ee76052[3]), 3,5},
+ {&(_tg__ZTV5cc0526dd6052__7ee76052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc0526dd6052__7ee76052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc0526dd6052__7ee76052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc0526dd6052__7ee76052[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6052__7ee76052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76052[];
+extern VTBL_ENTRY _ZTV7ee76052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76052[];
+static VTBL_ENTRY alt_thunk_names1043[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd60523barEv,_ZTv0_n16_N6dd60523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523barEv,_ZThn16_N6dd60523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd60523fooEv,_ZTv0_n12_N6dd60523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd60523fooEv,_ZThn16_N6dd60523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee760523fooEv,_ZTv0_n12_N7ee760523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee760523fooEv,_ZThn24_N7ee760523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee760523fooEv,_ZTv0_n20_N7ee760523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760523fooEv,_ZThn8_N7ee760523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee760523barEv,_ZTv0_n16_N7ee760523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee760523barEv,_ZThn24_N7ee760523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee760523barEv,_ZThn8_N7ee760523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76052 = { "ee76052", // class name
+ bases_ee76052, 4,
+ &(vtc_ee76052[0]), // expected_vtbl_contents
+ &(vtt_ee76052[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76052),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76052),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1043,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7052 : virtual cc052 {
+ int d;
+ virtual void bar(); // _ZN6dd70523barEv
+ virtual void foo(); // _ZN6dd70523fooEv
+ ~dd7052(); // tgen
+ dd7052(); // tgen
+};
+//SIG(-1 dd7052) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7052 ::bar(){vfunc_called(this, "_ZN6dd70523barEv");}
+void dd7052 ::foo(){vfunc_called(this, "_ZN6dd70523fooEv");}
+dd7052 ::~dd7052(){ note_dtor("dd7052", this);} // tgen
+dd7052 ::dd7052(){ note_ctor("dd7052", this);} // tgen
+
+static void Test_dd7052()
+{
+ extern Class_Descriptor cd_dd7052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7052, buf);
+ dd7052 *dp, &lv = *(dp=new (buf) dd7052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,20), "dd7052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,8), "dd7052");
+ check_base_class_offset(lv, (cc052*), ABISELECT(16,8), "dd7052");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7052.d");
+ test_class_info(&lv, &cd_dd7052);
+ dp->~dd7052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7052(Test_dd7052, "dd7052", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7052C1Ev();
+extern void _ZN6dd7052D1Ev();
+Name_Map name_map_dd7052[] = {
+ NSPAIR(_ZN6dd7052C1Ev),
+ NSPAIR(_ZN6dd7052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+static Base_Class bases_dd7052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__6dd7052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__6dd7052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__6dd7052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7052[] = {
+ {&(_ZTV6dd7052[4]), 4,17},
+ {&(_ZTV6dd7052[10]), 10,17},
+ {&(_ZTV6dd7052[15]), 15,17},
+ {&(_tg__ZTV5cc052__6dd7052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__6dd7052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__6dd7052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__6dd7052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static VTBL_ENTRY alt_thunk_names1044[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7052 = { "dd7052", // class name
+ bases_dd7052, 3,
+ &(vtc_dd7052[0]), // expected_vtbl_contents
+ &(vtt_dd7052[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7052),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1044,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07052 : dd7052 {
+ int e;
+ ~ee07052(); // tgen
+ ee07052(); // tgen
+};
+//SIG(1 ee07052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07052 ::~ee07052(){ note_dtor("ee07052", this);} // tgen
+ee07052 ::ee07052(){ note_ctor("ee07052", this);} // tgen
+
+static void Test_ee07052()
+{
+ extern Class_Descriptor cd_ee07052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07052, buf);
+ ee07052 *dp, &lv = *(dp=new (buf) ee07052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee07052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee07052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(16,12), "ee07052");
+ check_base_class_offset(lv, (dd7052*), 0, "ee07052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07052.e");
+ test_class_info(&lv, &cd_ee07052);
+ dp->~ee07052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07052(Test_ee07052, "ee07052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07052C1Ev();
+extern void _ZN7ee07052D1Ev();
+Name_Map name_map_ee07052[] = {
+ NSPAIR(_ZN7ee07052C1Ev),
+ NSPAIR(_ZN7ee07052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee07052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee07052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee07052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee07052[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee07052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee07052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee07052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee07052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07052[] = {
+ {&(_ZTV7ee07052[4]), 4,17},
+ {&(_tg__ZTV6dd7052__7ee07052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee07052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee07052[4]), 4,6},
+ {&(_ZTV7ee07052[10]), 10,17},
+ {&(_ZTV7ee07052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee07052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee07052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee07052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee07052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07052[];
+extern VTBL_ENTRY _ZTV7ee07052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07052[];
+static VTBL_ENTRY alt_thunk_names1045[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07052 = { "ee07052", // class name
+ bases_ee07052, 4,
+ &(vtc_ee07052[0]), // expected_vtbl_contents
+ &(vtt_ee07052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1045,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17052 : virtual dd7052 {
+ int e;
+ ~ee17052(); // tgen
+ ee17052(); // tgen
+};
+//SIG(1 ee17052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17052 ::~ee17052(){ note_dtor("ee17052", this);} // tgen
+ee17052 ::ee17052(){ note_ctor("ee17052", this);} // tgen
+
+static void Test_ee17052()
+{
+ extern Class_Descriptor cd_ee17052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17052, buf);
+ ee17052 *dp, &lv = *(dp=new (buf) ee17052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee17052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee17052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(32,16), "ee17052");
+ check_base_class_offset(lv, (dd7052*), ABISELECT(16,8), "ee17052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17052.e");
+ test_class_info(&lv, &cd_ee17052);
+ dp->~ee17052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17052(Test_ee17052, "ee17052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17052C1Ev();
+extern void _ZN7ee17052D1Ev();
+Name_Map name_map_ee17052[] = {
+ NSPAIR(_ZN7ee17052C1Ev),
+ NSPAIR(_ZN7ee17052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee17052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17052[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee17052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee17052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee17052[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee17052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee17052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee17052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee17052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17052[] = {
+ {&(_ZTV7ee17052[5]), 5,24},
+ {&(_ZTV7ee17052[11]), 11,24},
+ {&(_ZTV7ee17052[17]), 17,24},
+ {&(_ZTV7ee17052[22]), 22,24},
+ {&(_tg__ZTV6dd7052__7ee17052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee17052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee17052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee17052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee17052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee17052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee17052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17052[];
+extern VTBL_ENTRY _ZTV7ee17052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17052[];
+static VTBL_ENTRY alt_thunk_names1046[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17052 = { "ee17052", // class name
+ bases_ee17052, 4,
+ &(vtc_ee17052[0]), // expected_vtbl_contents
+ &(vtt_ee17052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17052),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1046,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27052 : dd7052 {
+ int e;
+ virtual void foo(); // _ZN7ee270523fooEv
+ ~ee27052(); // tgen
+ ee27052(); // tgen
+};
+//SIG(1 ee27052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27052 ::foo(){vfunc_called(this, "_ZN7ee270523fooEv");}
+ee27052 ::~ee27052(){ note_dtor("ee27052", this);} // tgen
+ee27052 ::ee27052(){ note_ctor("ee27052", this);} // tgen
+
+static void Test_ee27052()
+{
+ extern Class_Descriptor cd_ee27052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27052, buf);
+ ee27052 *dp, &lv = *(dp=new (buf) ee27052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee27052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee27052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(16,12), "ee27052");
+ check_base_class_offset(lv, (dd7052*), 0, "ee27052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27052.e");
+ test_class_info(&lv, &cd_ee27052);
+ dp->~ee27052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27052(Test_ee27052, "ee27052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27052C1Ev();
+extern void _ZN7ee27052D1Ev();
+Name_Map name_map_ee27052[] = {
+ NSPAIR(_ZN7ee27052C1Ev),
+ NSPAIR(_ZN7ee27052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee27052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN7ee270523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee270523fooEv,_ZTv0_n12_N7ee270523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee270523fooEv,_ZThn24_N7ee270523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN7ee270523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee270523fooEv,_ZTv0_n12_N7ee270523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee27052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee27052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee27052[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee27052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee27052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee27052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee27052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27052[] = {
+ {&(_ZTV7ee27052[4]), 4,17},
+ {&(_tg__ZTV6dd7052__7ee27052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee27052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee27052[4]), 4,6},
+ {&(_ZTV7ee27052[10]), 10,17},
+ {&(_ZTV7ee27052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee27052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee27052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee27052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee27052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27052[];
+extern VTBL_ENTRY _ZTV7ee27052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27052[];
+static VTBL_ENTRY alt_thunk_names1047[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee270523fooEv,_ZTv0_n12_N7ee270523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee270523fooEv,_ZThn24_N7ee270523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27052 = { "ee27052", // class name
+ bases_ee27052, 4,
+ &(vtc_ee27052[0]), // expected_vtbl_contents
+ &(vtt_ee27052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1047,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37052 : virtual dd7052 {
+ int e;
+ virtual void foo(); // _ZN7ee370523fooEv
+ ~ee37052(); // tgen
+ ee37052(); // tgen
+};
+//SIG(1 ee37052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37052 ::foo(){vfunc_called(this, "_ZN7ee370523fooEv");}
+ee37052 ::~ee37052(){ note_dtor("ee37052", this);} // tgen
+ee37052 ::ee37052(){ note_ctor("ee37052", this);} // tgen
+
+static void Test_ee37052()
+{
+ extern Class_Descriptor cd_ee37052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37052, buf);
+ ee37052 *dp, &lv = *(dp=new (buf) ee37052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee37052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee37052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(32,16), "ee37052");
+ check_base_class_offset(lv, (dd7052*), ABISELECT(16,8), "ee37052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37052.e");
+ test_class_info(&lv, &cd_ee37052);
+ dp->~ee37052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37052(Test_ee37052, "ee37052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37052C1Ev();
+extern void _ZN7ee37052D1Ev();
+Name_Map name_map_ee37052[] = {
+ NSPAIR(_ZN7ee37052C1Ev),
+ NSPAIR(_ZN7ee37052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee37052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37052[];
+extern void _ZN7ee370523fooEv();
+extern void _ZN6dd70523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee370523fooEv,_ZTv0_n24_N7ee370523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee370523fooEv,_ZThn8_N7ee370523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee370523fooEv,_ZTv0_n12_N7ee370523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee370523fooEv,_ZThn28_N7ee370523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37052[0]),
+ (VTBL_ENTRY)&_ZN7ee370523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee370523fooEv,_ZTv0_n24_N7ee370523fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee370523fooEv,_ZTv0_n12_N7ee370523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee37052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee37052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee37052[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee37052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee37052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee37052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee37052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37052[] = {
+ {&(_ZTV7ee37052[5]), 5,25},
+ {&(_ZTV7ee37052[12]), 12,25},
+ {&(_ZTV7ee37052[18]), 18,25},
+ {&(_ZTV7ee37052[23]), 23,25},
+ {&(_tg__ZTV6dd7052__7ee37052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee37052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee37052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee37052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee37052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee37052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee37052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37052[];
+extern VTBL_ENTRY _ZTV7ee37052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37052[];
+static VTBL_ENTRY alt_thunk_names1048[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee370523fooEv,_ZTv0_n12_N7ee370523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee370523fooEv,_ZThn28_N7ee370523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee370523fooEv,_ZTv0_n24_N7ee370523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee370523fooEv,_ZThn8_N7ee370523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37052 = { "ee37052", // class name
+ bases_ee37052, 4,
+ &(vtc_ee37052[0]), // expected_vtbl_contents
+ &(vtt_ee37052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37052),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1048,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47052 : dd7052 {
+ int e;
+ virtual void bar(); // _ZN7ee470523barEv
+ ~ee47052(); // tgen
+ ee47052(); // tgen
+};
+//SIG(1 ee47052) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47052 ::bar(){vfunc_called(this, "_ZN7ee470523barEv");}
+ee47052 ::~ee47052(){ note_dtor("ee47052", this);} // tgen
+ee47052 ::ee47052(){ note_ctor("ee47052", this);} // tgen
+
+static void Test_ee47052()
+{
+ extern Class_Descriptor cd_ee47052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47052, buf);
+ ee47052 *dp, &lv = *(dp=new (buf) ee47052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee47052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee47052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(16,12), "ee47052");
+ check_base_class_offset(lv, (dd7052*), 0, "ee47052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47052.e");
+ test_class_info(&lv, &cd_ee47052);
+ dp->~ee47052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47052(Test_ee47052, "ee47052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47052C1Ev();
+extern void _ZN7ee47052D1Ev();
+Name_Map name_map_ee47052[] = {
+ NSPAIR(_ZN7ee47052C1Ev),
+ NSPAIR(_ZN7ee47052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee47052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47052[];
+extern void _ZN7ee470523barEv();
+extern void _ZN6dd70523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee470523barEv,_ZTv0_n16_N7ee470523barEv)();
+extern void ABISELECT(_ZThn16_N7ee470523barEv,_ZThn12_N7ee470523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee470523barEv,_ZTv0_n16_N7ee470523barEv)();
+extern void ABISELECT(_ZThn32_N7ee470523barEv,_ZThn24_N7ee470523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47052[0]),
+ (VTBL_ENTRY)&_ZN7ee470523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470523barEv,_ZTv0_n16_N7ee470523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee470523barEv,_ZTv0_n16_N7ee470523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee47052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee47052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee47052[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee47052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee47052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee47052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee47052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47052[] = {
+ {&(_ZTV7ee47052[4]), 4,17},
+ {&(_tg__ZTV6dd7052__7ee47052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee47052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee47052[4]), 4,6},
+ {&(_ZTV7ee47052[10]), 10,17},
+ {&(_ZTV7ee47052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee47052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee47052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee47052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee47052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47052[];
+extern VTBL_ENTRY _ZTV7ee47052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47052[];
+static VTBL_ENTRY alt_thunk_names1049[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee470523barEv,_ZTv0_n16_N7ee470523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee470523barEv,_ZThn24_N7ee470523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee470523barEv,_ZThn12_N7ee470523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47052 = { "ee47052", // class name
+ bases_ee47052, 4,
+ &(vtc_ee47052[0]), // expected_vtbl_contents
+ &(vtt_ee47052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1049,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57052 : virtual dd7052 {
+ int e;
+ virtual void bar(); // _ZN7ee570523barEv
+ ~ee57052(); // tgen
+ ee57052(); // tgen
+};
+//SIG(1 ee57052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57052 ::bar(){vfunc_called(this, "_ZN7ee570523barEv");}
+ee57052 ::~ee57052(){ note_dtor("ee57052", this);} // tgen
+ee57052 ::ee57052(){ note_ctor("ee57052", this);} // tgen
+
+static void Test_ee57052()
+{
+ extern Class_Descriptor cd_ee57052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57052, buf);
+ ee57052 *dp, &lv = *(dp=new (buf) ee57052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee57052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee57052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(32,16), "ee57052");
+ check_base_class_offset(lv, (dd7052*), ABISELECT(16,8), "ee57052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57052.e");
+ test_class_info(&lv, &cd_ee57052);
+ dp->~ee57052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57052(Test_ee57052, "ee57052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57052C1Ev();
+extern void _ZN7ee57052D1Ev();
+Name_Map name_map_ee57052[] = {
+ NSPAIR(_ZN7ee57052C1Ev),
+ NSPAIR(_ZN7ee57052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee57052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57052[];
+extern void _ZN7ee570523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee570523barEv,_ZTv0_n20_N7ee570523barEv)();
+extern void ABISELECT(_ZThn16_N7ee570523barEv,_ZThn8_N7ee570523barEv)() __attribute__((weak));
+extern void _ZN6dd70523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee570523barEv,_ZTv0_n16_N7ee570523barEv)();
+extern void ABISELECT(_ZThn32_N7ee570523barEv,_ZThn16_N7ee570523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee570523barEv,_ZTv0_n16_N7ee570523barEv)();
+extern void ABISELECT(_ZThn48_N7ee570523barEv,_ZThn28_N7ee570523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57052[0]),
+ (VTBL_ENTRY)&_ZN7ee570523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee570523barEv,_ZTv0_n20_N7ee570523barEv),
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570523barEv,_ZTv0_n16_N7ee570523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee570523barEv,_ZTv0_n16_N7ee570523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee57052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee57052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee57052[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee57052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee57052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee57052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee57052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57052[] = {
+ {&(_ZTV7ee57052[5]), 5,25},
+ {&(_ZTV7ee57052[12]), 12,25},
+ {&(_ZTV7ee57052[18]), 18,25},
+ {&(_ZTV7ee57052[23]), 23,25},
+ {&(_tg__ZTV6dd7052__7ee57052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee57052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee57052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee57052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee57052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee57052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee57052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57052[];
+extern VTBL_ENTRY _ZTV7ee57052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57052[];
+static VTBL_ENTRY alt_thunk_names1050[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee570523barEv,_ZTv0_n16_N7ee570523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee570523barEv,_ZThn28_N7ee570523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee570523barEv,_ZThn16_N7ee570523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee570523barEv,_ZTv0_n20_N7ee570523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee570523barEv,_ZThn8_N7ee570523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57052 = { "ee57052", // class name
+ bases_ee57052, 4,
+ &(vtc_ee57052[0]), // expected_vtbl_contents
+ &(vtt_ee57052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57052),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1050,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67052 : dd7052 {
+ int e;
+ virtual void foo(); // _ZN7ee670523fooEv
+ virtual void bar(); // _ZN7ee670523barEv
+ ~ee67052(); // tgen
+ ee67052(); // tgen
+};
+//SIG(1 ee67052) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67052 ::foo(){vfunc_called(this, "_ZN7ee670523fooEv");}
+void ee67052 ::bar(){vfunc_called(this, "_ZN7ee670523barEv");}
+ee67052 ::~ee67052(){ note_dtor("ee67052", this);} // tgen
+ee67052 ::ee67052(){ note_ctor("ee67052", this);} // tgen
+
+static void Test_ee67052()
+{
+ extern Class_Descriptor cd_ee67052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67052, buf);
+ ee67052 *dp, &lv = *(dp=new (buf) ee67052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(32,24), "ee67052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(16,12), "ee67052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(16,12), "ee67052");
+ check_base_class_offset(lv, (dd7052*), 0, "ee67052");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67052.e");
+ test_class_info(&lv, &cd_ee67052);
+ dp->~ee67052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67052(Test_ee67052, "ee67052", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67052C1Ev();
+extern void _ZN7ee67052D1Ev();
+Name_Map name_map_ee67052[] = {
+ NSPAIR(_ZN7ee67052C1Ev),
+ NSPAIR(_ZN7ee67052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee67052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67052[];
+extern void _ZN7ee670523barEv();
+extern void _ZN7ee670523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee670523barEv,_ZTv0_n16_N7ee670523barEv)();
+extern void ABISELECT(_ZThn16_N7ee670523barEv,_ZThn12_N7ee670523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee670523fooEv,_ZTv0_n12_N7ee670523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee670523fooEv,_ZThn24_N7ee670523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee670523barEv,_ZTv0_n16_N7ee670523barEv)();
+extern void ABISELECT(_ZThn32_N7ee670523barEv,_ZThn24_N7ee670523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67052[0]),
+ (VTBL_ENTRY)&_ZN7ee670523barEv,
+ (VTBL_ENTRY)&_ZN7ee670523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670523barEv,_ZTv0_n16_N7ee670523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee670523fooEv,_ZTv0_n12_N7ee670523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee670523barEv,_ZTv0_n16_N7ee670523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee67052[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee67052[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee67052[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee67052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee67052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee67052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee67052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67052[] = {
+ {&(_ZTV7ee67052[4]), 4,17},
+ {&(_tg__ZTV6dd7052__7ee67052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee67052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee67052[4]), 4,6},
+ {&(_ZTV7ee67052[10]), 10,17},
+ {&(_ZTV7ee67052[15]), 15,17},
+ {&(_tg__ZTV5cc052__7ee67052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee67052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee67052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee67052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67052[];
+extern VTBL_ENTRY _ZTV7ee67052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67052[];
+static VTBL_ENTRY alt_thunk_names1051[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn24_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn24_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn12_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee670523fooEv,_ZTv0_n12_N7ee670523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee670523fooEv,_ZThn24_N7ee670523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee670523barEv,_ZTv0_n16_N7ee670523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee670523barEv,_ZThn24_N7ee670523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee670523barEv,_ZThn12_N7ee670523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67052 = { "ee67052", // class name
+ bases_ee67052, 4,
+ &(vtc_ee67052[0]), // expected_vtbl_contents
+ &(vtt_ee67052[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67052),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67052),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67052),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1051,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77052 : virtual dd7052 {
+ int e;
+ virtual void foo(); // _ZN7ee770523fooEv
+ virtual void bar(); // _ZN7ee770523barEv
+ ~ee77052(); // tgen
+ ee77052(); // tgen
+};
+//SIG(1 ee77052) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77052 ::foo(){vfunc_called(this, "_ZN7ee770523fooEv");}
+void ee77052 ::bar(){vfunc_called(this, "_ZN7ee770523barEv");}
+ee77052 ::~ee77052(){ note_dtor("ee77052", this);} // tgen
+ee77052 ::ee77052(){ note_ctor("ee77052", this);} // tgen
+
+static void Test_ee77052()
+{
+ extern Class_Descriptor cd_ee77052;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77052, buf);
+ ee77052 *dp, &lv = *(dp=new (buf) ee77052());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77052)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77052)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc052*), ABISELECT(48,28), "ee77052");
+ check_base_class_offset(lv, (bb52*)(cc052*), ABISELECT(32,16), "ee77052");
+ check_base_class_offset(lv, (cc052*)(dd7052*), ABISELECT(32,16), "ee77052");
+ check_base_class_offset(lv, (dd7052*), ABISELECT(16,8), "ee77052");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77052.e");
+ test_class_info(&lv, &cd_ee77052);
+ dp->~ee77052();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77052(Test_ee77052, "ee77052", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77052C1Ev();
+extern void _ZN7ee77052D1Ev();
+Name_Map name_map_ee77052[] = {
+ NSPAIR(_ZN7ee77052C1Ev),
+ NSPAIR(_ZN7ee77052D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc052;
+extern VTBL_ENTRY _ZTI5cc052[];
+extern VTBL_ENTRY _ZTV5cc052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc052[];
+extern Class_Descriptor cd_dd7052;
+extern VTBL_ENTRY _ZTI6dd7052[];
+extern VTBL_ENTRY _ZTV6dd7052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7052[];
+static Base_Class bases_ee77052[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc052, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7052, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77052[];
+extern void _ZN7ee770523fooEv();
+extern void _ZN7ee770523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee770523barEv,_ZTv0_n20_N7ee770523barEv)();
+extern void ABISELECT(_ZThn16_N7ee770523barEv,_ZThn8_N7ee770523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee770523fooEv,_ZTv0_n24_N7ee770523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee770523fooEv,_ZThn8_N7ee770523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770523barEv,_ZTv0_n16_N7ee770523barEv)();
+extern void ABISELECT(_ZThn32_N7ee770523barEv,_ZThn16_N7ee770523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee770523fooEv,_ZTv0_n12_N7ee770523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee770523fooEv,_ZThn28_N7ee770523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee770523barEv,_ZTv0_n16_N7ee770523barEv)();
+extern void ABISELECT(_ZThn48_N7ee770523barEv,_ZThn28_N7ee770523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77052[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77052[0]),
+ (VTBL_ENTRY)&_ZN7ee770523fooEv,
+ (VTBL_ENTRY)&_ZN7ee770523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee770523barEv,_ZTv0_n20_N7ee770523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee770523fooEv,_ZTv0_n24_N7ee770523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770523barEv,_ZTv0_n16_N7ee770523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee770523fooEv,_ZTv0_n12_N7ee770523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee770523barEv,_ZTv0_n16_N7ee770523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77052[];
+extern void _ZN6dd70523barEv();
+extern void _ZN6dd70523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7052__7ee77052[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&_ZN6dd70523barEv,
+ (VTBL_ENTRY)&_ZN6dd70523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc052__6dd7052__7ee77052[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv)();
+extern void ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7052__7ee77052[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7052[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV5cc052__7ee77052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc052__7ee77052[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc052__7ee77052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc052__7ee77052[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc052[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77052[] = {
+ {&(_ZTV7ee77052[5]), 5,26},
+ {&(_ZTV7ee77052[13]), 13,26},
+ {&(_ZTV7ee77052[19]), 19,26},
+ {&(_ZTV7ee77052[24]), 24,26},
+ {&(_tg__ZTV6dd7052__7ee77052[4]), 4,6},
+ {&(_tg__ZTV5cc052__6dd7052__7ee77052[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7052__7ee77052[4]), 4,6},
+ {&(_tg__ZTV5cc052__7ee77052[3]), 3,4},
+ {&(_tg__ZTV4bb525cc052__7ee77052[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc052__7ee77052[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc052__7ee77052[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77052[];
+extern VTBL_ENTRY _ZTV7ee77052[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77052[];
+static VTBL_ENTRY alt_thunk_names1052[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd70523fooEv,_ZTv0_n12_N6dd70523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523fooEv,_ZThn20_N6dd70523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd70523barEv,_ZTv0_n16_N6dd70523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd70523barEv,_ZThn20_N6dd70523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd70523barEv,_ZThn8_N6dd70523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee770523fooEv,_ZTv0_n12_N7ee770523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee770523fooEv,_ZThn28_N7ee770523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee770523barEv,_ZTv0_n16_N7ee770523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee770523barEv,_ZThn28_N7ee770523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee770523barEv,_ZThn16_N7ee770523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee770523fooEv,_ZTv0_n24_N7ee770523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770523fooEv,_ZThn8_N7ee770523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee770523barEv,_ZTv0_n20_N7ee770523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee770523barEv,_ZThn8_N7ee770523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77052 = { "ee77052", // class name
+ bases_ee77052, 4,
+ &(vtc_ee77052[0]), // expected_vtbl_contents
+ &(vtt_ee77052[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77052),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77052),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77052),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1052,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc152 : virtual bb52 {
+ int c;
+ ~cc152(); // tgen
+ cc152(); // tgen
+};
+//SIG(-1 cc152) C1{ VBC2{ VBC3{ v2 v1 Fi} v1 Fi} Fi}
+
+
+cc152 ::~cc152(){ note_dtor("cc152", this);} // tgen
+cc152 ::cc152(){ note_ctor("cc152", this);} // tgen
+
+static void Test_cc152()
+{
+ extern Class_Descriptor cd_cc152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc152, buf);
+ cc152 *dp, &lv = *(dp=new (buf) cc152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,16), "cc152");
+ check_base_class_offset(lv, (bb52*), ABISELECT(16,8), "cc152");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc152.c");
+ test_class_info(&lv, &cd_cc152);
+ dp->~cc152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc152(Test_cc152, "cc152", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc152C1Ev();
+extern void _ZN5cc152D1Ev();
+Name_Map name_map_cc152[] = {
+ NSPAIR(_ZN5cc152C1Ev),
+ NSPAIR(_ZN5cc152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc152[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc152[] = {
+ {&(_ZTV5cc152[4]), 4,15},
+ {&(_ZTV5cc152[8]), 8,15},
+ {&(_ZTV5cc152[13]), 13,15},
+ {&(_tg__ZTV4bb52__5cc152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static VTBL_ENTRY alt_thunk_names1053[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc152 = { "cc152", // class name
+ bases_cc152, 2,
+ &(vtc_cc152[0]), // expected_vtbl_contents
+ &(vtt_cc152[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc152),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc152),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1053,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0152 : cc152 {
+ int d;
+ ~dd0152(); // tgen
+ dd0152(); // tgen
+};
+//SIG(-1 dd0152) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd0152 ::~dd0152(){ note_dtor("dd0152", this);} // tgen
+dd0152 ::dd0152(){ note_ctor("dd0152", this);} // tgen
+
+static void Test_dd0152()
+{
+ extern Class_Descriptor cd_dd0152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0152, buf);
+ dd0152 *dp, &lv = *(dp=new (buf) dd0152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd0152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(16,12), "dd0152");
+ check_base_class_offset(lv, (cc152*), 0, "dd0152");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0152.d");
+ test_class_info(&lv, &cd_dd0152);
+ dp->~dd0152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0152(Test_dd0152, "dd0152", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0152C1Ev();
+extern void _ZN6dd0152D1Ev();
+Name_Map name_map_dd0152[] = {
+ NSPAIR(_ZN6dd0152C1Ev),
+ NSPAIR(_ZN6dd0152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd0152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd0152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd0152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd0152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd0152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0152[] = {
+ {&(_ZTV6dd0152[4]), 4,15},
+ {&(_tg__ZTV5cc152__6dd0152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd0152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd0152[4]), 4,6},
+ {&(_ZTV6dd0152[8]), 8,15},
+ {&(_ZTV6dd0152[13]), 13,15},
+ {&(_tg__ZTV4bb52__6dd0152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd0152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static VTBL_ENTRY alt_thunk_names1054[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0152 = { "dd0152", // class name
+ bases_dd0152, 3,
+ &(vtc_dd0152[0]), // expected_vtbl_contents
+ &(vtt_dd0152[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0152),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0152),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1054,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00152 : dd0152 {
+ int e;
+ ~ee00152(); // tgen
+ ee00152(); // tgen
+};
+//SIG(1 ee00152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee00152 ::~ee00152(){ note_dtor("ee00152", this);} // tgen
+ee00152 ::ee00152(){ note_ctor("ee00152", this);} // tgen
+
+static void Test_ee00152()
+{
+ extern Class_Descriptor cd_ee00152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00152, buf);
+ ee00152 *dp, &lv = *(dp=new (buf) ee00152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee00152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(24,16), "ee00152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), 0, "ee00152");
+ check_base_class_offset(lv, (dd0152*), 0, "ee00152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00152.e");
+ test_class_info(&lv, &cd_ee00152);
+ dp->~ee00152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00152(Test_ee00152, "ee00152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00152C1Ev();
+extern void _ZN7ee00152D1Ev();
+Name_Map name_map_ee00152[] = {
+ NSPAIR(_ZN7ee00152C1Ev),
+ NSPAIR(_ZN7ee00152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee00152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee00152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee00152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee00152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee00152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee00152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee00152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee00152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee00152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00152[] = {
+ {&(_ZTV7ee00152[4]), 4,15},
+ {&(_tg__ZTV6dd0152__7ee00152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee00152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee00152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee00152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee00152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee00152[4]), 4,6},
+ {&(_ZTV7ee00152[8]), 8,15},
+ {&(_ZTV7ee00152[13]), 13,15},
+ {&(_tg__ZTV4bb52__7ee00152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee00152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee00152[];
+extern VTBL_ENTRY _ZTV7ee00152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00152[];
+static VTBL_ENTRY alt_thunk_names1055[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00152 = { "ee00152", // class name
+ bases_ee00152, 4,
+ &(vtc_ee00152[0]), // expected_vtbl_contents
+ &(vtt_ee00152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00152),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1055,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10152 : virtual dd0152 {
+ int e;
+ ~ee10152(); // tgen
+ ee10152(); // tgen
+};
+//SIG(1 ee10152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee10152 ::~ee10152(){ note_dtor("ee10152", this);} // tgen
+ee10152 ::ee10152(){ note_ctor("ee10152", this);} // tgen
+
+static void Test_ee10152()
+{
+ extern Class_Descriptor cd_ee10152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10152, buf);
+ ee10152 *dp, &lv = *(dp=new (buf) ee10152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee10152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(32,20), "ee10152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), ABISELECT(16,8), "ee10152");
+ check_base_class_offset(lv, (dd0152*), ABISELECT(16,8), "ee10152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10152.e");
+ test_class_info(&lv, &cd_ee10152);
+ dp->~ee10152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10152(Test_ee10152, "ee10152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10152C1Ev();
+extern void _ZN7ee10152D1Ev();
+Name_Map name_map_ee10152[] = {
+ NSPAIR(_ZN7ee10152C1Ev),
+ NSPAIR(_ZN7ee10152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee10152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10152[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee10152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee10152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee10152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee10152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee10152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee10152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee10152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee10152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10152[] = {
+ {&(_ZTV7ee10152[5]), 5,20},
+ {&(_ZTV7ee10152[9]), 9,20},
+ {&(_ZTV7ee10152[13]), 13,20},
+ {&(_ZTV7ee10152[18]), 18,20},
+ {&(_tg__ZTV6dd0152__7ee10152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee10152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee10152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee10152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee10152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee10152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee10152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee10152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10152[];
+extern VTBL_ENTRY _ZTV7ee10152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10152[];
+static VTBL_ENTRY alt_thunk_names1056[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10152 = { "ee10152", // class name
+ bases_ee10152, 4,
+ &(vtc_ee10152[0]), // expected_vtbl_contents
+ &(vtt_ee10152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10152),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1056,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20152 : dd0152 {
+ int e;
+ virtual void foo(); // _ZN7ee201523fooEv
+ ~ee20152(); // tgen
+ ee20152(); // tgen
+};
+//SIG(1 ee20152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee20152 ::foo(){vfunc_called(this, "_ZN7ee201523fooEv");}
+ee20152 ::~ee20152(){ note_dtor("ee20152", this);} // tgen
+ee20152 ::ee20152(){ note_ctor("ee20152", this);} // tgen
+
+static void Test_ee20152()
+{
+ extern Class_Descriptor cd_ee20152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20152, buf);
+ ee20152 *dp, &lv = *(dp=new (buf) ee20152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee20152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(24,16), "ee20152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), 0, "ee20152");
+ check_base_class_offset(lv, (dd0152*), 0, "ee20152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20152.e");
+ test_class_info(&lv, &cd_ee20152);
+ dp->~ee20152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20152(Test_ee20152, "ee20152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20152C1Ev();
+extern void _ZN7ee20152D1Ev();
+Name_Map name_map_ee20152[] = {
+ NSPAIR(_ZN7ee20152C1Ev),
+ NSPAIR(_ZN7ee20152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee20152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20152[];
+extern void _ZN7ee201523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee201523fooEv,_ZTv0_n12_N7ee201523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee201523fooEv,_ZThn24_N7ee201523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20152[0]),
+ (VTBL_ENTRY)&_ZN7ee201523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee201523fooEv,_ZTv0_n12_N7ee201523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee20152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee20152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee20152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee20152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee20152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee20152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee20152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee20152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20152[] = {
+ {&(_ZTV7ee20152[4]), 4,16},
+ {&(_tg__ZTV6dd0152__7ee20152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee20152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee20152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee20152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee20152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee20152[4]), 4,6},
+ {&(_ZTV7ee20152[9]), 9,16},
+ {&(_ZTV7ee20152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee20152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee20152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee20152[];
+extern VTBL_ENTRY _ZTV7ee20152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20152[];
+static VTBL_ENTRY alt_thunk_names1057[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee201523fooEv,_ZTv0_n12_N7ee201523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee201523fooEv,_ZThn24_N7ee201523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20152 = { "ee20152", // class name
+ bases_ee20152, 4,
+ &(vtc_ee20152[0]), // expected_vtbl_contents
+ &(vtt_ee20152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1057,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30152 : virtual dd0152 {
+ int e;
+ virtual void foo(); // _ZN7ee301523fooEv
+ ~ee30152(); // tgen
+ ee30152(); // tgen
+};
+//SIG(1 ee30152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee30152 ::foo(){vfunc_called(this, "_ZN7ee301523fooEv");}
+ee30152 ::~ee30152(){ note_dtor("ee30152", this);} // tgen
+ee30152 ::ee30152(){ note_ctor("ee30152", this);} // tgen
+
+static void Test_ee30152()
+{
+ extern Class_Descriptor cd_ee30152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30152, buf);
+ ee30152 *dp, &lv = *(dp=new (buf) ee30152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee30152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(32,20), "ee30152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), ABISELECT(16,8), "ee30152");
+ check_base_class_offset(lv, (dd0152*), ABISELECT(16,8), "ee30152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30152.e");
+ test_class_info(&lv, &cd_ee30152);
+ dp->~ee30152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30152(Test_ee30152, "ee30152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30152C1Ev();
+extern void _ZN7ee30152D1Ev();
+Name_Map name_map_ee30152[] = {
+ NSPAIR(_ZN7ee30152C1Ev),
+ NSPAIR(_ZN7ee30152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee30152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30152[];
+extern void _ZN7ee301523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee301523fooEv,_ZTv0_n12_N7ee301523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee301523fooEv,_ZThn28_N7ee301523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30152[0]),
+ (VTBL_ENTRY)&_ZN7ee301523fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee301523fooEv,_ZTv0_n12_N7ee301523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee30152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee30152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee30152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee30152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee30152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee30152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee30152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee30152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30152[] = {
+ {&(_ZTV7ee30152[5]), 5,21},
+ {&(_ZTV7ee30152[10]), 10,21},
+ {&(_ZTV7ee30152[14]), 14,21},
+ {&(_ZTV7ee30152[19]), 19,21},
+ {&(_tg__ZTV6dd0152__7ee30152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee30152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee30152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee30152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee30152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee30152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee30152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee30152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30152[];
+extern VTBL_ENTRY _ZTV7ee30152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30152[];
+static VTBL_ENTRY alt_thunk_names1058[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee301523fooEv,_ZTv0_n12_N7ee301523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee301523fooEv,_ZThn28_N7ee301523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30152 = { "ee30152", // class name
+ bases_ee30152, 4,
+ &(vtc_ee30152[0]), // expected_vtbl_contents
+ &(vtt_ee30152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1058,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40152 : dd0152 {
+ int e;
+ virtual void bar(); // _ZN7ee401523barEv
+ ~ee40152(); // tgen
+ ee40152(); // tgen
+};
+//SIG(1 ee40152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee40152 ::bar(){vfunc_called(this, "_ZN7ee401523barEv");}
+ee40152 ::~ee40152(){ note_dtor("ee40152", this);} // tgen
+ee40152 ::ee40152(){ note_ctor("ee40152", this);} // tgen
+
+static void Test_ee40152()
+{
+ extern Class_Descriptor cd_ee40152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40152, buf);
+ ee40152 *dp, &lv = *(dp=new (buf) ee40152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee40152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(24,16), "ee40152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), 0, "ee40152");
+ check_base_class_offset(lv, (dd0152*), 0, "ee40152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40152.e");
+ test_class_info(&lv, &cd_ee40152);
+ dp->~ee40152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40152(Test_ee40152, "ee40152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40152C1Ev();
+extern void _ZN7ee40152D1Ev();
+Name_Map name_map_ee40152[] = {
+ NSPAIR(_ZN7ee40152C1Ev),
+ NSPAIR(_ZN7ee40152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee40152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40152[];
+extern void _ZN7ee401523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401523barEv,_ZTv0_n16_N7ee401523barEv)();
+extern void ABISELECT(_ZThn24_N7ee401523barEv,_ZThn16_N7ee401523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee401523barEv,_ZTv0_n16_N7ee401523barEv)();
+extern void ABISELECT(_ZThn40_N7ee401523barEv,_ZThn24_N7ee401523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40152[0]),
+ (VTBL_ENTRY)&_ZN7ee401523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401523barEv,_ZTv0_n16_N7ee401523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee401523barEv,_ZTv0_n16_N7ee401523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee40152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee40152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee40152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee40152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee40152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee40152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee40152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee40152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40152[] = {
+ {&(_ZTV7ee40152[4]), 4,16},
+ {&(_tg__ZTV6dd0152__7ee40152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee40152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee40152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee40152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee40152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee40152[4]), 4,6},
+ {&(_ZTV7ee40152[9]), 9,16},
+ {&(_ZTV7ee40152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee40152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee40152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee40152[];
+extern VTBL_ENTRY _ZTV7ee40152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40152[];
+static VTBL_ENTRY alt_thunk_names1059[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee401523barEv,_ZTv0_n16_N7ee401523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee401523barEv,_ZThn24_N7ee401523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee401523barEv,_ZThn16_N7ee401523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40152 = { "ee40152", // class name
+ bases_ee40152, 4,
+ &(vtc_ee40152[0]), // expected_vtbl_contents
+ &(vtt_ee40152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1059,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50152 : virtual dd0152 {
+ int e;
+ virtual void bar(); // _ZN7ee501523barEv
+ ~ee50152(); // tgen
+ ee50152(); // tgen
+};
+//SIG(1 ee50152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee50152 ::bar(){vfunc_called(this, "_ZN7ee501523barEv");}
+ee50152 ::~ee50152(){ note_dtor("ee50152", this);} // tgen
+ee50152 ::ee50152(){ note_ctor("ee50152", this);} // tgen
+
+static void Test_ee50152()
+{
+ extern Class_Descriptor cd_ee50152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50152, buf);
+ ee50152 *dp, &lv = *(dp=new (buf) ee50152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee50152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(32,20), "ee50152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), ABISELECT(16,8), "ee50152");
+ check_base_class_offset(lv, (dd0152*), ABISELECT(16,8), "ee50152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50152.e");
+ test_class_info(&lv, &cd_ee50152);
+ dp->~ee50152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50152(Test_ee50152, "ee50152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50152C1Ev();
+extern void _ZN7ee50152D1Ev();
+Name_Map name_map_ee50152[] = {
+ NSPAIR(_ZN7ee50152C1Ev),
+ NSPAIR(_ZN7ee50152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee50152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50152[];
+extern void _ZN7ee501523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501523barEv,_ZTv0_n16_N7ee501523barEv)();
+extern void ABISELECT(_ZThn32_N7ee501523barEv,_ZThn20_N7ee501523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee501523barEv,_ZTv0_n16_N7ee501523barEv)();
+extern void ABISELECT(_ZThn48_N7ee501523barEv,_ZThn28_N7ee501523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50152[0]),
+ (VTBL_ENTRY)&_ZN7ee501523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501523barEv,_ZTv0_n16_N7ee501523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee501523barEv,_ZTv0_n16_N7ee501523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee50152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee50152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee50152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee50152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee50152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee50152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee50152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee50152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50152[] = {
+ {&(_ZTV7ee50152[5]), 5,21},
+ {&(_ZTV7ee50152[10]), 10,21},
+ {&(_ZTV7ee50152[14]), 14,21},
+ {&(_ZTV7ee50152[19]), 19,21},
+ {&(_tg__ZTV6dd0152__7ee50152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee50152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee50152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee50152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee50152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee50152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee50152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee50152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50152[];
+extern VTBL_ENTRY _ZTV7ee50152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50152[];
+static VTBL_ENTRY alt_thunk_names1060[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee501523barEv,_ZTv0_n16_N7ee501523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee501523barEv,_ZThn28_N7ee501523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee501523barEv,_ZThn20_N7ee501523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50152 = { "ee50152", // class name
+ bases_ee50152, 4,
+ &(vtc_ee50152[0]), // expected_vtbl_contents
+ &(vtt_ee50152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1060,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60152 : dd0152 {
+ int e;
+ virtual void foo(); // _ZN7ee601523fooEv
+ virtual void bar(); // _ZN7ee601523barEv
+ ~ee60152(); // tgen
+ ee60152(); // tgen
+};
+//SIG(1 ee60152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee60152 ::foo(){vfunc_called(this, "_ZN7ee601523fooEv");}
+void ee60152 ::bar(){vfunc_called(this, "_ZN7ee601523barEv");}
+ee60152 ::~ee60152(){ note_dtor("ee60152", this);} // tgen
+ee60152 ::ee60152(){ note_ctor("ee60152", this);} // tgen
+
+static void Test_ee60152()
+{
+ extern Class_Descriptor cd_ee60152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60152, buf);
+ ee60152 *dp, &lv = *(dp=new (buf) ee60152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee60152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(24,16), "ee60152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), 0, "ee60152");
+ check_base_class_offset(lv, (dd0152*), 0, "ee60152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60152.e");
+ test_class_info(&lv, &cd_ee60152);
+ dp->~ee60152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60152(Test_ee60152, "ee60152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60152C1Ev();
+extern void _ZN7ee60152D1Ev();
+Name_Map name_map_ee60152[] = {
+ NSPAIR(_ZN7ee60152C1Ev),
+ NSPAIR(_ZN7ee60152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee60152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60152[];
+extern void _ZN7ee601523fooEv();
+extern void _ZN7ee601523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee601523barEv,_ZTv0_n16_N7ee601523barEv)();
+extern void ABISELECT(_ZThn24_N7ee601523barEv,_ZThn16_N7ee601523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee601523fooEv,_ZTv0_n12_N7ee601523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee601523fooEv,_ZThn24_N7ee601523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee601523barEv,_ZTv0_n16_N7ee601523barEv)();
+extern void ABISELECT(_ZThn40_N7ee601523barEv,_ZThn24_N7ee601523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60152[0]),
+ (VTBL_ENTRY)&_ZN7ee601523fooEv,
+ (VTBL_ENTRY)&_ZN7ee601523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601523barEv,_ZTv0_n16_N7ee601523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee601523fooEv,_ZTv0_n12_N7ee601523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee601523barEv,_ZTv0_n16_N7ee601523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee60152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee60152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee60152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee60152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee60152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee60152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee60152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee60152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60152[] = {
+ {&(_ZTV7ee60152[4]), 4,17},
+ {&(_tg__ZTV6dd0152__7ee60152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee60152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee60152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee60152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee60152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee60152[4]), 4,6},
+ {&(_ZTV7ee60152[10]), 10,17},
+ {&(_ZTV7ee60152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee60152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee60152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee60152[];
+extern VTBL_ENTRY _ZTV7ee60152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60152[];
+static VTBL_ENTRY alt_thunk_names1061[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee601523fooEv,_ZTv0_n12_N7ee601523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee601523fooEv,_ZThn24_N7ee601523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee601523barEv,_ZTv0_n16_N7ee601523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee601523barEv,_ZThn24_N7ee601523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee601523barEv,_ZThn16_N7ee601523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60152 = { "ee60152", // class name
+ bases_ee60152, 4,
+ &(vtc_ee60152[0]), // expected_vtbl_contents
+ &(vtt_ee60152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1061,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70152 : virtual dd0152 {
+ int e;
+ virtual void foo(); // _ZN7ee701523fooEv
+ virtual void bar(); // _ZN7ee701523barEv
+ ~ee70152(); // tgen
+ ee70152(); // tgen
+};
+//SIG(1 ee70152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee70152 ::foo(){vfunc_called(this, "_ZN7ee701523fooEv");}
+void ee70152 ::bar(){vfunc_called(this, "_ZN7ee701523barEv");}
+ee70152 ::~ee70152(){ note_dtor("ee70152", this);} // tgen
+ee70152 ::ee70152(){ note_ctor("ee70152", this);} // tgen
+
+static void Test_ee70152()
+{
+ extern Class_Descriptor cd_ee70152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70152, buf);
+ ee70152 *dp, &lv = *(dp=new (buf) ee70152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee70152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd0152*), ABISELECT(32,20), "ee70152");
+ check_base_class_offset(lv, (cc152*)(dd0152*), ABISELECT(16,8), "ee70152");
+ check_base_class_offset(lv, (dd0152*), ABISELECT(16,8), "ee70152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70152.e");
+ test_class_info(&lv, &cd_ee70152);
+ dp->~ee70152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70152(Test_ee70152, "ee70152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70152C1Ev();
+extern void _ZN7ee70152D1Ev();
+Name_Map name_map_ee70152[] = {
+ NSPAIR(_ZN7ee70152C1Ev),
+ NSPAIR(_ZN7ee70152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd0152;
+extern VTBL_ENTRY _ZTI6dd0152[];
+extern VTBL_ENTRY _ZTV6dd0152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0152[];
+static Base_Class bases_ee70152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70152[];
+extern void _ZN7ee701523fooEv();
+extern void _ZN7ee701523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee701523barEv,_ZTv0_n16_N7ee701523barEv)();
+extern void ABISELECT(_ZThn32_N7ee701523barEv,_ZThn20_N7ee701523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee701523fooEv,_ZTv0_n12_N7ee701523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee701523fooEv,_ZThn28_N7ee701523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee701523barEv,_ZTv0_n16_N7ee701523barEv)();
+extern void ABISELECT(_ZThn48_N7ee701523barEv,_ZThn28_N7ee701523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70152[0]),
+ (VTBL_ENTRY)&_ZN7ee701523fooEv,
+ (VTBL_ENTRY)&_ZN7ee701523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701523barEv,_ZTv0_n16_N7ee701523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee701523fooEv,_ZTv0_n12_N7ee701523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee701523barEv,_ZTv0_n16_N7ee701523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70152[];
+static VTBL_ENTRY _tg__ZTV6dd0152__7ee70152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd0152__7ee70152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd0152__7ee70152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd0152__7ee70152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0152__7ee70152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0152__7ee70152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee70152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee70152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70152[] = {
+ {&(_ZTV7ee70152[5]), 5,22},
+ {&(_ZTV7ee70152[11]), 11,22},
+ {&(_ZTV7ee70152[15]), 15,22},
+ {&(_ZTV7ee70152[20]), 20,22},
+ {&(_tg__ZTV6dd0152__7ee70152[4]), 4,4},
+ {&(_tg__ZTV5cc1526dd0152__7ee70152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd0152__7ee70152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd0152__7ee70152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0152__7ee70152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0152__7ee70152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee70152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee70152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70152[];
+extern VTBL_ENTRY _ZTV7ee70152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70152[];
+static VTBL_ENTRY alt_thunk_names1062[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee701523fooEv,_ZTv0_n12_N7ee701523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee701523fooEv,_ZThn28_N7ee701523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee701523barEv,_ZTv0_n16_N7ee701523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee701523barEv,_ZThn28_N7ee701523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee701523barEv,_ZThn20_N7ee701523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70152 = { "ee70152", // class name
+ bases_ee70152, 4,
+ &(vtc_ee70152[0]), // expected_vtbl_contents
+ &(vtt_ee70152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1062,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1152 : virtual cc152 {
+ int d;
+ ~dd1152(); // tgen
+ dd1152(); // tgen
+};
+//SIG(-1 dd1152) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} Fi}
+
+
+dd1152 ::~dd1152(){ note_dtor("dd1152", this);} // tgen
+dd1152 ::dd1152(){ note_ctor("dd1152", this);} // tgen
+
+static void Test_dd1152()
+{
+ extern Class_Descriptor cd_dd1152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1152, buf);
+ dd1152 *dp, &lv = *(dp=new (buf) dd1152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd1152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,16), "dd1152");
+ check_base_class_offset(lv, (cc152*), ABISELECT(16,8), "dd1152");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1152.d");
+ test_class_info(&lv, &cd_dd1152);
+ dp->~dd1152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1152(Test_dd1152, "dd1152", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1152C1Ev();
+extern void _ZN6dd1152D1Ev();
+Name_Map name_map_dd1152[] = {
+ NSPAIR(_ZN6dd1152C1Ev),
+ NSPAIR(_ZN6dd1152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd1152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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 _ZTI6dd1152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd1152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd1152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd1152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1152[] = {
+ {&(_ZTV6dd1152[5]), 5,20},
+ {&(_ZTV6dd1152[9]), 9,20},
+ {&(_ZTV6dd1152[13]), 13,20},
+ {&(_ZTV6dd1152[18]), 18,20},
+ {&(_tg__ZTV5cc152__6dd1152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd1152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd1152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd1152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd1152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static VTBL_ENTRY alt_thunk_names1063[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1152 = { "dd1152", // class name
+ bases_dd1152, 3,
+ &(vtc_dd1152[0]), // expected_vtbl_contents
+ &(vtt_dd1152[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1152),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1152),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1063,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01152 : dd1152 {
+ int e;
+ ~ee01152(); // tgen
+ ee01152(); // tgen
+};
+//SIG(1 ee01152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee01152 ::~ee01152(){ note_dtor("ee01152", this);} // tgen
+ee01152 ::ee01152(){ note_ctor("ee01152", this);} // tgen
+
+static void Test_ee01152()
+{
+ extern Class_Descriptor cd_ee01152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01152, buf);
+ ee01152 *dp, &lv = *(dp=new (buf) ee01152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee01152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee01152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(16,12), "ee01152");
+ check_base_class_offset(lv, (dd1152*), 0, "ee01152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01152.e");
+ test_class_info(&lv, &cd_ee01152);
+ dp->~ee01152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01152(Test_ee01152, "ee01152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01152C1Ev();
+extern void _ZN7ee01152D1Ev();
+Name_Map name_map_ee01152[] = {
+ NSPAIR(_ZN7ee01152C1Ev),
+ NSPAIR(_ZN7ee01152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee01152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee01152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee01152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee01152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee01152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee01152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee01152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee01152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee01152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee01152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01152[] = {
+ {&(_ZTV7ee01152[5]), 5,20},
+ {&(_tg__ZTV6dd1152__7ee01152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee01152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee01152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee01152[4]), 4,6},
+ {&(_ZTV7ee01152[9]), 9,20},
+ {&(_ZTV7ee01152[13]), 13,20},
+ {&(_ZTV7ee01152[18]), 18,20},
+ {&(_tg__ZTV5cc152__7ee01152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee01152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee01152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee01152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee01152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01152[];
+extern VTBL_ENTRY _ZTV7ee01152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01152[];
+static VTBL_ENTRY alt_thunk_names1064[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01152 = { "ee01152", // class name
+ bases_ee01152, 4,
+ &(vtc_ee01152[0]), // expected_vtbl_contents
+ &(vtt_ee01152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01152),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1064,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11152 : virtual dd1152 {
+ int e;
+ ~ee11152(); // tgen
+ ee11152(); // tgen
+};
+//SIG(1 ee11152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} Fi}
+
+
+ee11152 ::~ee11152(){ note_dtor("ee11152", this);} // tgen
+ee11152 ::ee11152(){ note_ctor("ee11152", this);} // tgen
+
+static void Test_ee11152()
+{
+ extern Class_Descriptor cd_ee11152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11152, buf);
+ ee11152 *dp, &lv = *(dp=new (buf) ee11152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee11152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee11152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(32,16), "ee11152");
+ check_base_class_offset(lv, (dd1152*), ABISELECT(16,8), "ee11152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11152.e");
+ test_class_info(&lv, &cd_ee11152);
+ dp->~ee11152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11152(Test_ee11152, "ee11152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11152C1Ev();
+extern void _ZN7ee11152D1Ev();
+Name_Map name_map_ee11152[] = {
+ NSPAIR(_ZN7ee11152C1Ev),
+ NSPAIR(_ZN7ee11152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee11152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11152[];
+extern void _ZN4bb523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11152[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee11152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee11152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee11152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee11152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee11152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee11152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee11152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee11152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee11152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11152[] = {
+ {&(_ZTV7ee11152[6]), 6,26},
+ {&(_ZTV7ee11152[11]), 11,26},
+ {&(_ZTV7ee11152[15]), 15,26},
+ {&(_ZTV7ee11152[19]), 19,26},
+ {&(_ZTV7ee11152[24]), 24,26},
+ {&(_tg__ZTV6dd1152__7ee11152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee11152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee11152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee11152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee11152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee11152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee11152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee11152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee11152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11152[];
+extern VTBL_ENTRY _ZTV7ee11152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11152[];
+static VTBL_ENTRY alt_thunk_names1065[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11152 = { "ee11152", // class name
+ bases_ee11152, 4,
+ &(vtc_ee11152[0]), // expected_vtbl_contents
+ &(vtt_ee11152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11152),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1065,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21152 : dd1152 {
+ int e;
+ virtual void foo(); // _ZN7ee211523fooEv
+ ~ee21152(); // tgen
+ ee21152(); // tgen
+};
+//SIG(1 ee21152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee21152 ::foo(){vfunc_called(this, "_ZN7ee211523fooEv");}
+ee21152 ::~ee21152(){ note_dtor("ee21152", this);} // tgen
+ee21152 ::ee21152(){ note_ctor("ee21152", this);} // tgen
+
+static void Test_ee21152()
+{
+ extern Class_Descriptor cd_ee21152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21152, buf);
+ ee21152 *dp, &lv = *(dp=new (buf) ee21152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee21152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee21152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(16,12), "ee21152");
+ check_base_class_offset(lv, (dd1152*), 0, "ee21152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21152.e");
+ test_class_info(&lv, &cd_ee21152);
+ dp->~ee21152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21152(Test_ee21152, "ee21152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21152C1Ev();
+extern void _ZN7ee21152D1Ev();
+Name_Map name_map_ee21152[] = {
+ NSPAIR(_ZN7ee21152C1Ev),
+ NSPAIR(_ZN7ee21152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee21152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21152[];
+extern void _ZN7ee211523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee211523fooEv,_ZTv0_n12_N7ee211523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee211523fooEv,_ZThn28_N7ee211523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21152[0]),
+ (VTBL_ENTRY)&_ZN7ee211523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee211523fooEv,_ZTv0_n12_N7ee211523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee21152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee21152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee21152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee21152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee21152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee21152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee21152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee21152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee21152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21152[] = {
+ {&(_ZTV7ee21152[5]), 5,21},
+ {&(_tg__ZTV6dd1152__7ee21152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee21152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee21152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee21152[4]), 4,6},
+ {&(_ZTV7ee21152[10]), 10,21},
+ {&(_ZTV7ee21152[14]), 14,21},
+ {&(_ZTV7ee21152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee21152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee21152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee21152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee21152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee21152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21152[];
+extern VTBL_ENTRY _ZTV7ee21152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21152[];
+static VTBL_ENTRY alt_thunk_names1066[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee211523fooEv,_ZTv0_n12_N7ee211523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee211523fooEv,_ZThn28_N7ee211523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21152 = { "ee21152", // class name
+ bases_ee21152, 4,
+ &(vtc_ee21152[0]), // expected_vtbl_contents
+ &(vtt_ee21152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1066,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31152 : virtual dd1152 {
+ int e;
+ virtual void foo(); // _ZN7ee311523fooEv
+ ~ee31152(); // tgen
+ ee31152(); // tgen
+};
+//SIG(1 ee31152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 Fi}
+
+
+void ee31152 ::foo(){vfunc_called(this, "_ZN7ee311523fooEv");}
+ee31152 ::~ee31152(){ note_dtor("ee31152", this);} // tgen
+ee31152 ::ee31152(){ note_ctor("ee31152", this);} // tgen
+
+static void Test_ee31152()
+{
+ extern Class_Descriptor cd_ee31152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31152, buf);
+ ee31152 *dp, &lv = *(dp=new (buf) ee31152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee31152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee31152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(32,16), "ee31152");
+ check_base_class_offset(lv, (dd1152*), ABISELECT(16,8), "ee31152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31152.e");
+ test_class_info(&lv, &cd_ee31152);
+ dp->~ee31152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31152(Test_ee31152, "ee31152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31152C1Ev();
+extern void _ZN7ee31152D1Ev();
+Name_Map name_map_ee31152[] = {
+ NSPAIR(_ZN7ee31152C1Ev),
+ NSPAIR(_ZN7ee31152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee31152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31152[];
+extern void _ZN7ee311523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee311523fooEv,_ZTv0_n12_N7ee311523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee311523fooEv,_ZThn32_N7ee311523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31152[0]),
+ (VTBL_ENTRY)&_ZN7ee311523fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee311523fooEv,_ZTv0_n12_N7ee311523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee31152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee31152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee31152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee31152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee31152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee31152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee31152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee31152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee31152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31152[] = {
+ {&(_ZTV7ee31152[6]), 6,27},
+ {&(_ZTV7ee31152[12]), 12,27},
+ {&(_ZTV7ee31152[16]), 16,27},
+ {&(_ZTV7ee31152[20]), 20,27},
+ {&(_ZTV7ee31152[25]), 25,27},
+ {&(_tg__ZTV6dd1152__7ee31152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee31152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee31152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee31152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee31152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee31152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee31152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee31152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee31152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31152[];
+extern VTBL_ENTRY _ZTV7ee31152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31152[];
+static VTBL_ENTRY alt_thunk_names1067[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee311523fooEv,_ZTv0_n12_N7ee311523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee311523fooEv,_ZThn32_N7ee311523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31152 = { "ee31152", // class name
+ bases_ee31152, 4,
+ &(vtc_ee31152[0]), // expected_vtbl_contents
+ &(vtt_ee31152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31152),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1067,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41152 : dd1152 {
+ int e;
+ virtual void bar(); // _ZN7ee411523barEv
+ ~ee41152(); // tgen
+ ee41152(); // tgen
+};
+//SIG(1 ee41152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee41152 ::bar(){vfunc_called(this, "_ZN7ee411523barEv");}
+ee41152 ::~ee41152(){ note_dtor("ee41152", this);} // tgen
+ee41152 ::ee41152(){ note_ctor("ee41152", this);} // tgen
+
+static void Test_ee41152()
+{
+ extern Class_Descriptor cd_ee41152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41152, buf);
+ ee41152 *dp, &lv = *(dp=new (buf) ee41152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee41152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee41152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(16,12), "ee41152");
+ check_base_class_offset(lv, (dd1152*), 0, "ee41152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41152.e");
+ test_class_info(&lv, &cd_ee41152);
+ dp->~ee41152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41152(Test_ee41152, "ee41152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41152C1Ev();
+extern void _ZN7ee41152D1Ev();
+Name_Map name_map_ee41152[] = {
+ NSPAIR(_ZN7ee41152C1Ev),
+ NSPAIR(_ZN7ee41152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee41152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41152[];
+extern void _ZN7ee411523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411523barEv,_ZTv0_n16_N7ee411523barEv)();
+extern void ABISELECT(_ZThn32_N7ee411523barEv,_ZThn20_N7ee411523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee411523barEv,_ZTv0_n16_N7ee411523barEv)();
+extern void ABISELECT(_ZThn48_N7ee411523barEv,_ZThn28_N7ee411523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41152[0]),
+ (VTBL_ENTRY)&_ZN7ee411523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411523barEv,_ZTv0_n16_N7ee411523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee411523barEv,_ZTv0_n16_N7ee411523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee41152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee41152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee41152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee41152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee41152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee41152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee41152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee41152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee41152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41152[] = {
+ {&(_ZTV7ee41152[5]), 5,21},
+ {&(_tg__ZTV6dd1152__7ee41152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee41152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee41152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee41152[4]), 4,6},
+ {&(_ZTV7ee41152[10]), 10,21},
+ {&(_ZTV7ee41152[14]), 14,21},
+ {&(_ZTV7ee41152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee41152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee41152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee41152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee41152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee41152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41152[];
+extern VTBL_ENTRY _ZTV7ee41152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41152[];
+static VTBL_ENTRY alt_thunk_names1068[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee411523barEv,_ZTv0_n16_N7ee411523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee411523barEv,_ZThn28_N7ee411523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee411523barEv,_ZThn20_N7ee411523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41152 = { "ee41152", // class name
+ bases_ee41152, 4,
+ &(vtc_ee41152[0]), // expected_vtbl_contents
+ &(vtt_ee41152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1068,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51152 : virtual dd1152 {
+ int e;
+ virtual void bar(); // _ZN7ee511523barEv
+ ~ee51152(); // tgen
+ ee51152(); // tgen
+};
+//SIG(1 ee51152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} Fi} v1 Fi}
+
+
+void ee51152 ::bar(){vfunc_called(this, "_ZN7ee511523barEv");}
+ee51152 ::~ee51152(){ note_dtor("ee51152", this);} // tgen
+ee51152 ::ee51152(){ note_ctor("ee51152", this);} // tgen
+
+static void Test_ee51152()
+{
+ extern Class_Descriptor cd_ee51152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51152, buf);
+ ee51152 *dp, &lv = *(dp=new (buf) ee51152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee51152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee51152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(32,16), "ee51152");
+ check_base_class_offset(lv, (dd1152*), ABISELECT(16,8), "ee51152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51152.e");
+ test_class_info(&lv, &cd_ee51152);
+ dp->~ee51152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51152(Test_ee51152, "ee51152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51152C1Ev();
+extern void _ZN7ee51152D1Ev();
+Name_Map name_map_ee51152[] = {
+ NSPAIR(_ZN7ee51152C1Ev),
+ NSPAIR(_ZN7ee51152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee51152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51152[];
+extern void _ZN7ee511523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511523barEv,_ZTv0_n16_N7ee511523barEv)();
+extern void ABISELECT(_ZThn48_N7ee511523barEv,_ZThn24_N7ee511523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee511523barEv,_ZTv0_n16_N7ee511523barEv)();
+extern void ABISELECT(_ZThn64_N7ee511523barEv,_ZThn32_N7ee511523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51152[0]),
+ (VTBL_ENTRY)&_ZN7ee511523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511523barEv,_ZTv0_n16_N7ee511523barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee511523barEv,_ZTv0_n16_N7ee511523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee51152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee51152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee51152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee51152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee51152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee51152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee51152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee51152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee51152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51152[] = {
+ {&(_ZTV7ee51152[6]), 6,27},
+ {&(_ZTV7ee51152[12]), 12,27},
+ {&(_ZTV7ee51152[16]), 16,27},
+ {&(_ZTV7ee51152[20]), 20,27},
+ {&(_ZTV7ee51152[25]), 25,27},
+ {&(_tg__ZTV6dd1152__7ee51152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee51152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee51152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee51152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee51152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee51152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee51152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee51152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee51152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51152[];
+extern VTBL_ENTRY _ZTV7ee51152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51152[];
+static VTBL_ENTRY alt_thunk_names1069[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee511523barEv,_ZTv0_n16_N7ee511523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee511523barEv,_ZThn32_N7ee511523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee511523barEv,_ZThn24_N7ee511523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51152 = { "ee51152", // class name
+ bases_ee51152, 4,
+ &(vtc_ee51152[0]), // expected_vtbl_contents
+ &(vtt_ee51152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51152),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1069,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61152 : dd1152 {
+ int e;
+ virtual void foo(); // _ZN7ee611523fooEv
+ virtual void bar(); // _ZN7ee611523barEv
+ ~ee61152(); // tgen
+ ee61152(); // tgen
+};
+//SIG(1 ee61152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee61152 ::foo(){vfunc_called(this, "_ZN7ee611523fooEv");}
+void ee61152 ::bar(){vfunc_called(this, "_ZN7ee611523barEv");}
+ee61152 ::~ee61152(){ note_dtor("ee61152", this);} // tgen
+ee61152 ::ee61152(){ note_ctor("ee61152", this);} // tgen
+
+static void Test_ee61152()
+{
+ extern Class_Descriptor cd_ee61152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61152, buf);
+ ee61152 *dp, &lv = *(dp=new (buf) ee61152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee61152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee61152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(16,12), "ee61152");
+ check_base_class_offset(lv, (dd1152*), 0, "ee61152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61152.e");
+ test_class_info(&lv, &cd_ee61152);
+ dp->~ee61152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61152(Test_ee61152, "ee61152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61152C1Ev();
+extern void _ZN7ee61152D1Ev();
+Name_Map name_map_ee61152[] = {
+ NSPAIR(_ZN7ee61152C1Ev),
+ NSPAIR(_ZN7ee61152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee61152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61152[];
+extern void _ZN7ee611523fooEv();
+extern void _ZN7ee611523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee611523barEv,_ZTv0_n16_N7ee611523barEv)();
+extern void ABISELECT(_ZThn32_N7ee611523barEv,_ZThn20_N7ee611523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee611523fooEv,_ZTv0_n12_N7ee611523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee611523fooEv,_ZThn28_N7ee611523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee611523barEv,_ZTv0_n16_N7ee611523barEv)();
+extern void ABISELECT(_ZThn48_N7ee611523barEv,_ZThn28_N7ee611523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61152[0]),
+ (VTBL_ENTRY)&_ZN7ee611523fooEv,
+ (VTBL_ENTRY)&_ZN7ee611523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611523barEv,_ZTv0_n16_N7ee611523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee611523fooEv,_ZTv0_n12_N7ee611523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee611523barEv,_ZTv0_n16_N7ee611523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee61152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee61152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee61152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee61152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee61152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee61152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee61152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee61152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee61152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61152[] = {
+ {&(_ZTV7ee61152[5]), 5,22},
+ {&(_tg__ZTV6dd1152__7ee61152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee61152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee61152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee61152[4]), 4,6},
+ {&(_ZTV7ee61152[11]), 11,22},
+ {&(_ZTV7ee61152[15]), 15,22},
+ {&(_ZTV7ee61152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee61152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee61152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee61152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee61152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee61152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61152[];
+extern VTBL_ENTRY _ZTV7ee61152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61152[];
+static VTBL_ENTRY alt_thunk_names1070[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee611523fooEv,_ZTv0_n12_N7ee611523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee611523fooEv,_ZThn28_N7ee611523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee611523barEv,_ZTv0_n16_N7ee611523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee611523barEv,_ZThn28_N7ee611523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee611523barEv,_ZThn20_N7ee611523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61152 = { "ee61152", // class name
+ bases_ee61152, 4,
+ &(vtc_ee61152[0]), // expected_vtbl_contents
+ &(vtt_ee61152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1070,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71152 : virtual dd1152 {
+ int e;
+ virtual void foo(); // _ZN7ee711523fooEv
+ virtual void bar(); // _ZN7ee711523barEv
+ ~ee71152(); // tgen
+ ee71152(); // tgen
+};
+//SIG(1 ee71152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} Fi} v1 v2 Fi}
+
+
+void ee71152 ::foo(){vfunc_called(this, "_ZN7ee711523fooEv");}
+void ee71152 ::bar(){vfunc_called(this, "_ZN7ee711523barEv");}
+ee71152 ::~ee71152(){ note_dtor("ee71152", this);} // tgen
+ee71152 ::ee71152(){ note_ctor("ee71152", this);} // tgen
+
+static void Test_ee71152()
+{
+ extern Class_Descriptor cd_ee71152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71152, buf);
+ ee71152 *dp, &lv = *(dp=new (buf) ee71152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee71152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee71152");
+ check_base_class_offset(lv, (cc152*)(dd1152*), ABISELECT(32,16), "ee71152");
+ check_base_class_offset(lv, (dd1152*), ABISELECT(16,8), "ee71152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71152.e");
+ test_class_info(&lv, &cd_ee71152);
+ dp->~ee71152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71152(Test_ee71152, "ee71152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71152C1Ev();
+extern void _ZN7ee71152D1Ev();
+Name_Map name_map_ee71152[] = {
+ NSPAIR(_ZN7ee71152C1Ev),
+ NSPAIR(_ZN7ee71152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd1152;
+extern VTBL_ENTRY _ZTI6dd1152[];
+extern VTBL_ENTRY _ZTV6dd1152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1152[];
+static Base_Class bases_ee71152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1152, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71152[];
+extern void _ZN7ee711523fooEv();
+extern void _ZN7ee711523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee711523barEv,_ZTv0_n16_N7ee711523barEv)();
+extern void ABISELECT(_ZThn48_N7ee711523barEv,_ZThn24_N7ee711523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee711523fooEv,_ZTv0_n12_N7ee711523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee711523fooEv,_ZThn32_N7ee711523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee711523barEv,_ZTv0_n16_N7ee711523barEv)();
+extern void ABISELECT(_ZThn64_N7ee711523barEv,_ZThn32_N7ee711523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71152[0]),
+ (VTBL_ENTRY)&_ZN7ee711523fooEv,
+ (VTBL_ENTRY)&_ZN7ee711523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71152[0]),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711523barEv,_ZTv0_n16_N7ee711523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee711523fooEv,_ZTv0_n12_N7ee711523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee711523barEv,_ZTv0_n16_N7ee711523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71152[];
+static VTBL_ENTRY _tg__ZTV6dd1152__7ee71152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd1152__7ee71152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1152__7ee71152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1152__7ee71152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee71152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee71152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee71152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee71152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee71152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71152[] = {
+ {&(_ZTV7ee71152[6]), 6,28},
+ {&(_ZTV7ee71152[13]), 13,28},
+ {&(_ZTV7ee71152[17]), 17,28},
+ {&(_ZTV7ee71152[21]), 21,28},
+ {&(_ZTV7ee71152[26]), 26,28},
+ {&(_tg__ZTV6dd1152__7ee71152[5]), 5,5},
+ {&(_tg__ZTV5cc152__6dd1152__7ee71152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd1152__7ee71152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1152__7ee71152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee71152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee71152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee71152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee71152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee71152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71152[];
+extern VTBL_ENTRY _ZTV7ee71152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71152[];
+static VTBL_ENTRY alt_thunk_names1071[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee711523fooEv,_ZTv0_n12_N7ee711523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee711523fooEv,_ZThn32_N7ee711523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee711523barEv,_ZTv0_n16_N7ee711523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee711523barEv,_ZThn32_N7ee711523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee711523barEv,_ZThn24_N7ee711523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71152 = { "ee71152", // class name
+ bases_ee71152, 4,
+ &(vtc_ee71152[0]), // expected_vtbl_contents
+ &(vtt_ee71152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71152),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1071,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2152 : cc152 {
+ int d;
+ virtual void foo(); // _ZN6dd21523fooEv
+ ~dd2152(); // tgen
+ dd2152(); // tgen
+};
+//SIG(-1 dd2152) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd2152 ::foo(){vfunc_called(this, "_ZN6dd21523fooEv");}
+dd2152 ::~dd2152(){ note_dtor("dd2152", this);} // tgen
+dd2152 ::dd2152(){ note_ctor("dd2152", this);} // tgen
+
+static void Test_dd2152()
+{
+ extern Class_Descriptor cd_dd2152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2152, buf);
+ dd2152 *dp, &lv = *(dp=new (buf) dd2152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd2152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(16,12), "dd2152");
+ check_base_class_offset(lv, (cc152*), 0, "dd2152");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2152.d");
+ test_class_info(&lv, &cd_dd2152);
+ dp->~dd2152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2152(Test_dd2152, "dd2152", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2152C1Ev();
+extern void _ZN6dd2152D1Ev();
+Name_Map name_map_dd2152[] = {
+ NSPAIR(_ZN6dd2152C1Ev),
+ NSPAIR(_ZN6dd2152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd2152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern void _ZN6dd21523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd2152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd2152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd2152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd2152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2152[] = {
+ {&(_ZTV6dd2152[4]), 4,16},
+ {&(_tg__ZTV5cc152__6dd2152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd2152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd2152[4]), 4,6},
+ {&(_ZTV6dd2152[9]), 9,16},
+ {&(_ZTV6dd2152[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd2152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd2152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static VTBL_ENTRY alt_thunk_names1072[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2152 = { "dd2152", // class name
+ bases_dd2152, 3,
+ &(vtc_dd2152[0]), // expected_vtbl_contents
+ &(vtt_dd2152[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2152),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1072,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02152 : dd2152 {
+ int e;
+ ~ee02152(); // tgen
+ ee02152(); // tgen
+};
+//SIG(1 ee02152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee02152 ::~ee02152(){ note_dtor("ee02152", this);} // tgen
+ee02152 ::ee02152(){ note_ctor("ee02152", this);} // tgen
+
+static void Test_ee02152()
+{
+ extern Class_Descriptor cd_ee02152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02152, buf);
+ ee02152 *dp, &lv = *(dp=new (buf) ee02152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee02152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(24,16), "ee02152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), 0, "ee02152");
+ check_base_class_offset(lv, (dd2152*), 0, "ee02152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02152.e");
+ test_class_info(&lv, &cd_ee02152);
+ dp->~ee02152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02152(Test_ee02152, "ee02152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02152C1Ev();
+extern void _ZN7ee02152D1Ev();
+Name_Map name_map_ee02152[] = {
+ NSPAIR(_ZN7ee02152C1Ev),
+ NSPAIR(_ZN7ee02152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee02152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02152[];
+extern void _ZN6dd21523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee02152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee02152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee02152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee02152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee02152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee02152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee02152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee02152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02152[] = {
+ {&(_ZTV7ee02152[4]), 4,16},
+ {&(_tg__ZTV6dd2152__7ee02152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee02152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee02152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee02152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee02152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee02152[4]), 4,6},
+ {&(_ZTV7ee02152[9]), 9,16},
+ {&(_ZTV7ee02152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee02152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee02152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee02152[];
+extern VTBL_ENTRY _ZTV7ee02152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02152[];
+static VTBL_ENTRY alt_thunk_names1073[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02152 = { "ee02152", // class name
+ bases_ee02152, 4,
+ &(vtc_ee02152[0]), // expected_vtbl_contents
+ &(vtt_ee02152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1073,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12152 : virtual dd2152 {
+ int e;
+ ~ee12152(); // tgen
+ ee12152(); // tgen
+};
+//SIG(1 ee12152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee12152 ::~ee12152(){ note_dtor("ee12152", this);} // tgen
+ee12152 ::ee12152(){ note_ctor("ee12152", this);} // tgen
+
+static void Test_ee12152()
+{
+ extern Class_Descriptor cd_ee12152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12152, buf);
+ ee12152 *dp, &lv = *(dp=new (buf) ee12152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee12152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(32,20), "ee12152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), ABISELECT(16,8), "ee12152");
+ check_base_class_offset(lv, (dd2152*), ABISELECT(16,8), "ee12152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12152.e");
+ test_class_info(&lv, &cd_ee12152);
+ dp->~ee12152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12152(Test_ee12152, "ee12152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12152C1Ev();
+extern void _ZN7ee12152D1Ev();
+Name_Map name_map_ee12152[] = {
+ NSPAIR(_ZN7ee12152C1Ev),
+ NSPAIR(_ZN7ee12152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee12152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12152[];
+extern void _ZN6dd21523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12152[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee12152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee12152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee12152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee12152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee12152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee12152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee12152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee12152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12152[] = {
+ {&(_ZTV7ee12152[5]), 5,22},
+ {&(_ZTV7ee12152[10]), 10,22},
+ {&(_ZTV7ee12152[15]), 15,22},
+ {&(_ZTV7ee12152[20]), 20,22},
+ {&(_tg__ZTV6dd2152__7ee12152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee12152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee12152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee12152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee12152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee12152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee12152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee12152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12152[];
+extern VTBL_ENTRY _ZTV7ee12152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12152[];
+static VTBL_ENTRY alt_thunk_names1074[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12152 = { "ee12152", // class name
+ bases_ee12152, 4,
+ &(vtc_ee12152[0]), // expected_vtbl_contents
+ &(vtt_ee12152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1074,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22152 : dd2152 {
+ int e;
+ virtual void foo(); // _ZN7ee221523fooEv
+ ~ee22152(); // tgen
+ ee22152(); // tgen
+};
+//SIG(1 ee22152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee22152 ::foo(){vfunc_called(this, "_ZN7ee221523fooEv");}
+ee22152 ::~ee22152(){ note_dtor("ee22152", this);} // tgen
+ee22152 ::ee22152(){ note_ctor("ee22152", this);} // tgen
+
+static void Test_ee22152()
+{
+ extern Class_Descriptor cd_ee22152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22152, buf);
+ ee22152 *dp, &lv = *(dp=new (buf) ee22152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee22152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(24,16), "ee22152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), 0, "ee22152");
+ check_base_class_offset(lv, (dd2152*), 0, "ee22152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22152.e");
+ test_class_info(&lv, &cd_ee22152);
+ dp->~ee22152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22152(Test_ee22152, "ee22152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22152C1Ev();
+extern void _ZN7ee22152D1Ev();
+Name_Map name_map_ee22152[] = {
+ NSPAIR(_ZN7ee22152C1Ev),
+ NSPAIR(_ZN7ee22152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee22152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22152[];
+extern void _ZN7ee221523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee221523fooEv,_ZTv0_n12_N7ee221523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee221523fooEv,_ZThn24_N7ee221523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22152[0]),
+ (VTBL_ENTRY)&_ZN7ee221523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee221523fooEv,_ZTv0_n12_N7ee221523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee22152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee22152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee22152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee22152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee22152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee22152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee22152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee22152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22152[] = {
+ {&(_ZTV7ee22152[4]), 4,16},
+ {&(_tg__ZTV6dd2152__7ee22152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee22152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee22152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee22152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee22152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee22152[4]), 4,6},
+ {&(_ZTV7ee22152[9]), 9,16},
+ {&(_ZTV7ee22152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee22152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee22152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee22152[];
+extern VTBL_ENTRY _ZTV7ee22152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22152[];
+static VTBL_ENTRY alt_thunk_names1075[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee221523fooEv,_ZTv0_n12_N7ee221523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee221523fooEv,_ZThn24_N7ee221523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22152 = { "ee22152", // class name
+ bases_ee22152, 4,
+ &(vtc_ee22152[0]), // expected_vtbl_contents
+ &(vtt_ee22152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1075,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32152 : virtual dd2152 {
+ int e;
+ virtual void foo(); // _ZN7ee321523fooEv
+ ~ee32152(); // tgen
+ ee32152(); // tgen
+};
+//SIG(1 ee32152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee32152 ::foo(){vfunc_called(this, "_ZN7ee321523fooEv");}
+ee32152 ::~ee32152(){ note_dtor("ee32152", this);} // tgen
+ee32152 ::ee32152(){ note_ctor("ee32152", this);} // tgen
+
+static void Test_ee32152()
+{
+ extern Class_Descriptor cd_ee32152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32152, buf);
+ ee32152 *dp, &lv = *(dp=new (buf) ee32152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee32152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(32,20), "ee32152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), ABISELECT(16,8), "ee32152");
+ check_base_class_offset(lv, (dd2152*), ABISELECT(16,8), "ee32152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32152.e");
+ test_class_info(&lv, &cd_ee32152);
+ dp->~ee32152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32152(Test_ee32152, "ee32152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32152C1Ev();
+extern void _ZN7ee32152D1Ev();
+Name_Map name_map_ee32152[] = {
+ NSPAIR(_ZN7ee32152C1Ev),
+ NSPAIR(_ZN7ee32152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee32152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32152[];
+extern void _ZN7ee321523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee321523fooEv,_ZTv0_n20_N7ee321523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee321523fooEv,_ZThn8_N7ee321523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee321523fooEv,_ZTv0_n12_N7ee321523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee321523fooEv,_ZThn28_N7ee321523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32152[0]),
+ (VTBL_ENTRY)&_ZN7ee321523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee321523fooEv,_ZTv0_n20_N7ee321523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee321523fooEv,_ZTv0_n12_N7ee321523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee32152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee32152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee32152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee32152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee32152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee32152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee32152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee32152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32152[] = {
+ {&(_ZTV7ee32152[5]), 5,23},
+ {&(_ZTV7ee32152[11]), 11,23},
+ {&(_ZTV7ee32152[16]), 16,23},
+ {&(_ZTV7ee32152[21]), 21,23},
+ {&(_tg__ZTV6dd2152__7ee32152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee32152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee32152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee32152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee32152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee32152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee32152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee32152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32152[];
+extern VTBL_ENTRY _ZTV7ee32152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32152[];
+static VTBL_ENTRY alt_thunk_names1076[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee321523fooEv,_ZTv0_n12_N7ee321523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee321523fooEv,_ZThn28_N7ee321523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee321523fooEv,_ZTv0_n20_N7ee321523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee321523fooEv,_ZThn8_N7ee321523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32152 = { "ee32152", // class name
+ bases_ee32152, 4,
+ &(vtc_ee32152[0]), // expected_vtbl_contents
+ &(vtt_ee32152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32152),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1076,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42152 : dd2152 {
+ int e;
+ virtual void bar(); // _ZN7ee421523barEv
+ ~ee42152(); // tgen
+ ee42152(); // tgen
+};
+//SIG(1 ee42152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee42152 ::bar(){vfunc_called(this, "_ZN7ee421523barEv");}
+ee42152 ::~ee42152(){ note_dtor("ee42152", this);} // tgen
+ee42152 ::ee42152(){ note_ctor("ee42152", this);} // tgen
+
+static void Test_ee42152()
+{
+ extern Class_Descriptor cd_ee42152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42152, buf);
+ ee42152 *dp, &lv = *(dp=new (buf) ee42152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee42152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(24,16), "ee42152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), 0, "ee42152");
+ check_base_class_offset(lv, (dd2152*), 0, "ee42152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42152.e");
+ test_class_info(&lv, &cd_ee42152);
+ dp->~ee42152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42152(Test_ee42152, "ee42152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42152C1Ev();
+extern void _ZN7ee42152D1Ev();
+Name_Map name_map_ee42152[] = {
+ NSPAIR(_ZN7ee42152C1Ev),
+ NSPAIR(_ZN7ee42152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee42152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42152[];
+extern void _ZN6dd21523fooEv();
+extern void _ZN7ee421523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee421523barEv,_ZTv0_n16_N7ee421523barEv)();
+extern void ABISELECT(_ZThn24_N7ee421523barEv,_ZThn16_N7ee421523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee421523barEv,_ZTv0_n16_N7ee421523barEv)();
+extern void ABISELECT(_ZThn40_N7ee421523barEv,_ZThn24_N7ee421523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+ (VTBL_ENTRY)&_ZN7ee421523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421523barEv,_ZTv0_n16_N7ee421523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee421523barEv,_ZTv0_n16_N7ee421523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee42152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee42152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee42152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee42152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee42152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee42152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee42152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee42152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42152[] = {
+ {&(_ZTV7ee42152[4]), 4,17},
+ {&(_tg__ZTV6dd2152__7ee42152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee42152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee42152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee42152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee42152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee42152[4]), 4,6},
+ {&(_ZTV7ee42152[10]), 10,17},
+ {&(_ZTV7ee42152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee42152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee42152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee42152[];
+extern VTBL_ENTRY _ZTV7ee42152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42152[];
+static VTBL_ENTRY alt_thunk_names1077[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee421523barEv,_ZTv0_n16_N7ee421523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee421523barEv,_ZThn24_N7ee421523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee421523barEv,_ZThn16_N7ee421523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42152 = { "ee42152", // class name
+ bases_ee42152, 4,
+ &(vtc_ee42152[0]), // expected_vtbl_contents
+ &(vtt_ee42152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1077,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52152 : virtual dd2152 {
+ int e;
+ virtual void bar(); // _ZN7ee521523barEv
+ ~ee52152(); // tgen
+ ee52152(); // tgen
+};
+//SIG(1 ee52152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee52152 ::bar(){vfunc_called(this, "_ZN7ee521523barEv");}
+ee52152 ::~ee52152(){ note_dtor("ee52152", this);} // tgen
+ee52152 ::ee52152(){ note_ctor("ee52152", this);} // tgen
+
+static void Test_ee52152()
+{
+ extern Class_Descriptor cd_ee52152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52152, buf);
+ ee52152 *dp, &lv = *(dp=new (buf) ee52152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee52152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(32,20), "ee52152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), ABISELECT(16,8), "ee52152");
+ check_base_class_offset(lv, (dd2152*), ABISELECT(16,8), "ee52152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52152.e");
+ test_class_info(&lv, &cd_ee52152);
+ dp->~ee52152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52152(Test_ee52152, "ee52152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52152C1Ev();
+extern void _ZN7ee52152D1Ev();
+Name_Map name_map_ee52152[] = {
+ NSPAIR(_ZN7ee52152C1Ev),
+ NSPAIR(_ZN7ee52152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee52152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52152[];
+extern void _ZN7ee521523barEv();
+extern void _ZN6dd21523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee521523barEv,_ZTv0_n16_N7ee521523barEv)();
+extern void ABISELECT(_ZThn32_N7ee521523barEv,_ZThn20_N7ee521523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee521523barEv,_ZTv0_n16_N7ee521523barEv)();
+extern void ABISELECT(_ZThn48_N7ee521523barEv,_ZThn28_N7ee521523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52152[0]),
+ (VTBL_ENTRY)&_ZN7ee521523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521523barEv,_ZTv0_n16_N7ee521523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee521523barEv,_ZTv0_n16_N7ee521523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee52152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee52152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee52152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee52152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee52152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee52152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee52152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee52152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52152[] = {
+ {&(_ZTV7ee52152[5]), 5,23},
+ {&(_ZTV7ee52152[11]), 11,23},
+ {&(_ZTV7ee52152[16]), 16,23},
+ {&(_ZTV7ee52152[21]), 21,23},
+ {&(_tg__ZTV6dd2152__7ee52152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee52152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee52152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee52152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee52152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee52152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee52152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee52152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52152[];
+extern VTBL_ENTRY _ZTV7ee52152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52152[];
+static VTBL_ENTRY alt_thunk_names1078[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee521523barEv,_ZTv0_n16_N7ee521523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee521523barEv,_ZThn28_N7ee521523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee521523barEv,_ZThn20_N7ee521523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52152 = { "ee52152", // class name
+ bases_ee52152, 4,
+ &(vtc_ee52152[0]), // expected_vtbl_contents
+ &(vtt_ee52152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52152),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1078,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62152 : dd2152 {
+ int e;
+ virtual void foo(); // _ZN7ee621523fooEv
+ virtual void bar(); // _ZN7ee621523barEv
+ ~ee62152(); // tgen
+ ee62152(); // tgen
+};
+//SIG(1 ee62152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62152 ::foo(){vfunc_called(this, "_ZN7ee621523fooEv");}
+void ee62152 ::bar(){vfunc_called(this, "_ZN7ee621523barEv");}
+ee62152 ::~ee62152(){ note_dtor("ee62152", this);} // tgen
+ee62152 ::ee62152(){ note_ctor("ee62152", this);} // tgen
+
+static void Test_ee62152()
+{
+ extern Class_Descriptor cd_ee62152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62152, buf);
+ ee62152 *dp, &lv = *(dp=new (buf) ee62152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee62152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(24,16), "ee62152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), 0, "ee62152");
+ check_base_class_offset(lv, (dd2152*), 0, "ee62152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62152.e");
+ test_class_info(&lv, &cd_ee62152);
+ dp->~ee62152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62152(Test_ee62152, "ee62152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62152C1Ev();
+extern void _ZN7ee62152D1Ev();
+Name_Map name_map_ee62152[] = {
+ NSPAIR(_ZN7ee62152C1Ev),
+ NSPAIR(_ZN7ee62152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee62152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62152[];
+extern void _ZN7ee621523fooEv();
+extern void _ZN7ee621523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee621523barEv,_ZTv0_n16_N7ee621523barEv)();
+extern void ABISELECT(_ZThn24_N7ee621523barEv,_ZThn16_N7ee621523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee621523fooEv,_ZTv0_n12_N7ee621523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee621523fooEv,_ZThn24_N7ee621523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee621523barEv,_ZTv0_n16_N7ee621523barEv)();
+extern void ABISELECT(_ZThn40_N7ee621523barEv,_ZThn24_N7ee621523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62152[0]),
+ (VTBL_ENTRY)&_ZN7ee621523fooEv,
+ (VTBL_ENTRY)&_ZN7ee621523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621523barEv,_ZTv0_n16_N7ee621523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee621523fooEv,_ZTv0_n12_N7ee621523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee621523barEv,_ZTv0_n16_N7ee621523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee62152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee62152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee62152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee62152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee62152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee62152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee62152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee62152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62152[] = {
+ {&(_ZTV7ee62152[4]), 4,17},
+ {&(_tg__ZTV6dd2152__7ee62152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee62152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee62152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee62152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee62152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee62152[4]), 4,6},
+ {&(_ZTV7ee62152[10]), 10,17},
+ {&(_ZTV7ee62152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee62152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee62152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee62152[];
+extern VTBL_ENTRY _ZTV7ee62152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62152[];
+static VTBL_ENTRY alt_thunk_names1079[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd21523fooEv,_ZThn24_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee621523fooEv,_ZTv0_n12_N7ee621523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee621523fooEv,_ZThn24_N7ee621523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee621523barEv,_ZTv0_n16_N7ee621523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee621523barEv,_ZThn24_N7ee621523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee621523barEv,_ZThn16_N7ee621523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62152 = { "ee62152", // class name
+ bases_ee62152, 4,
+ &(vtc_ee62152[0]), // expected_vtbl_contents
+ &(vtt_ee62152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1079,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72152 : virtual dd2152 {
+ int e;
+ virtual void foo(); // _ZN7ee721523fooEv
+ virtual void bar(); // _ZN7ee721523barEv
+ ~ee72152(); // tgen
+ ee72152(); // tgen
+};
+//SIG(1 ee72152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72152 ::foo(){vfunc_called(this, "_ZN7ee721523fooEv");}
+void ee72152 ::bar(){vfunc_called(this, "_ZN7ee721523barEv");}
+ee72152 ::~ee72152(){ note_dtor("ee72152", this);} // tgen
+ee72152 ::ee72152(){ note_ctor("ee72152", this);} // tgen
+
+static void Test_ee72152()
+{
+ extern Class_Descriptor cd_ee72152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72152, buf);
+ ee72152 *dp, &lv = *(dp=new (buf) ee72152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee72152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd2152*), ABISELECT(32,20), "ee72152");
+ check_base_class_offset(lv, (cc152*)(dd2152*), ABISELECT(16,8), "ee72152");
+ check_base_class_offset(lv, (dd2152*), ABISELECT(16,8), "ee72152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72152.e");
+ test_class_info(&lv, &cd_ee72152);
+ dp->~ee72152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72152(Test_ee72152, "ee72152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72152C1Ev();
+extern void _ZN7ee72152D1Ev();
+Name_Map name_map_ee72152[] = {
+ NSPAIR(_ZN7ee72152C1Ev),
+ NSPAIR(_ZN7ee72152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd2152;
+extern VTBL_ENTRY _ZTI6dd2152[];
+extern VTBL_ENTRY _ZTV6dd2152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2152[];
+static Base_Class bases_ee72152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72152[];
+extern void _ZN7ee721523fooEv();
+extern void _ZN7ee721523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee721523fooEv,_ZTv0_n20_N7ee721523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee721523fooEv,_ZThn8_N7ee721523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721523barEv,_ZTv0_n16_N7ee721523barEv)();
+extern void ABISELECT(_ZThn32_N7ee721523barEv,_ZThn20_N7ee721523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee721523fooEv,_ZTv0_n12_N7ee721523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee721523fooEv,_ZThn28_N7ee721523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee721523barEv,_ZTv0_n16_N7ee721523barEv)();
+extern void ABISELECT(_ZThn48_N7ee721523barEv,_ZThn28_N7ee721523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72152[0]),
+ (VTBL_ENTRY)&_ZN7ee721523fooEv,
+ (VTBL_ENTRY)&_ZN7ee721523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee721523fooEv,_ZTv0_n20_N7ee721523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721523barEv,_ZTv0_n16_N7ee721523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee721523fooEv,_ZTv0_n12_N7ee721523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee721523barEv,_ZTv0_n16_N7ee721523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72152[];
+extern void _ZN6dd21523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2152__7ee72152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN6dd21523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd2152__7ee72152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd2152__7ee72152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd2152__7ee72152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2152__7ee72152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2152__7ee72152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee72152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee72152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72152[] = {
+ {&(_ZTV7ee72152[5]), 5,24},
+ {&(_ZTV7ee72152[12]), 12,24},
+ {&(_ZTV7ee72152[17]), 17,24},
+ {&(_ZTV7ee72152[22]), 22,24},
+ {&(_tg__ZTV6dd2152__7ee72152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd2152__7ee72152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd2152__7ee72152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd2152__7ee72152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2152__7ee72152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2152__7ee72152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee72152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee72152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72152[];
+extern VTBL_ENTRY _ZTV7ee72152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72152[];
+static VTBL_ENTRY alt_thunk_names1080[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd21523fooEv,_ZTv0_n12_N6dd21523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd21523fooEv,_ZThn20_N6dd21523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee721523fooEv,_ZTv0_n12_N7ee721523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee721523fooEv,_ZThn28_N7ee721523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee721523barEv,_ZTv0_n16_N7ee721523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee721523barEv,_ZThn28_N7ee721523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee721523barEv,_ZThn20_N7ee721523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee721523fooEv,_ZTv0_n20_N7ee721523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee721523fooEv,_ZThn8_N7ee721523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72152 = { "ee72152", // class name
+ bases_ee72152, 4,
+ &(vtc_ee72152[0]), // expected_vtbl_contents
+ &(vtt_ee72152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72152),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1080,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3152 : virtual cc152 {
+ int d;
+ virtual void foo(); // _ZN6dd31523fooEv
+ ~dd3152(); // tgen
+ dd3152(); // tgen
+};
+//SIG(-1 dd3152) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void dd3152 ::foo(){vfunc_called(this, "_ZN6dd31523fooEv");}
+dd3152 ::~dd3152(){ note_dtor("dd3152", this);} // tgen
+dd3152 ::dd3152(){ note_ctor("dd3152", this);} // tgen
+
+static void Test_dd3152()
+{
+ extern Class_Descriptor cd_dd3152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3152, buf);
+ dd3152 *dp, &lv = *(dp=new (buf) dd3152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd3152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,16), "dd3152");
+ check_base_class_offset(lv, (cc152*), ABISELECT(16,8), "dd3152");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3152.d");
+ test_class_info(&lv, &cd_dd3152);
+ dp->~dd3152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3152(Test_dd3152, "dd3152", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3152C1Ev();
+extern void _ZN6dd3152D1Ev();
+Name_Map name_map_dd3152[] = {
+ NSPAIR(_ZN6dd3152C1Ev),
+ NSPAIR(_ZN6dd3152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd3152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern void _ZN6dd31523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd3152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd3152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd3152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3152[] = {
+ {&(_ZTV6dd3152[5]), 5,21},
+ {&(_ZTV6dd3152[10]), 10,21},
+ {&(_ZTV6dd3152[14]), 14,21},
+ {&(_ZTV6dd3152[19]), 19,21},
+ {&(_tg__ZTV5cc152__6dd3152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd3152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd3152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd3152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd3152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static VTBL_ENTRY alt_thunk_names1081[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3152 = { "dd3152", // class name
+ bases_dd3152, 3,
+ &(vtc_dd3152[0]), // expected_vtbl_contents
+ &(vtt_dd3152[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3152),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1081,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03152 : dd3152 {
+ int e;
+ ~ee03152(); // tgen
+ ee03152(); // tgen
+};
+//SIG(1 ee03152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee03152 ::~ee03152(){ note_dtor("ee03152", this);} // tgen
+ee03152 ::ee03152(){ note_ctor("ee03152", this);} // tgen
+
+static void Test_ee03152()
+{
+ extern Class_Descriptor cd_ee03152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03152, buf);
+ ee03152 *dp, &lv = *(dp=new (buf) ee03152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee03152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee03152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(16,12), "ee03152");
+ check_base_class_offset(lv, (dd3152*), 0, "ee03152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03152.e");
+ test_class_info(&lv, &cd_ee03152);
+ dp->~ee03152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03152(Test_ee03152, "ee03152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03152C1Ev();
+extern void _ZN7ee03152D1Ev();
+Name_Map name_map_ee03152[] = {
+ NSPAIR(_ZN7ee03152C1Ev),
+ NSPAIR(_ZN7ee03152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee03152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03152[];
+extern void _ZN6dd31523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee03152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee03152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee03152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee03152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee03152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee03152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee03152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee03152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee03152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03152[] = {
+ {&(_ZTV7ee03152[5]), 5,21},
+ {&(_tg__ZTV6dd3152__7ee03152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee03152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee03152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee03152[4]), 4,6},
+ {&(_ZTV7ee03152[10]), 10,21},
+ {&(_ZTV7ee03152[14]), 14,21},
+ {&(_ZTV7ee03152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee03152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee03152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee03152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee03152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee03152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03152[];
+extern VTBL_ENTRY _ZTV7ee03152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03152[];
+static VTBL_ENTRY alt_thunk_names1082[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03152 = { "ee03152", // class name
+ bases_ee03152, 4,
+ &(vtc_ee03152[0]), // expected_vtbl_contents
+ &(vtt_ee03152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1082,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13152 : virtual dd3152 {
+ int e;
+ ~ee13152(); // tgen
+ ee13152(); // tgen
+};
+//SIG(1 ee13152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} Fi}
+
+
+ee13152 ::~ee13152(){ note_dtor("ee13152", this);} // tgen
+ee13152 ::ee13152(){ note_ctor("ee13152", this);} // tgen
+
+static void Test_ee13152()
+{
+ extern Class_Descriptor cd_ee13152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13152, buf);
+ ee13152 *dp, &lv = *(dp=new (buf) ee13152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee13152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee13152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(32,16), "ee13152");
+ check_base_class_offset(lv, (dd3152*), ABISELECT(16,8), "ee13152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13152.e");
+ test_class_info(&lv, &cd_ee13152);
+ dp->~ee13152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13152(Test_ee13152, "ee13152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13152C1Ev();
+extern void _ZN7ee13152D1Ev();
+Name_Map name_map_ee13152[] = {
+ NSPAIR(_ZN7ee13152C1Ev),
+ NSPAIR(_ZN7ee13152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee13152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13152[];
+extern void _ZN6dd31523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13152[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee13152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee13152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee13152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee13152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee13152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee13152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee13152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee13152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee13152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13152[] = {
+ {&(_ZTV7ee13152[6]), 6,28},
+ {&(_ZTV7ee13152[12]), 12,28},
+ {&(_ZTV7ee13152[17]), 17,28},
+ {&(_ZTV7ee13152[21]), 21,28},
+ {&(_ZTV7ee13152[26]), 26,28},
+ {&(_tg__ZTV6dd3152__7ee13152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee13152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee13152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee13152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee13152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee13152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee13152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee13152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee13152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13152[];
+extern VTBL_ENTRY _ZTV7ee13152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13152[];
+static VTBL_ENTRY alt_thunk_names1083[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13152 = { "ee13152", // class name
+ bases_ee13152, 4,
+ &(vtc_ee13152[0]), // expected_vtbl_contents
+ &(vtt_ee13152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13152),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1083,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23152 : dd3152 {
+ int e;
+ virtual void foo(); // _ZN7ee231523fooEv
+ ~ee23152(); // tgen
+ ee23152(); // tgen
+};
+//SIG(1 ee23152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee23152 ::foo(){vfunc_called(this, "_ZN7ee231523fooEv");}
+ee23152 ::~ee23152(){ note_dtor("ee23152", this);} // tgen
+ee23152 ::ee23152(){ note_ctor("ee23152", this);} // tgen
+
+static void Test_ee23152()
+{
+ extern Class_Descriptor cd_ee23152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23152, buf);
+ ee23152 *dp, &lv = *(dp=new (buf) ee23152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee23152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee23152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(16,12), "ee23152");
+ check_base_class_offset(lv, (dd3152*), 0, "ee23152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23152.e");
+ test_class_info(&lv, &cd_ee23152);
+ dp->~ee23152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23152(Test_ee23152, "ee23152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23152C1Ev();
+extern void _ZN7ee23152D1Ev();
+Name_Map name_map_ee23152[] = {
+ NSPAIR(_ZN7ee23152C1Ev),
+ NSPAIR(_ZN7ee23152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee23152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23152[];
+extern void _ZN7ee231523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee231523fooEv,_ZTv0_n12_N7ee231523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee231523fooEv,_ZThn28_N7ee231523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23152[0]),
+ (VTBL_ENTRY)&_ZN7ee231523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee231523fooEv,_ZTv0_n12_N7ee231523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee23152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee23152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee23152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee23152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee23152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee23152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee23152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee23152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee23152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23152[] = {
+ {&(_ZTV7ee23152[5]), 5,21},
+ {&(_tg__ZTV6dd3152__7ee23152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee23152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee23152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee23152[4]), 4,6},
+ {&(_ZTV7ee23152[10]), 10,21},
+ {&(_ZTV7ee23152[14]), 14,21},
+ {&(_ZTV7ee23152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee23152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee23152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee23152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee23152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee23152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23152[];
+extern VTBL_ENTRY _ZTV7ee23152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23152[];
+static VTBL_ENTRY alt_thunk_names1084[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee231523fooEv,_ZTv0_n12_N7ee231523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee231523fooEv,_ZThn28_N7ee231523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23152 = { "ee23152", // class name
+ bases_ee23152, 4,
+ &(vtc_ee23152[0]), // expected_vtbl_contents
+ &(vtt_ee23152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1084,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33152 : virtual dd3152 {
+ int e;
+ virtual void foo(); // _ZN7ee331523fooEv
+ ~ee33152(); // tgen
+ ee33152(); // tgen
+};
+//SIG(1 ee33152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee33152 ::foo(){vfunc_called(this, "_ZN7ee331523fooEv");}
+ee33152 ::~ee33152(){ note_dtor("ee33152", this);} // tgen
+ee33152 ::ee33152(){ note_ctor("ee33152", this);} // tgen
+
+static void Test_ee33152()
+{
+ extern Class_Descriptor cd_ee33152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33152, buf);
+ ee33152 *dp, &lv = *(dp=new (buf) ee33152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee33152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee33152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(32,16), "ee33152");
+ check_base_class_offset(lv, (dd3152*), ABISELECT(16,8), "ee33152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33152.e");
+ test_class_info(&lv, &cd_ee33152);
+ dp->~ee33152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33152(Test_ee33152, "ee33152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33152C1Ev();
+extern void _ZN7ee33152D1Ev();
+Name_Map name_map_ee33152[] = {
+ NSPAIR(_ZN7ee33152C1Ev),
+ NSPAIR(_ZN7ee33152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee33152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33152[];
+extern void _ZN7ee331523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee331523fooEv,_ZTv0_n24_N7ee331523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee331523fooEv,_ZThn8_N7ee331523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee331523fooEv,_ZTv0_n12_N7ee331523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee331523fooEv,_ZThn32_N7ee331523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33152[0]),
+ (VTBL_ENTRY)&_ZN7ee331523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee331523fooEv,_ZTv0_n24_N7ee331523fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33152[0]),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee331523fooEv,_ZTv0_n12_N7ee331523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee33152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee33152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee33152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee33152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee33152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee33152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee33152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee33152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee33152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33152[] = {
+ {&(_ZTV7ee33152[6]), 6,29},
+ {&(_ZTV7ee33152[13]), 13,29},
+ {&(_ZTV7ee33152[18]), 18,29},
+ {&(_ZTV7ee33152[22]), 22,29},
+ {&(_ZTV7ee33152[27]), 27,29},
+ {&(_tg__ZTV6dd3152__7ee33152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee33152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee33152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee33152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee33152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee33152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee33152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee33152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee33152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33152[];
+extern VTBL_ENTRY _ZTV7ee33152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33152[];
+static VTBL_ENTRY alt_thunk_names1085[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee331523fooEv,_ZTv0_n12_N7ee331523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee331523fooEv,_ZThn32_N7ee331523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee331523fooEv,_ZTv0_n24_N7ee331523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee331523fooEv,_ZThn8_N7ee331523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33152 = { "ee33152", // class name
+ bases_ee33152, 4,
+ &(vtc_ee33152[0]), // expected_vtbl_contents
+ &(vtt_ee33152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33152),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1085,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43152 : dd3152 {
+ int e;
+ virtual void bar(); // _ZN7ee431523barEv
+ ~ee43152(); // tgen
+ ee43152(); // tgen
+};
+//SIG(1 ee43152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee43152 ::bar(){vfunc_called(this, "_ZN7ee431523barEv");}
+ee43152 ::~ee43152(){ note_dtor("ee43152", this);} // tgen
+ee43152 ::ee43152(){ note_ctor("ee43152", this);} // tgen
+
+static void Test_ee43152()
+{
+ extern Class_Descriptor cd_ee43152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43152, buf);
+ ee43152 *dp, &lv = *(dp=new (buf) ee43152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee43152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee43152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(16,12), "ee43152");
+ check_base_class_offset(lv, (dd3152*), 0, "ee43152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43152.e");
+ test_class_info(&lv, &cd_ee43152);
+ dp->~ee43152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43152(Test_ee43152, "ee43152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43152C1Ev();
+extern void _ZN7ee43152D1Ev();
+Name_Map name_map_ee43152[] = {
+ NSPAIR(_ZN7ee43152C1Ev),
+ NSPAIR(_ZN7ee43152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee43152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43152[];
+extern void _ZN6dd31523fooEv();
+extern void _ZN7ee431523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee431523barEv,_ZTv0_n16_N7ee431523barEv)();
+extern void ABISELECT(_ZThn32_N7ee431523barEv,_ZThn20_N7ee431523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee431523barEv,_ZTv0_n16_N7ee431523barEv)();
+extern void ABISELECT(_ZThn48_N7ee431523barEv,_ZThn28_N7ee431523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+ (VTBL_ENTRY)&_ZN7ee431523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431523barEv,_ZTv0_n16_N7ee431523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee431523barEv,_ZTv0_n16_N7ee431523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee43152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee43152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee43152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee43152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee43152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee43152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee43152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee43152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee43152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43152[] = {
+ {&(_ZTV7ee43152[5]), 5,22},
+ {&(_tg__ZTV6dd3152__7ee43152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee43152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee43152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee43152[4]), 4,6},
+ {&(_ZTV7ee43152[11]), 11,22},
+ {&(_ZTV7ee43152[15]), 15,22},
+ {&(_ZTV7ee43152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee43152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee43152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee43152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee43152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee43152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43152[];
+extern VTBL_ENTRY _ZTV7ee43152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43152[];
+static VTBL_ENTRY alt_thunk_names1086[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee431523barEv,_ZTv0_n16_N7ee431523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee431523barEv,_ZThn28_N7ee431523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee431523barEv,_ZThn20_N7ee431523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43152 = { "ee43152", // class name
+ bases_ee43152, 4,
+ &(vtc_ee43152[0]), // expected_vtbl_contents
+ &(vtt_ee43152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1086,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53152 : virtual dd3152 {
+ int e;
+ virtual void bar(); // _ZN7ee531523barEv
+ ~ee53152(); // tgen
+ ee53152(); // tgen
+};
+//SIG(1 ee53152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee53152 ::bar(){vfunc_called(this, "_ZN7ee531523barEv");}
+ee53152 ::~ee53152(){ note_dtor("ee53152", this);} // tgen
+ee53152 ::ee53152(){ note_ctor("ee53152", this);} // tgen
+
+static void Test_ee53152()
+{
+ extern Class_Descriptor cd_ee53152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53152, buf);
+ ee53152 *dp, &lv = *(dp=new (buf) ee53152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee53152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee53152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(32,16), "ee53152");
+ check_base_class_offset(lv, (dd3152*), ABISELECT(16,8), "ee53152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53152.e");
+ test_class_info(&lv, &cd_ee53152);
+ dp->~ee53152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53152(Test_ee53152, "ee53152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53152C1Ev();
+extern void _ZN7ee53152D1Ev();
+Name_Map name_map_ee53152[] = {
+ NSPAIR(_ZN7ee53152C1Ev),
+ NSPAIR(_ZN7ee53152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee53152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53152[];
+extern void _ZN7ee531523barEv();
+extern void _ZN6dd31523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee531523barEv,_ZTv0_n16_N7ee531523barEv)();
+extern void ABISELECT(_ZThn48_N7ee531523barEv,_ZThn24_N7ee531523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee531523barEv,_ZTv0_n16_N7ee531523barEv)();
+extern void ABISELECT(_ZThn64_N7ee531523barEv,_ZThn32_N7ee531523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53152[0]),
+ (VTBL_ENTRY)&_ZN7ee531523barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531523barEv,_ZTv0_n16_N7ee531523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee531523barEv,_ZTv0_n16_N7ee531523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee53152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee53152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee53152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee53152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee53152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee53152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee53152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee53152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee53152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53152[] = {
+ {&(_ZTV7ee53152[6]), 6,29},
+ {&(_ZTV7ee53152[13]), 13,29},
+ {&(_ZTV7ee53152[18]), 18,29},
+ {&(_ZTV7ee53152[22]), 22,29},
+ {&(_ZTV7ee53152[27]), 27,29},
+ {&(_tg__ZTV6dd3152__7ee53152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee53152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee53152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee53152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee53152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee53152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee53152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee53152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee53152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53152[];
+extern VTBL_ENTRY _ZTV7ee53152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53152[];
+static VTBL_ENTRY alt_thunk_names1087[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee531523barEv,_ZTv0_n16_N7ee531523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee531523barEv,_ZThn32_N7ee531523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee531523barEv,_ZThn24_N7ee531523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53152 = { "ee53152", // class name
+ bases_ee53152, 4,
+ &(vtc_ee53152[0]), // expected_vtbl_contents
+ &(vtt_ee53152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53152),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1087,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63152 : dd3152 {
+ int e;
+ virtual void foo(); // _ZN7ee631523fooEv
+ virtual void bar(); // _ZN7ee631523barEv
+ ~ee63152(); // tgen
+ ee63152(); // tgen
+};
+//SIG(1 ee63152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63152 ::foo(){vfunc_called(this, "_ZN7ee631523fooEv");}
+void ee63152 ::bar(){vfunc_called(this, "_ZN7ee631523barEv");}
+ee63152 ::~ee63152(){ note_dtor("ee63152", this);} // tgen
+ee63152 ::ee63152(){ note_ctor("ee63152", this);} // tgen
+
+static void Test_ee63152()
+{
+ extern Class_Descriptor cd_ee63152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63152, buf);
+ ee63152 *dp, &lv = *(dp=new (buf) ee63152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee63152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee63152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(16,12), "ee63152");
+ check_base_class_offset(lv, (dd3152*), 0, "ee63152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63152.e");
+ test_class_info(&lv, &cd_ee63152);
+ dp->~ee63152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63152(Test_ee63152, "ee63152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63152C1Ev();
+extern void _ZN7ee63152D1Ev();
+Name_Map name_map_ee63152[] = {
+ NSPAIR(_ZN7ee63152C1Ev),
+ NSPAIR(_ZN7ee63152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee63152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63152[];
+extern void _ZN7ee631523fooEv();
+extern void _ZN7ee631523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee631523barEv,_ZTv0_n16_N7ee631523barEv)();
+extern void ABISELECT(_ZThn32_N7ee631523barEv,_ZThn20_N7ee631523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee631523fooEv,_ZTv0_n12_N7ee631523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee631523fooEv,_ZThn28_N7ee631523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee631523barEv,_ZTv0_n16_N7ee631523barEv)();
+extern void ABISELECT(_ZThn48_N7ee631523barEv,_ZThn28_N7ee631523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63152[0]),
+ (VTBL_ENTRY)&_ZN7ee631523fooEv,
+ (VTBL_ENTRY)&_ZN7ee631523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631523barEv,_ZTv0_n16_N7ee631523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee631523fooEv,_ZTv0_n12_N7ee631523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee631523barEv,_ZTv0_n16_N7ee631523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee63152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee63152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee63152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee63152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee63152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee63152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee63152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee63152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee63152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63152[] = {
+ {&(_ZTV7ee63152[5]), 5,22},
+ {&(_tg__ZTV6dd3152__7ee63152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee63152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee63152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee63152[4]), 4,6},
+ {&(_ZTV7ee63152[11]), 11,22},
+ {&(_ZTV7ee63152[15]), 15,22},
+ {&(_ZTV7ee63152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee63152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee63152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee63152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee63152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee63152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63152[];
+extern VTBL_ENTRY _ZTV7ee63152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63152[];
+static VTBL_ENTRY alt_thunk_names1088[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn28_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee631523fooEv,_ZTv0_n12_N7ee631523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee631523fooEv,_ZThn28_N7ee631523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee631523barEv,_ZTv0_n16_N7ee631523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee631523barEv,_ZThn28_N7ee631523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee631523barEv,_ZThn20_N7ee631523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63152 = { "ee63152", // class name
+ bases_ee63152, 4,
+ &(vtc_ee63152[0]), // expected_vtbl_contents
+ &(vtt_ee63152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1088,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73152 : virtual dd3152 {
+ int e;
+ virtual void foo(); // _ZN7ee731523fooEv
+ virtual void bar(); // _ZN7ee731523barEv
+ ~ee73152(); // tgen
+ ee73152(); // tgen
+};
+//SIG(1 ee73152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73152 ::foo(){vfunc_called(this, "_ZN7ee731523fooEv");}
+void ee73152 ::bar(){vfunc_called(this, "_ZN7ee731523barEv");}
+ee73152 ::~ee73152(){ note_dtor("ee73152", this);} // tgen
+ee73152 ::ee73152(){ note_ctor("ee73152", this);} // tgen
+
+static void Test_ee73152()
+{
+ extern Class_Descriptor cd_ee73152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73152, buf);
+ ee73152 *dp, &lv = *(dp=new (buf) ee73152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee73152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee73152");
+ check_base_class_offset(lv, (cc152*)(dd3152*), ABISELECT(32,16), "ee73152");
+ check_base_class_offset(lv, (dd3152*), ABISELECT(16,8), "ee73152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73152.e");
+ test_class_info(&lv, &cd_ee73152);
+ dp->~ee73152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73152(Test_ee73152, "ee73152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73152C1Ev();
+extern void _ZN7ee73152D1Ev();
+Name_Map name_map_ee73152[] = {
+ NSPAIR(_ZN7ee73152C1Ev),
+ NSPAIR(_ZN7ee73152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd3152;
+extern VTBL_ENTRY _ZTI6dd3152[];
+extern VTBL_ENTRY _ZTV6dd3152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3152[];
+static Base_Class bases_ee73152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3152, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73152[];
+extern void _ZN7ee731523fooEv();
+extern void _ZN7ee731523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee731523fooEv,_ZTv0_n24_N7ee731523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee731523fooEv,_ZThn8_N7ee731523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731523barEv,_ZTv0_n16_N7ee731523barEv)();
+extern void ABISELECT(_ZThn48_N7ee731523barEv,_ZThn24_N7ee731523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee731523fooEv,_ZTv0_n12_N7ee731523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee731523fooEv,_ZThn32_N7ee731523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee731523barEv,_ZTv0_n16_N7ee731523barEv)();
+extern void ABISELECT(_ZThn64_N7ee731523barEv,_ZThn32_N7ee731523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73152[0]),
+ (VTBL_ENTRY)&_ZN7ee731523fooEv,
+ (VTBL_ENTRY)&_ZN7ee731523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee731523fooEv,_ZTv0_n24_N7ee731523fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731523barEv,_ZTv0_n16_N7ee731523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee731523fooEv,_ZTv0_n12_N7ee731523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee731523barEv,_ZTv0_n16_N7ee731523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73152[];
+extern void _ZN6dd31523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3152__7ee73152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN6dd31523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd3152__7ee73152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3152__7ee73152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3152__7ee73152[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee73152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee73152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee73152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee73152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee73152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73152[] = {
+ {&(_ZTV7ee73152[6]), 6,30},
+ {&(_ZTV7ee73152[14]), 14,30},
+ {&(_ZTV7ee73152[19]), 19,30},
+ {&(_ZTV7ee73152[23]), 23,30},
+ {&(_ZTV7ee73152[28]), 28,30},
+ {&(_tg__ZTV6dd3152__7ee73152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd3152__7ee73152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd3152__7ee73152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3152__7ee73152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee73152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee73152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee73152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee73152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee73152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73152[];
+extern VTBL_ENTRY _ZTV7ee73152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73152[];
+static VTBL_ENTRY alt_thunk_names1089[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd31523fooEv,_ZTv0_n12_N6dd31523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd31523fooEv,_ZThn24_N6dd31523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee731523fooEv,_ZTv0_n12_N7ee731523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee731523fooEv,_ZThn32_N7ee731523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee731523barEv,_ZTv0_n16_N7ee731523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee731523barEv,_ZThn32_N7ee731523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee731523barEv,_ZThn24_N7ee731523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee731523fooEv,_ZTv0_n24_N7ee731523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee731523fooEv,_ZThn8_N7ee731523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73152 = { "ee73152", // class name
+ bases_ee73152, 4,
+ &(vtc_ee73152[0]), // expected_vtbl_contents
+ &(vtt_ee73152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73152),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1089,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4152 : cc152 {
+ int d;
+ virtual void bar(); // _ZN6dd41523barEv
+ ~dd4152(); // tgen
+ dd4152(); // tgen
+};
+//SIG(-1 dd4152) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd4152 ::bar(){vfunc_called(this, "_ZN6dd41523barEv");}
+dd4152 ::~dd4152(){ note_dtor("dd4152", this);} // tgen
+dd4152 ::dd4152(){ note_ctor("dd4152", this);} // tgen
+
+static void Test_dd4152()
+{
+ extern Class_Descriptor cd_dd4152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4152, buf);
+ dd4152 *dp, &lv = *(dp=new (buf) dd4152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd4152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(16,12), "dd4152");
+ check_base_class_offset(lv, (cc152*), 0, "dd4152");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4152.d");
+ test_class_info(&lv, &cd_dd4152);
+ dp->~dd4152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4152(Test_dd4152, "dd4152", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4152C1Ev();
+extern void _ZN6dd4152D1Ev();
+Name_Map name_map_dd4152[] = {
+ NSPAIR(_ZN6dd4152C1Ev),
+ NSPAIR(_ZN6dd4152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd4152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern void _ZN6dd41523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd4152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd4152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd4152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd4152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4152[] = {
+ {&(_ZTV6dd4152[4]), 4,16},
+ {&(_tg__ZTV5cc152__6dd4152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd4152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd4152[4]), 4,6},
+ {&(_ZTV6dd4152[9]), 9,16},
+ {&(_ZTV6dd4152[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd4152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd4152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static VTBL_ENTRY alt_thunk_names1090[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4152 = { "dd4152", // class name
+ bases_dd4152, 3,
+ &(vtc_dd4152[0]), // expected_vtbl_contents
+ &(vtt_dd4152[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4152),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1090,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04152 : dd4152 {
+ int e;
+ ~ee04152(); // tgen
+ ee04152(); // tgen
+};
+//SIG(1 ee04152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee04152 ::~ee04152(){ note_dtor("ee04152", this);} // tgen
+ee04152 ::ee04152(){ note_ctor("ee04152", this);} // tgen
+
+static void Test_ee04152()
+{
+ extern Class_Descriptor cd_ee04152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04152, buf);
+ ee04152 *dp, &lv = *(dp=new (buf) ee04152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee04152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(24,16), "ee04152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), 0, "ee04152");
+ check_base_class_offset(lv, (dd4152*), 0, "ee04152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04152.e");
+ test_class_info(&lv, &cd_ee04152);
+ dp->~ee04152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04152(Test_ee04152, "ee04152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04152C1Ev();
+extern void _ZN7ee04152D1Ev();
+Name_Map name_map_ee04152[] = {
+ NSPAIR(_ZN7ee04152C1Ev),
+ NSPAIR(_ZN7ee04152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee04152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04152[];
+extern void _ZN6dd41523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee04152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee04152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee04152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee04152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee04152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee04152[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee04152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee04152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee04152[] = {
+ {&(_ZTV7ee04152[4]), 4,16},
+ {&(_tg__ZTV6dd4152__7ee04152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee04152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee04152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee04152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee04152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee04152[4]), 4,6},
+ {&(_ZTV7ee04152[9]), 9,16},
+ {&(_ZTV7ee04152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee04152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee04152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee04152[];
+extern VTBL_ENTRY _ZTV7ee04152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04152[];
+static VTBL_ENTRY alt_thunk_names1091[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04152 = { "ee04152", // class name
+ bases_ee04152, 4,
+ &(vtc_ee04152[0]), // expected_vtbl_contents
+ &(vtt_ee04152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1091,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14152 : virtual dd4152 {
+ int e;
+ ~ee14152(); // tgen
+ ee14152(); // tgen
+};
+//SIG(1 ee14152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee14152 ::~ee14152(){ note_dtor("ee14152", this);} // tgen
+ee14152 ::ee14152(){ note_ctor("ee14152", this);} // tgen
+
+static void Test_ee14152()
+{
+ extern Class_Descriptor cd_ee14152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14152, buf);
+ ee14152 *dp, &lv = *(dp=new (buf) ee14152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee14152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(32,20), "ee14152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), ABISELECT(16,8), "ee14152");
+ check_base_class_offset(lv, (dd4152*), ABISELECT(16,8), "ee14152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14152.e");
+ test_class_info(&lv, &cd_ee14152);
+ dp->~ee14152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14152(Test_ee14152, "ee14152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14152C1Ev();
+extern void _ZN7ee14152D1Ev();
+Name_Map name_map_ee14152[] = {
+ NSPAIR(_ZN7ee14152C1Ev),
+ NSPAIR(_ZN7ee14152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee14152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14152[];
+extern void _ZN6dd41523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14152[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee14152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee14152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee14152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee14152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee14152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee14152[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee14152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee14152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee14152[] = {
+ {&(_ZTV7ee14152[5]), 5,22},
+ {&(_ZTV7ee14152[10]), 10,22},
+ {&(_ZTV7ee14152[15]), 15,22},
+ {&(_ZTV7ee14152[20]), 20,22},
+ {&(_tg__ZTV6dd4152__7ee14152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee14152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee14152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee14152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee14152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee14152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee14152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee14152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14152[];
+extern VTBL_ENTRY _ZTV7ee14152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14152[];
+static VTBL_ENTRY alt_thunk_names1092[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14152 = { "ee14152", // class name
+ bases_ee14152, 4,
+ &(vtc_ee14152[0]), // expected_vtbl_contents
+ &(vtt_ee14152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1092,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24152 : dd4152 {
+ int e;
+ virtual void foo(); // _ZN7ee241523fooEv
+ ~ee24152(); // tgen
+ ee24152(); // tgen
+};
+//SIG(1 ee24152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee24152 ::foo(){vfunc_called(this, "_ZN7ee241523fooEv");}
+ee24152 ::~ee24152(){ note_dtor("ee24152", this);} // tgen
+ee24152 ::ee24152(){ note_ctor("ee24152", this);} // tgen
+
+static void Test_ee24152()
+{
+ extern Class_Descriptor cd_ee24152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24152, buf);
+ ee24152 *dp, &lv = *(dp=new (buf) ee24152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee24152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(24,16), "ee24152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), 0, "ee24152");
+ check_base_class_offset(lv, (dd4152*), 0, "ee24152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24152.e");
+ test_class_info(&lv, &cd_ee24152);
+ dp->~ee24152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24152(Test_ee24152, "ee24152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24152C1Ev();
+extern void _ZN7ee24152D1Ev();
+Name_Map name_map_ee24152[] = {
+ NSPAIR(_ZN7ee24152C1Ev),
+ NSPAIR(_ZN7ee24152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee24152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24152[];
+extern void _ZN6dd41523barEv();
+extern void _ZN7ee241523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee241523fooEv,_ZTv0_n12_N7ee241523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee241523fooEv,_ZThn24_N7ee241523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+ (VTBL_ENTRY)&_ZN7ee241523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee241523fooEv,_ZTv0_n12_N7ee241523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee24152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee24152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee24152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee24152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee24152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee24152[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee24152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee24152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee24152[] = {
+ {&(_ZTV7ee24152[4]), 4,17},
+ {&(_tg__ZTV6dd4152__7ee24152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee24152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee24152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee24152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee24152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee24152[4]), 4,6},
+ {&(_ZTV7ee24152[10]), 10,17},
+ {&(_ZTV7ee24152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee24152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee24152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee24152[];
+extern VTBL_ENTRY _ZTV7ee24152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24152[];
+static VTBL_ENTRY alt_thunk_names1093[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee241523fooEv,_ZTv0_n12_N7ee241523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee241523fooEv,_ZThn24_N7ee241523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24152 = { "ee24152", // class name
+ bases_ee24152, 4,
+ &(vtc_ee24152[0]), // expected_vtbl_contents
+ &(vtt_ee24152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1093,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34152 : virtual dd4152 {
+ int e;
+ virtual void foo(); // _ZN7ee341523fooEv
+ ~ee34152(); // tgen
+ ee34152(); // tgen
+};
+//SIG(1 ee34152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee34152 ::foo(){vfunc_called(this, "_ZN7ee341523fooEv");}
+ee34152 ::~ee34152(){ note_dtor("ee34152", this);} // tgen
+ee34152 ::ee34152(){ note_ctor("ee34152", this);} // tgen
+
+static void Test_ee34152()
+{
+ extern Class_Descriptor cd_ee34152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34152, buf);
+ ee34152 *dp, &lv = *(dp=new (buf) ee34152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee34152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(32,20), "ee34152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), ABISELECT(16,8), "ee34152");
+ check_base_class_offset(lv, (dd4152*), ABISELECT(16,8), "ee34152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34152.e");
+ test_class_info(&lv, &cd_ee34152);
+ dp->~ee34152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34152(Test_ee34152, "ee34152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34152C1Ev();
+extern void _ZN7ee34152D1Ev();
+Name_Map name_map_ee34152[] = {
+ NSPAIR(_ZN7ee34152C1Ev),
+ NSPAIR(_ZN7ee34152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee34152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34152[];
+extern void _ZN7ee341523fooEv();
+extern void _ZN6dd41523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee341523fooEv,_ZTv0_n12_N7ee341523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee341523fooEv,_ZThn28_N7ee341523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34152[0]),
+ (VTBL_ENTRY)&_ZN7ee341523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee341523fooEv,_ZTv0_n12_N7ee341523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee34152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee34152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee34152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee34152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee34152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee34152[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee34152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee34152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee34152[] = {
+ {&(_ZTV7ee34152[5]), 5,23},
+ {&(_ZTV7ee34152[11]), 11,23},
+ {&(_ZTV7ee34152[16]), 16,23},
+ {&(_ZTV7ee34152[21]), 21,23},
+ {&(_tg__ZTV6dd4152__7ee34152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee34152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee34152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee34152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee34152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee34152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee34152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee34152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34152[];
+extern VTBL_ENTRY _ZTV7ee34152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34152[];
+static VTBL_ENTRY alt_thunk_names1094[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee341523fooEv,_ZTv0_n12_N7ee341523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee341523fooEv,_ZThn28_N7ee341523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34152 = { "ee34152", // class name
+ bases_ee34152, 4,
+ &(vtc_ee34152[0]), // expected_vtbl_contents
+ &(vtt_ee34152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34152),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1094,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44152 : dd4152 {
+ int e;
+ virtual void bar(); // _ZN7ee441523barEv
+ ~ee44152(); // tgen
+ ee44152(); // tgen
+};
+//SIG(1 ee44152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee44152 ::bar(){vfunc_called(this, "_ZN7ee441523barEv");}
+ee44152 ::~ee44152(){ note_dtor("ee44152", this);} // tgen
+ee44152 ::ee44152(){ note_ctor("ee44152", this);} // tgen
+
+static void Test_ee44152()
+{
+ extern Class_Descriptor cd_ee44152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44152, buf);
+ ee44152 *dp, &lv = *(dp=new (buf) ee44152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee44152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(24,16), "ee44152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), 0, "ee44152");
+ check_base_class_offset(lv, (dd4152*), 0, "ee44152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44152.e");
+ test_class_info(&lv, &cd_ee44152);
+ dp->~ee44152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44152(Test_ee44152, "ee44152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44152C1Ev();
+extern void _ZN7ee44152D1Ev();
+Name_Map name_map_ee44152[] = {
+ NSPAIR(_ZN7ee44152C1Ev),
+ NSPAIR(_ZN7ee44152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee44152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44152[];
+extern void _ZN7ee441523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441523barEv,_ZTv0_n16_N7ee441523barEv)();
+extern void ABISELECT(_ZThn24_N7ee441523barEv,_ZThn16_N7ee441523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee441523barEv,_ZTv0_n16_N7ee441523barEv)();
+extern void ABISELECT(_ZThn40_N7ee441523barEv,_ZThn24_N7ee441523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44152[0]),
+ (VTBL_ENTRY)&_ZN7ee441523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441523barEv,_ZTv0_n16_N7ee441523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee441523barEv,_ZTv0_n16_N7ee441523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee44152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee44152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee44152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee44152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee44152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee44152[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee44152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee44152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee44152[] = {
+ {&(_ZTV7ee44152[4]), 4,16},
+ {&(_tg__ZTV6dd4152__7ee44152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee44152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee44152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee44152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee44152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee44152[4]), 4,6},
+ {&(_ZTV7ee44152[9]), 9,16},
+ {&(_ZTV7ee44152[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee44152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee44152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee44152[];
+extern VTBL_ENTRY _ZTV7ee44152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44152[];
+static VTBL_ENTRY alt_thunk_names1095[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee441523barEv,_ZTv0_n16_N7ee441523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee441523barEv,_ZThn24_N7ee441523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee441523barEv,_ZThn16_N7ee441523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44152 = { "ee44152", // class name
+ bases_ee44152, 4,
+ &(vtc_ee44152[0]), // expected_vtbl_contents
+ &(vtt_ee44152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44152),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1095,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54152 : virtual dd4152 {
+ int e;
+ virtual void bar(); // _ZN7ee541523barEv
+ ~ee54152(); // tgen
+ ee54152(); // tgen
+};
+//SIG(1 ee54152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee54152 ::bar(){vfunc_called(this, "_ZN7ee541523barEv");}
+ee54152 ::~ee54152(){ note_dtor("ee54152", this);} // tgen
+ee54152 ::ee54152(){ note_ctor("ee54152", this);} // tgen
+
+static void Test_ee54152()
+{
+ extern Class_Descriptor cd_ee54152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54152, buf);
+ ee54152 *dp, &lv = *(dp=new (buf) ee54152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee54152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(32,20), "ee54152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), ABISELECT(16,8), "ee54152");
+ check_base_class_offset(lv, (dd4152*), ABISELECT(16,8), "ee54152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54152.e");
+ test_class_info(&lv, &cd_ee54152);
+ dp->~ee54152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54152(Test_ee54152, "ee54152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54152C1Ev();
+extern void _ZN7ee54152D1Ev();
+Name_Map name_map_ee54152[] = {
+ NSPAIR(_ZN7ee54152C1Ev),
+ NSPAIR(_ZN7ee54152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee54152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54152[];
+extern void _ZN7ee541523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee541523barEv,_ZTv0_n20_N7ee541523barEv)();
+extern void ABISELECT(_ZThn16_N7ee541523barEv,_ZThn8_N7ee541523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee541523barEv,_ZTv0_n16_N7ee541523barEv)();
+extern void ABISELECT(_ZThn32_N7ee541523barEv,_ZThn20_N7ee541523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee541523barEv,_ZTv0_n16_N7ee541523barEv)();
+extern void ABISELECT(_ZThn48_N7ee541523barEv,_ZThn28_N7ee541523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54152[0]),
+ (VTBL_ENTRY)&_ZN7ee541523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee541523barEv,_ZTv0_n20_N7ee541523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541523barEv,_ZTv0_n16_N7ee541523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee541523barEv,_ZTv0_n16_N7ee541523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee54152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee54152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee54152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee54152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee54152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee54152[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee54152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee54152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee54152[] = {
+ {&(_ZTV7ee54152[5]), 5,23},
+ {&(_ZTV7ee54152[11]), 11,23},
+ {&(_ZTV7ee54152[16]), 16,23},
+ {&(_ZTV7ee54152[21]), 21,23},
+ {&(_tg__ZTV6dd4152__7ee54152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee54152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee54152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee54152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee54152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee54152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee54152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee54152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54152[];
+extern VTBL_ENTRY _ZTV7ee54152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54152[];
+static VTBL_ENTRY alt_thunk_names1096[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee541523barEv,_ZTv0_n16_N7ee541523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee541523barEv,_ZThn28_N7ee541523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee541523barEv,_ZThn20_N7ee541523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee541523barEv,_ZTv0_n20_N7ee541523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee541523barEv,_ZThn8_N7ee541523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54152 = { "ee54152", // class name
+ bases_ee54152, 4,
+ &(vtc_ee54152[0]), // expected_vtbl_contents
+ &(vtt_ee54152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54152),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1096,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64152 : dd4152 {
+ int e;
+ virtual void foo(); // _ZN7ee641523fooEv
+ virtual void bar(); // _ZN7ee641523barEv
+ ~ee64152(); // tgen
+ ee64152(); // tgen
+};
+//SIG(1 ee64152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64152 ::foo(){vfunc_called(this, "_ZN7ee641523fooEv");}
+void ee64152 ::bar(){vfunc_called(this, "_ZN7ee641523barEv");}
+ee64152 ::~ee64152(){ note_dtor("ee64152", this);} // tgen
+ee64152 ::ee64152(){ note_ctor("ee64152", this);} // tgen
+
+static void Test_ee64152()
+{
+ extern Class_Descriptor cd_ee64152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64152, buf);
+ ee64152 *dp, &lv = *(dp=new (buf) ee64152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee64152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(24,16), "ee64152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), 0, "ee64152");
+ check_base_class_offset(lv, (dd4152*), 0, "ee64152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64152.e");
+ test_class_info(&lv, &cd_ee64152);
+ dp->~ee64152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64152(Test_ee64152, "ee64152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64152C1Ev();
+extern void _ZN7ee64152D1Ev();
+Name_Map name_map_ee64152[] = {
+ NSPAIR(_ZN7ee64152C1Ev),
+ NSPAIR(_ZN7ee64152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee64152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64152[];
+extern void _ZN7ee641523barEv();
+extern void _ZN7ee641523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee641523barEv,_ZTv0_n16_N7ee641523barEv)();
+extern void ABISELECT(_ZThn24_N7ee641523barEv,_ZThn16_N7ee641523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee641523fooEv,_ZTv0_n12_N7ee641523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee641523fooEv,_ZThn24_N7ee641523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee641523barEv,_ZTv0_n16_N7ee641523barEv)();
+extern void ABISELECT(_ZThn40_N7ee641523barEv,_ZThn24_N7ee641523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64152[0]),
+ (VTBL_ENTRY)&_ZN7ee641523barEv,
+ (VTBL_ENTRY)&_ZN7ee641523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641523barEv,_ZTv0_n16_N7ee641523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee641523fooEv,_ZTv0_n12_N7ee641523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee641523barEv,_ZTv0_n16_N7ee641523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee64152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee64152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee64152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee64152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee64152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee64152[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee64152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee64152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee64152[] = {
+ {&(_ZTV7ee64152[4]), 4,17},
+ {&(_tg__ZTV6dd4152__7ee64152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee64152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee64152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee64152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee64152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee64152[4]), 4,6},
+ {&(_ZTV7ee64152[10]), 10,17},
+ {&(_ZTV7ee64152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee64152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee64152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee64152[];
+extern VTBL_ENTRY _ZTV7ee64152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64152[];
+static VTBL_ENTRY alt_thunk_names1097[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd41523barEv,_ZThn24_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd41523barEv,_ZThn16_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee641523fooEv,_ZTv0_n12_N7ee641523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee641523fooEv,_ZThn24_N7ee641523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee641523barEv,_ZTv0_n16_N7ee641523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee641523barEv,_ZThn24_N7ee641523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee641523barEv,_ZThn16_N7ee641523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64152 = { "ee64152", // class name
+ bases_ee64152, 4,
+ &(vtc_ee64152[0]), // expected_vtbl_contents
+ &(vtt_ee64152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1097,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74152 : virtual dd4152 {
+ int e;
+ virtual void foo(); // _ZN7ee741523fooEv
+ virtual void bar(); // _ZN7ee741523barEv
+ ~ee74152(); // tgen
+ ee74152(); // tgen
+};
+//SIG(1 ee74152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74152 ::foo(){vfunc_called(this, "_ZN7ee741523fooEv");}
+void ee74152 ::bar(){vfunc_called(this, "_ZN7ee741523barEv");}
+ee74152 ::~ee74152(){ note_dtor("ee74152", this);} // tgen
+ee74152 ::ee74152(){ note_ctor("ee74152", this);} // tgen
+
+static void Test_ee74152()
+{
+ extern Class_Descriptor cd_ee74152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74152, buf);
+ ee74152 *dp, &lv = *(dp=new (buf) ee74152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee74152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd4152*), ABISELECT(32,20), "ee74152");
+ check_base_class_offset(lv, (cc152*)(dd4152*), ABISELECT(16,8), "ee74152");
+ check_base_class_offset(lv, (dd4152*), ABISELECT(16,8), "ee74152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74152.e");
+ test_class_info(&lv, &cd_ee74152);
+ dp->~ee74152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74152(Test_ee74152, "ee74152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74152C1Ev();
+extern void _ZN7ee74152D1Ev();
+Name_Map name_map_ee74152[] = {
+ NSPAIR(_ZN7ee74152C1Ev),
+ NSPAIR(_ZN7ee74152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd4152;
+extern VTBL_ENTRY _ZTI6dd4152[];
+extern VTBL_ENTRY _ZTV6dd4152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4152[];
+static Base_Class bases_ee74152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74152[];
+extern void _ZN7ee741523fooEv();
+extern void _ZN7ee741523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee741523barEv,_ZTv0_n20_N7ee741523barEv)();
+extern void ABISELECT(_ZThn16_N7ee741523barEv,_ZThn8_N7ee741523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741523barEv,_ZTv0_n16_N7ee741523barEv)();
+extern void ABISELECT(_ZThn32_N7ee741523barEv,_ZThn20_N7ee741523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee741523fooEv,_ZTv0_n12_N7ee741523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee741523fooEv,_ZThn28_N7ee741523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee741523barEv,_ZTv0_n16_N7ee741523barEv)();
+extern void ABISELECT(_ZThn48_N7ee741523barEv,_ZThn28_N7ee741523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74152[0]),
+ (VTBL_ENTRY)&_ZN7ee741523fooEv,
+ (VTBL_ENTRY)&_ZN7ee741523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee741523barEv,_ZTv0_n20_N7ee741523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741523barEv,_ZTv0_n16_N7ee741523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee741523fooEv,_ZTv0_n12_N7ee741523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee741523barEv,_ZTv0_n16_N7ee741523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74152[];
+extern void _ZN6dd41523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4152__7ee74152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN6dd41523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd4152__7ee74152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd4152__7ee74152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd4152__7ee74152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4152__7ee74152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv)();
+extern void ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4152__7ee74152[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee74152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee74152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee74152[] = {
+ {&(_ZTV7ee74152[5]), 5,24},
+ {&(_ZTV7ee74152[12]), 12,24},
+ {&(_ZTV7ee74152[17]), 17,24},
+ {&(_ZTV7ee74152[22]), 22,24},
+ {&(_tg__ZTV6dd4152__7ee74152[4]), 4,5},
+ {&(_tg__ZTV5cc1526dd4152__7ee74152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd4152__7ee74152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd4152__7ee74152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4152__7ee74152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4152__7ee74152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee74152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee74152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74152[];
+extern VTBL_ENTRY _ZTV7ee74152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74152[];
+static VTBL_ENTRY alt_thunk_names1098[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd41523barEv,_ZTv0_n16_N6dd41523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd41523barEv,_ZThn20_N6dd41523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd41523barEv,_ZThn12_N6dd41523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee741523fooEv,_ZTv0_n12_N7ee741523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee741523fooEv,_ZThn28_N7ee741523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee741523barEv,_ZTv0_n16_N7ee741523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee741523barEv,_ZThn28_N7ee741523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee741523barEv,_ZThn20_N7ee741523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee741523barEv,_ZTv0_n20_N7ee741523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee741523barEv,_ZThn8_N7ee741523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74152 = { "ee74152", // class name
+ bases_ee74152, 4,
+ &(vtc_ee74152[0]), // expected_vtbl_contents
+ &(vtt_ee74152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74152),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1098,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5152 : virtual cc152 {
+ int d;
+ virtual void bar(); // _ZN6dd51523barEv
+ ~dd5152(); // tgen
+ dd5152(); // tgen
+};
+//SIG(-1 dd5152) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void dd5152 ::bar(){vfunc_called(this, "_ZN6dd51523barEv");}
+dd5152 ::~dd5152(){ note_dtor("dd5152", this);} // tgen
+dd5152 ::dd5152(){ note_ctor("dd5152", this);} // tgen
+
+static void Test_dd5152()
+{
+ extern Class_Descriptor cd_dd5152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5152, buf);
+ dd5152 *dp, &lv = *(dp=new (buf) dd5152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd5152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,16), "dd5152");
+ check_base_class_offset(lv, (cc152*), ABISELECT(16,8), "dd5152");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5152.d");
+ test_class_info(&lv, &cd_dd5152);
+ dp->~dd5152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5152(Test_dd5152, "dd5152", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5152C1Ev();
+extern void _ZN6dd5152D1Ev();
+Name_Map name_map_dd5152[] = {
+ NSPAIR(_ZN6dd5152C1Ev),
+ NSPAIR(_ZN6dd5152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd5152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern void _ZN6dd51523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd5152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd5152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd5152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5152[] = {
+ {&(_ZTV6dd5152[5]), 5,21},
+ {&(_ZTV6dd5152[10]), 10,21},
+ {&(_ZTV6dd5152[14]), 14,21},
+ {&(_ZTV6dd5152[19]), 19,21},
+ {&(_tg__ZTV5cc152__6dd5152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd5152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd5152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd5152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd5152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static VTBL_ENTRY alt_thunk_names1099[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5152 = { "dd5152", // class name
+ bases_dd5152, 3,
+ &(vtc_dd5152[0]), // expected_vtbl_contents
+ &(vtt_dd5152[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5152),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1099,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05152 : dd5152 {
+ int e;
+ ~ee05152(); // tgen
+ ee05152(); // tgen
+};
+//SIG(1 ee05152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee05152 ::~ee05152(){ note_dtor("ee05152", this);} // tgen
+ee05152 ::ee05152(){ note_ctor("ee05152", this);} // tgen
+
+static void Test_ee05152()
+{
+ extern Class_Descriptor cd_ee05152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05152, buf);
+ ee05152 *dp, &lv = *(dp=new (buf) ee05152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee05152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee05152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(16,12), "ee05152");
+ check_base_class_offset(lv, (dd5152*), 0, "ee05152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05152.e");
+ test_class_info(&lv, &cd_ee05152);
+ dp->~ee05152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05152(Test_ee05152, "ee05152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05152C1Ev();
+extern void _ZN7ee05152D1Ev();
+Name_Map name_map_ee05152[] = {
+ NSPAIR(_ZN7ee05152C1Ev),
+ NSPAIR(_ZN7ee05152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee05152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05152[];
+extern void _ZN6dd51523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee05152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee05152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee05152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee05152[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee05152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee05152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee05152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee05152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee05152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05152[] = {
+ {&(_ZTV7ee05152[5]), 5,21},
+ {&(_tg__ZTV6dd5152__7ee05152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee05152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee05152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee05152[4]), 4,6},
+ {&(_ZTV7ee05152[10]), 10,21},
+ {&(_ZTV7ee05152[14]), 14,21},
+ {&(_ZTV7ee05152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee05152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee05152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee05152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee05152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee05152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05152[];
+extern VTBL_ENTRY _ZTV7ee05152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05152[];
+static VTBL_ENTRY alt_thunk_names1100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05152 = { "ee05152", // class name
+ bases_ee05152, 4,
+ &(vtc_ee05152[0]), // expected_vtbl_contents
+ &(vtt_ee05152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15152 : virtual dd5152 {
+ int e;
+ ~ee15152(); // tgen
+ ee15152(); // tgen
+};
+//SIG(1 ee15152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} Fi}
+
+
+ee15152 ::~ee15152(){ note_dtor("ee15152", this);} // tgen
+ee15152 ::ee15152(){ note_ctor("ee15152", this);} // tgen
+
+static void Test_ee15152()
+{
+ extern Class_Descriptor cd_ee15152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15152, buf);
+ ee15152 *dp, &lv = *(dp=new (buf) ee15152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee15152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee15152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(32,16), "ee15152");
+ check_base_class_offset(lv, (dd5152*), ABISELECT(16,8), "ee15152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15152.e");
+ test_class_info(&lv, &cd_ee15152);
+ dp->~ee15152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15152(Test_ee15152, "ee15152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15152C1Ev();
+extern void _ZN7ee15152D1Ev();
+Name_Map name_map_ee15152[] = {
+ NSPAIR(_ZN7ee15152C1Ev),
+ NSPAIR(_ZN7ee15152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee15152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15152[];
+extern void _ZN6dd51523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15152[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee15152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee15152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee15152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee15152[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee15152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee15152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee15152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee15152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee15152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15152[] = {
+ {&(_ZTV7ee15152[6]), 6,28},
+ {&(_ZTV7ee15152[12]), 12,28},
+ {&(_ZTV7ee15152[17]), 17,28},
+ {&(_ZTV7ee15152[21]), 21,28},
+ {&(_ZTV7ee15152[26]), 26,28},
+ {&(_tg__ZTV6dd5152__7ee15152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee15152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee15152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee15152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee15152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee15152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee15152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee15152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee15152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15152[];
+extern VTBL_ENTRY _ZTV7ee15152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15152[];
+static VTBL_ENTRY alt_thunk_names1101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15152 = { "ee15152", // class name
+ bases_ee15152, 4,
+ &(vtc_ee15152[0]), // expected_vtbl_contents
+ &(vtt_ee15152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15152),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25152 : dd5152 {
+ int e;
+ virtual void foo(); // _ZN7ee251523fooEv
+ ~ee25152(); // tgen
+ ee25152(); // tgen
+};
+//SIG(1 ee25152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee25152 ::foo(){vfunc_called(this, "_ZN7ee251523fooEv");}
+ee25152 ::~ee25152(){ note_dtor("ee25152", this);} // tgen
+ee25152 ::ee25152(){ note_ctor("ee25152", this);} // tgen
+
+static void Test_ee25152()
+{
+ extern Class_Descriptor cd_ee25152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25152, buf);
+ ee25152 *dp, &lv = *(dp=new (buf) ee25152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee25152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee25152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(16,12), "ee25152");
+ check_base_class_offset(lv, (dd5152*), 0, "ee25152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25152.e");
+ test_class_info(&lv, &cd_ee25152);
+ dp->~ee25152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25152(Test_ee25152, "ee25152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25152C1Ev();
+extern void _ZN7ee25152D1Ev();
+Name_Map name_map_ee25152[] = {
+ NSPAIR(_ZN7ee25152C1Ev),
+ NSPAIR(_ZN7ee25152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee25152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25152[];
+extern void _ZN6dd51523barEv();
+extern void _ZN7ee251523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee251523fooEv,_ZTv0_n12_N7ee251523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee251523fooEv,_ZThn28_N7ee251523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+ (VTBL_ENTRY)&_ZN7ee251523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee251523fooEv,_ZTv0_n12_N7ee251523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee25152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee25152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee25152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee25152[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee25152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee25152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee25152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee25152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee25152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25152[] = {
+ {&(_ZTV7ee25152[5]), 5,22},
+ {&(_tg__ZTV6dd5152__7ee25152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee25152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee25152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee25152[4]), 4,6},
+ {&(_ZTV7ee25152[11]), 11,22},
+ {&(_ZTV7ee25152[15]), 15,22},
+ {&(_ZTV7ee25152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee25152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee25152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee25152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee25152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee25152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25152[];
+extern VTBL_ENTRY _ZTV7ee25152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25152[];
+static VTBL_ENTRY alt_thunk_names1102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee251523fooEv,_ZTv0_n12_N7ee251523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee251523fooEv,_ZThn28_N7ee251523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25152 = { "ee25152", // class name
+ bases_ee25152, 4,
+ &(vtc_ee25152[0]), // expected_vtbl_contents
+ &(vtt_ee25152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35152 : virtual dd5152 {
+ int e;
+ virtual void foo(); // _ZN7ee351523fooEv
+ ~ee35152(); // tgen
+ ee35152(); // tgen
+};
+//SIG(1 ee35152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 Fi}
+
+
+void ee35152 ::foo(){vfunc_called(this, "_ZN7ee351523fooEv");}
+ee35152 ::~ee35152(){ note_dtor("ee35152", this);} // tgen
+ee35152 ::ee35152(){ note_ctor("ee35152", this);} // tgen
+
+static void Test_ee35152()
+{
+ extern Class_Descriptor cd_ee35152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35152, buf);
+ ee35152 *dp, &lv = *(dp=new (buf) ee35152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee35152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee35152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(32,16), "ee35152");
+ check_base_class_offset(lv, (dd5152*), ABISELECT(16,8), "ee35152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35152.e");
+ test_class_info(&lv, &cd_ee35152);
+ dp->~ee35152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35152(Test_ee35152, "ee35152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35152C1Ev();
+extern void _ZN7ee35152D1Ev();
+Name_Map name_map_ee35152[] = {
+ NSPAIR(_ZN7ee35152C1Ev),
+ NSPAIR(_ZN7ee35152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee35152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35152[];
+extern void _ZN7ee351523fooEv();
+extern void _ZN6dd51523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee351523fooEv,_ZTv0_n12_N7ee351523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee351523fooEv,_ZThn32_N7ee351523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35152[0]),
+ (VTBL_ENTRY)&_ZN7ee351523fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee351523fooEv,_ZTv0_n12_N7ee351523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee35152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee35152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee35152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee35152[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee35152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee35152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee35152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee35152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee35152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35152[] = {
+ {&(_ZTV7ee35152[6]), 6,29},
+ {&(_ZTV7ee35152[13]), 13,29},
+ {&(_ZTV7ee35152[18]), 18,29},
+ {&(_ZTV7ee35152[22]), 22,29},
+ {&(_ZTV7ee35152[27]), 27,29},
+ {&(_tg__ZTV6dd5152__7ee35152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee35152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee35152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee35152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee35152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee35152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee35152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee35152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee35152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35152[];
+extern VTBL_ENTRY _ZTV7ee35152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35152[];
+static VTBL_ENTRY alt_thunk_names1103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee351523fooEv,_ZTv0_n12_N7ee351523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee351523fooEv,_ZThn32_N7ee351523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35152 = { "ee35152", // class name
+ bases_ee35152, 4,
+ &(vtc_ee35152[0]), // expected_vtbl_contents
+ &(vtt_ee35152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35152),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45152 : dd5152 {
+ int e;
+ virtual void bar(); // _ZN7ee451523barEv
+ ~ee45152(); // tgen
+ ee45152(); // tgen
+};
+//SIG(1 ee45152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee45152 ::bar(){vfunc_called(this, "_ZN7ee451523barEv");}
+ee45152 ::~ee45152(){ note_dtor("ee45152", this);} // tgen
+ee45152 ::ee45152(){ note_ctor("ee45152", this);} // tgen
+
+static void Test_ee45152()
+{
+ extern Class_Descriptor cd_ee45152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45152, buf);
+ ee45152 *dp, &lv = *(dp=new (buf) ee45152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee45152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee45152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(16,12), "ee45152");
+ check_base_class_offset(lv, (dd5152*), 0, "ee45152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45152.e");
+ test_class_info(&lv, &cd_ee45152);
+ dp->~ee45152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45152(Test_ee45152, "ee45152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45152C1Ev();
+extern void _ZN7ee45152D1Ev();
+Name_Map name_map_ee45152[] = {
+ NSPAIR(_ZN7ee45152C1Ev),
+ NSPAIR(_ZN7ee45152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee45152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45152[];
+extern void _ZN7ee451523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451523barEv,_ZTv0_n16_N7ee451523barEv)();
+extern void ABISELECT(_ZThn32_N7ee451523barEv,_ZThn20_N7ee451523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee451523barEv,_ZTv0_n16_N7ee451523barEv)();
+extern void ABISELECT(_ZThn48_N7ee451523barEv,_ZThn28_N7ee451523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45152[0]),
+ (VTBL_ENTRY)&_ZN7ee451523barEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451523barEv,_ZTv0_n16_N7ee451523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee451523barEv,_ZTv0_n16_N7ee451523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee45152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee45152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee45152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee45152[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee45152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee45152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee45152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee45152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee45152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45152[] = {
+ {&(_ZTV7ee45152[5]), 5,21},
+ {&(_tg__ZTV6dd5152__7ee45152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee45152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee45152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee45152[4]), 4,6},
+ {&(_ZTV7ee45152[10]), 10,21},
+ {&(_ZTV7ee45152[14]), 14,21},
+ {&(_ZTV7ee45152[19]), 19,21},
+ {&(_tg__ZTV5cc152__7ee45152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee45152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee45152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee45152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee45152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45152[];
+extern VTBL_ENTRY _ZTV7ee45152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45152[];
+static VTBL_ENTRY alt_thunk_names1104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee451523barEv,_ZTv0_n16_N7ee451523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee451523barEv,_ZThn28_N7ee451523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee451523barEv,_ZThn20_N7ee451523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45152 = { "ee45152", // class name
+ bases_ee45152, 4,
+ &(vtc_ee45152[0]), // expected_vtbl_contents
+ &(vtt_ee45152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45152),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55152 : virtual dd5152 {
+ int e;
+ virtual void bar(); // _ZN7ee551523barEv
+ ~ee55152(); // tgen
+ ee55152(); // tgen
+};
+//SIG(1 ee55152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 Fi} v1 Fi}
+
+
+void ee55152 ::bar(){vfunc_called(this, "_ZN7ee551523barEv");}
+ee55152 ::~ee55152(){ note_dtor("ee55152", this);} // tgen
+ee55152 ::ee55152(){ note_ctor("ee55152", this);} // tgen
+
+static void Test_ee55152()
+{
+ extern Class_Descriptor cd_ee55152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55152, buf);
+ ee55152 *dp, &lv = *(dp=new (buf) ee55152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee55152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee55152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(32,16), "ee55152");
+ check_base_class_offset(lv, (dd5152*), ABISELECT(16,8), "ee55152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55152.e");
+ test_class_info(&lv, &cd_ee55152);
+ dp->~ee55152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55152(Test_ee55152, "ee55152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55152C1Ev();
+extern void _ZN7ee55152D1Ev();
+Name_Map name_map_ee55152[] = {
+ NSPAIR(_ZN7ee55152C1Ev),
+ NSPAIR(_ZN7ee55152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee55152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55152[];
+extern void _ZN7ee551523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee551523barEv,_ZTv0_n24_N7ee551523barEv)();
+extern void ABISELECT(_ZThn16_N7ee551523barEv,_ZThn8_N7ee551523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee551523barEv,_ZTv0_n16_N7ee551523barEv)();
+extern void ABISELECT(_ZThn48_N7ee551523barEv,_ZThn24_N7ee551523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee551523barEv,_ZTv0_n16_N7ee551523barEv)();
+extern void ABISELECT(_ZThn64_N7ee551523barEv,_ZThn32_N7ee551523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55152[0]),
+ (VTBL_ENTRY)&_ZN7ee551523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee551523barEv,_ZTv0_n24_N7ee551523barEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551523barEv,_ZTv0_n16_N7ee551523barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee551523barEv,_ZTv0_n16_N7ee551523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee55152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee55152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee55152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee55152[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee55152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee55152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee55152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee55152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee55152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55152[] = {
+ {&(_ZTV7ee55152[6]), 6,29},
+ {&(_ZTV7ee55152[13]), 13,29},
+ {&(_ZTV7ee55152[18]), 18,29},
+ {&(_ZTV7ee55152[22]), 22,29},
+ {&(_ZTV7ee55152[27]), 27,29},
+ {&(_tg__ZTV6dd5152__7ee55152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee55152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee55152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee55152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee55152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee55152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee55152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee55152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee55152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55152[];
+extern VTBL_ENTRY _ZTV7ee55152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55152[];
+static VTBL_ENTRY alt_thunk_names1105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee551523barEv,_ZTv0_n16_N7ee551523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee551523barEv,_ZThn32_N7ee551523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee551523barEv,_ZThn24_N7ee551523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee551523barEv,_ZTv0_n24_N7ee551523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee551523barEv,_ZThn8_N7ee551523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55152 = { "ee55152", // class name
+ bases_ee55152, 4,
+ &(vtc_ee55152[0]), // expected_vtbl_contents
+ &(vtt_ee55152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55152),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65152 : dd5152 {
+ int e;
+ virtual void foo(); // _ZN7ee651523fooEv
+ virtual void bar(); // _ZN7ee651523barEv
+ ~ee65152(); // tgen
+ ee65152(); // tgen
+};
+//SIG(1 ee65152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65152 ::foo(){vfunc_called(this, "_ZN7ee651523fooEv");}
+void ee65152 ::bar(){vfunc_called(this, "_ZN7ee651523barEv");}
+ee65152 ::~ee65152(){ note_dtor("ee65152", this);} // tgen
+ee65152 ::ee65152(){ note_ctor("ee65152", this);} // tgen
+
+static void Test_ee65152()
+{
+ extern Class_Descriptor cd_ee65152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65152, buf);
+ ee65152 *dp, &lv = *(dp=new (buf) ee65152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee65152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee65152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(16,12), "ee65152");
+ check_base_class_offset(lv, (dd5152*), 0, "ee65152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65152.e");
+ test_class_info(&lv, &cd_ee65152);
+ dp->~ee65152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65152(Test_ee65152, "ee65152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65152C1Ev();
+extern void _ZN7ee65152D1Ev();
+Name_Map name_map_ee65152[] = {
+ NSPAIR(_ZN7ee65152C1Ev),
+ NSPAIR(_ZN7ee65152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee65152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65152[];
+extern void _ZN7ee651523barEv();
+extern void _ZN7ee651523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee651523barEv,_ZTv0_n16_N7ee651523barEv)();
+extern void ABISELECT(_ZThn32_N7ee651523barEv,_ZThn20_N7ee651523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee651523fooEv,_ZTv0_n12_N7ee651523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee651523fooEv,_ZThn28_N7ee651523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee651523barEv,_ZTv0_n16_N7ee651523barEv)();
+extern void ABISELECT(_ZThn48_N7ee651523barEv,_ZThn28_N7ee651523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65152[0]),
+ (VTBL_ENTRY)&_ZN7ee651523barEv,
+ (VTBL_ENTRY)&_ZN7ee651523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651523barEv,_ZTv0_n16_N7ee651523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee651523fooEv,_ZTv0_n12_N7ee651523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee651523barEv,_ZTv0_n16_N7ee651523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee65152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee65152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee65152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee65152[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee65152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee65152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee65152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee65152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee65152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65152[] = {
+ {&(_ZTV7ee65152[5]), 5,22},
+ {&(_tg__ZTV6dd5152__7ee65152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee65152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee65152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee65152[4]), 4,6},
+ {&(_ZTV7ee65152[11]), 11,22},
+ {&(_ZTV7ee65152[15]), 15,22},
+ {&(_ZTV7ee65152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee65152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee65152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee65152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee65152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee65152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65152[];
+extern VTBL_ENTRY _ZTV7ee65152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65152[];
+static VTBL_ENTRY alt_thunk_names1106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn28_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn20_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee651523fooEv,_ZTv0_n12_N7ee651523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee651523fooEv,_ZThn28_N7ee651523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee651523barEv,_ZTv0_n16_N7ee651523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee651523barEv,_ZThn28_N7ee651523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee651523barEv,_ZThn20_N7ee651523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65152 = { "ee65152", // class name
+ bases_ee65152, 4,
+ &(vtc_ee65152[0]), // expected_vtbl_contents
+ &(vtt_ee65152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75152 : virtual dd5152 {
+ int e;
+ virtual void foo(); // _ZN7ee751523fooEv
+ virtual void bar(); // _ZN7ee751523barEv
+ ~ee75152(); // tgen
+ ee75152(); // tgen
+};
+//SIG(1 ee75152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75152 ::foo(){vfunc_called(this, "_ZN7ee751523fooEv");}
+void ee75152 ::bar(){vfunc_called(this, "_ZN7ee751523barEv");}
+ee75152 ::~ee75152(){ note_dtor("ee75152", this);} // tgen
+ee75152 ::ee75152(){ note_ctor("ee75152", this);} // tgen
+
+static void Test_ee75152()
+{
+ extern Class_Descriptor cd_ee75152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75152, buf);
+ ee75152 *dp, &lv = *(dp=new (buf) ee75152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee75152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee75152");
+ check_base_class_offset(lv, (cc152*)(dd5152*), ABISELECT(32,16), "ee75152");
+ check_base_class_offset(lv, (dd5152*), ABISELECT(16,8), "ee75152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75152.e");
+ test_class_info(&lv, &cd_ee75152);
+ dp->~ee75152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75152(Test_ee75152, "ee75152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75152C1Ev();
+extern void _ZN7ee75152D1Ev();
+Name_Map name_map_ee75152[] = {
+ NSPAIR(_ZN7ee75152C1Ev),
+ NSPAIR(_ZN7ee75152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd5152;
+extern VTBL_ENTRY _ZTI6dd5152[];
+extern VTBL_ENTRY _ZTV6dd5152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5152[];
+static Base_Class bases_ee75152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5152, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75152[];
+extern void _ZN7ee751523fooEv();
+extern void _ZN7ee751523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee751523barEv,_ZTv0_n24_N7ee751523barEv)();
+extern void ABISELECT(_ZThn16_N7ee751523barEv,_ZThn8_N7ee751523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751523barEv,_ZTv0_n16_N7ee751523barEv)();
+extern void ABISELECT(_ZThn48_N7ee751523barEv,_ZThn24_N7ee751523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee751523fooEv,_ZTv0_n12_N7ee751523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee751523fooEv,_ZThn32_N7ee751523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee751523barEv,_ZTv0_n16_N7ee751523barEv)();
+extern void ABISELECT(_ZThn64_N7ee751523barEv,_ZThn32_N7ee751523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75152[0]),
+ (VTBL_ENTRY)&_ZN7ee751523fooEv,
+ (VTBL_ENTRY)&_ZN7ee751523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee751523barEv,_ZTv0_n24_N7ee751523barEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751523barEv,_ZTv0_n16_N7ee751523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee751523fooEv,_ZTv0_n12_N7ee751523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee751523barEv,_ZTv0_n16_N7ee751523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75152[];
+extern void _ZN6dd51523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5152__7ee75152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN6dd51523barEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd5152__7ee75152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5152__7ee75152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv)();
+extern void ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5152__7ee75152[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee75152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee75152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee75152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee75152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee75152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75152[] = {
+ {&(_ZTV7ee75152[6]), 6,30},
+ {&(_ZTV7ee75152[14]), 14,30},
+ {&(_ZTV7ee75152[19]), 19,30},
+ {&(_ZTV7ee75152[23]), 23,30},
+ {&(_ZTV7ee75152[28]), 28,30},
+ {&(_tg__ZTV6dd5152__7ee75152[5]), 5,6},
+ {&(_tg__ZTV5cc152__6dd5152__7ee75152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd5152__7ee75152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5152__7ee75152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee75152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee75152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee75152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee75152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee75152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75152[];
+extern VTBL_ENTRY _ZTV7ee75152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75152[];
+static VTBL_ENTRY alt_thunk_names1107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd51523barEv,_ZTv0_n16_N6dd51523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd51523barEv,_ZThn24_N6dd51523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd51523barEv,_ZThn16_N6dd51523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee751523fooEv,_ZTv0_n12_N7ee751523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee751523fooEv,_ZThn32_N7ee751523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee751523barEv,_ZTv0_n16_N7ee751523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee751523barEv,_ZThn32_N7ee751523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee751523barEv,_ZThn24_N7ee751523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee751523barEv,_ZTv0_n24_N7ee751523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee751523barEv,_ZThn8_N7ee751523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75152 = { "ee75152", // class name
+ bases_ee75152, 4,
+ &(vtc_ee75152[0]), // expected_vtbl_contents
+ &(vtt_ee75152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75152),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6152 : cc152 {
+ int d;
+ virtual void bar(); // _ZN6dd61523barEv
+ virtual void foo(); // _ZN6dd61523fooEv
+ ~dd6152(); // tgen
+ dd6152(); // tgen
+};
+//SIG(-1 dd6152) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd6152 ::bar(){vfunc_called(this, "_ZN6dd61523barEv");}
+void dd6152 ::foo(){vfunc_called(this, "_ZN6dd61523fooEv");}
+dd6152 ::~dd6152(){ note_dtor("dd6152", this);} // tgen
+dd6152 ::dd6152(){ note_ctor("dd6152", this);} // tgen
+
+static void Test_dd6152()
+{
+ extern Class_Descriptor cd_dd6152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6152, buf);
+ dd6152 *dp, &lv = *(dp=new (buf) dd6152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd6152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(16,12), "dd6152");
+ check_base_class_offset(lv, (cc152*), 0, "dd6152");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6152.d");
+ test_class_info(&lv, &cd_dd6152);
+ dp->~dd6152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6152(Test_dd6152, "dd6152", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6152C1Ev();
+extern void _ZN6dd6152D1Ev();
+Name_Map name_map_dd6152[] = {
+ NSPAIR(_ZN6dd6152C1Ev),
+ NSPAIR(_ZN6dd6152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd6152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd6152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd6152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd6152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd6152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6152[] = {
+ {&(_ZTV6dd6152[4]), 4,17},
+ {&(_tg__ZTV5cc152__6dd6152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd6152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd6152[4]), 4,6},
+ {&(_ZTV6dd6152[10]), 10,17},
+ {&(_ZTV6dd6152[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd6152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd6152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static VTBL_ENTRY alt_thunk_names1108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6152 = { "dd6152", // class name
+ bases_dd6152, 3,
+ &(vtc_dd6152[0]), // expected_vtbl_contents
+ &(vtt_dd6152[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6152),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06152 : dd6152 {
+ int e;
+ ~ee06152(); // tgen
+ ee06152(); // tgen
+};
+//SIG(1 ee06152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee06152 ::~ee06152(){ note_dtor("ee06152", this);} // tgen
+ee06152 ::ee06152(){ note_ctor("ee06152", this);} // tgen
+
+static void Test_ee06152()
+{
+ extern Class_Descriptor cd_ee06152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06152, buf);
+ ee06152 *dp, &lv = *(dp=new (buf) ee06152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee06152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(24,16), "ee06152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), 0, "ee06152");
+ check_base_class_offset(lv, (dd6152*), 0, "ee06152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06152.e");
+ test_class_info(&lv, &cd_ee06152);
+ dp->~ee06152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06152(Test_ee06152, "ee06152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06152C1Ev();
+extern void _ZN7ee06152D1Ev();
+Name_Map name_map_ee06152[] = {
+ NSPAIR(_ZN7ee06152C1Ev),
+ NSPAIR(_ZN7ee06152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee06152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee06152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee06152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee06152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee06152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee06152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee06152[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee06152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee06152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee06152[] = {
+ {&(_ZTV7ee06152[4]), 4,17},
+ {&(_tg__ZTV6dd6152__7ee06152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee06152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee06152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee06152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee06152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee06152[4]), 4,6},
+ {&(_ZTV7ee06152[10]), 10,17},
+ {&(_ZTV7ee06152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee06152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee06152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee06152[];
+extern VTBL_ENTRY _ZTV7ee06152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06152[];
+static VTBL_ENTRY alt_thunk_names1109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06152 = { "ee06152", // class name
+ bases_ee06152, 4,
+ &(vtc_ee06152[0]), // expected_vtbl_contents
+ &(vtt_ee06152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16152 : virtual dd6152 {
+ int e;
+ ~ee16152(); // tgen
+ ee16152(); // tgen
+};
+//SIG(1 ee16152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee16152 ::~ee16152(){ note_dtor("ee16152", this);} // tgen
+ee16152 ::ee16152(){ note_ctor("ee16152", this);} // tgen
+
+static void Test_ee16152()
+{
+ extern Class_Descriptor cd_ee16152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16152, buf);
+ ee16152 *dp, &lv = *(dp=new (buf) ee16152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee16152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(32,20), "ee16152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), ABISELECT(16,8), "ee16152");
+ check_base_class_offset(lv, (dd6152*), ABISELECT(16,8), "ee16152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16152.e");
+ test_class_info(&lv, &cd_ee16152);
+ dp->~ee16152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16152(Test_ee16152, "ee16152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16152C1Ev();
+extern void _ZN7ee16152D1Ev();
+Name_Map name_map_ee16152[] = {
+ NSPAIR(_ZN7ee16152C1Ev),
+ NSPAIR(_ZN7ee16152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee16152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16152[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee16152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee16152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee16152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee16152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee16152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee16152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee16152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee16152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee16152[] = {
+ {&(_ZTV7ee16152[5]), 5,24},
+ {&(_ZTV7ee16152[11]), 11,24},
+ {&(_ZTV7ee16152[17]), 17,24},
+ {&(_ZTV7ee16152[22]), 22,24},
+ {&(_tg__ZTV6dd6152__7ee16152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee16152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee16152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee16152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee16152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee16152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee16152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee16152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16152[];
+extern VTBL_ENTRY _ZTV7ee16152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16152[];
+static VTBL_ENTRY alt_thunk_names1110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16152 = { "ee16152", // class name
+ bases_ee16152, 4,
+ &(vtc_ee16152[0]), // expected_vtbl_contents
+ &(vtt_ee16152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16152),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1110,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26152 : dd6152 {
+ int e;
+ virtual void foo(); // _ZN7ee261523fooEv
+ ~ee26152(); // tgen
+ ee26152(); // tgen
+};
+//SIG(1 ee26152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26152 ::foo(){vfunc_called(this, "_ZN7ee261523fooEv");}
+ee26152 ::~ee26152(){ note_dtor("ee26152", this);} // tgen
+ee26152 ::ee26152(){ note_ctor("ee26152", this);} // tgen
+
+static void Test_ee26152()
+{
+ extern Class_Descriptor cd_ee26152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26152, buf);
+ ee26152 *dp, &lv = *(dp=new (buf) ee26152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee26152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(24,16), "ee26152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), 0, "ee26152");
+ check_base_class_offset(lv, (dd6152*), 0, "ee26152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26152.e");
+ test_class_info(&lv, &cd_ee26152);
+ dp->~ee26152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26152(Test_ee26152, "ee26152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26152C1Ev();
+extern void _ZN7ee26152D1Ev();
+Name_Map name_map_ee26152[] = {
+ NSPAIR(_ZN7ee26152C1Ev),
+ NSPAIR(_ZN7ee26152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee26152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN7ee261523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee261523fooEv,_ZTv0_n12_N7ee261523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee261523fooEv,_ZThn24_N7ee261523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN7ee261523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee261523fooEv,_ZTv0_n12_N7ee261523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee26152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee26152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee26152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee26152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee26152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee26152[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee26152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee26152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee26152[] = {
+ {&(_ZTV7ee26152[4]), 4,17},
+ {&(_tg__ZTV6dd6152__7ee26152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee26152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee26152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee26152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee26152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee26152[4]), 4,6},
+ {&(_ZTV7ee26152[10]), 10,17},
+ {&(_ZTV7ee26152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee26152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee26152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee26152[];
+extern VTBL_ENTRY _ZTV7ee26152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26152[];
+static VTBL_ENTRY alt_thunk_names1111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee261523fooEv,_ZTv0_n12_N7ee261523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee261523fooEv,_ZThn24_N7ee261523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26152 = { "ee26152", // class name
+ bases_ee26152, 4,
+ &(vtc_ee26152[0]), // expected_vtbl_contents
+ &(vtt_ee26152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1111,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36152 : virtual dd6152 {
+ int e;
+ virtual void foo(); // _ZN7ee361523fooEv
+ ~ee36152(); // tgen
+ ee36152(); // tgen
+};
+//SIG(1 ee36152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36152 ::foo(){vfunc_called(this, "_ZN7ee361523fooEv");}
+ee36152 ::~ee36152(){ note_dtor("ee36152", this);} // tgen
+ee36152 ::ee36152(){ note_ctor("ee36152", this);} // tgen
+
+static void Test_ee36152()
+{
+ extern Class_Descriptor cd_ee36152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36152, buf);
+ ee36152 *dp, &lv = *(dp=new (buf) ee36152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee36152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(32,20), "ee36152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), ABISELECT(16,8), "ee36152");
+ check_base_class_offset(lv, (dd6152*), ABISELECT(16,8), "ee36152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36152.e");
+ test_class_info(&lv, &cd_ee36152);
+ dp->~ee36152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36152(Test_ee36152, "ee36152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36152C1Ev();
+extern void _ZN7ee36152D1Ev();
+Name_Map name_map_ee36152[] = {
+ NSPAIR(_ZN7ee36152C1Ev),
+ NSPAIR(_ZN7ee36152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee36152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36152[];
+extern void _ZN7ee361523fooEv();
+extern void _ZN6dd61523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee361523fooEv,_ZTv0_n24_N7ee361523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee361523fooEv,_ZThn8_N7ee361523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee361523fooEv,_ZTv0_n12_N7ee361523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee361523fooEv,_ZThn28_N7ee361523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36152[0]),
+ (VTBL_ENTRY)&_ZN7ee361523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee361523fooEv,_ZTv0_n24_N7ee361523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee361523fooEv,_ZTv0_n12_N7ee361523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee36152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee36152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee36152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee36152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee36152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee36152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee36152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee36152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee36152[] = {
+ {&(_ZTV7ee36152[5]), 5,25},
+ {&(_ZTV7ee36152[12]), 12,25},
+ {&(_ZTV7ee36152[18]), 18,25},
+ {&(_ZTV7ee36152[23]), 23,25},
+ {&(_tg__ZTV6dd6152__7ee36152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee36152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee36152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee36152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee36152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee36152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee36152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee36152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36152[];
+extern VTBL_ENTRY _ZTV7ee36152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36152[];
+static VTBL_ENTRY alt_thunk_names1112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee361523fooEv,_ZTv0_n12_N7ee361523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee361523fooEv,_ZThn28_N7ee361523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee361523fooEv,_ZTv0_n24_N7ee361523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee361523fooEv,_ZThn8_N7ee361523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36152 = { "ee36152", // class name
+ bases_ee36152, 4,
+ &(vtc_ee36152[0]), // expected_vtbl_contents
+ &(vtt_ee36152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36152),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1112,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46152 : dd6152 {
+ int e;
+ virtual void bar(); // _ZN7ee461523barEv
+ ~ee46152(); // tgen
+ ee46152(); // tgen
+};
+//SIG(1 ee46152) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46152 ::bar(){vfunc_called(this, "_ZN7ee461523barEv");}
+ee46152 ::~ee46152(){ note_dtor("ee46152", this);} // tgen
+ee46152 ::ee46152(){ note_ctor("ee46152", this);} // tgen
+
+static void Test_ee46152()
+{
+ extern Class_Descriptor cd_ee46152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46152, buf);
+ ee46152 *dp, &lv = *(dp=new (buf) ee46152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee46152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(24,16), "ee46152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), 0, "ee46152");
+ check_base_class_offset(lv, (dd6152*), 0, "ee46152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46152.e");
+ test_class_info(&lv, &cd_ee46152);
+ dp->~ee46152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46152(Test_ee46152, "ee46152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46152C1Ev();
+extern void _ZN7ee46152D1Ev();
+Name_Map name_map_ee46152[] = {
+ NSPAIR(_ZN7ee46152C1Ev),
+ NSPAIR(_ZN7ee46152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee46152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46152[];
+extern void _ZN7ee461523barEv();
+extern void _ZN6dd61523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee461523barEv,_ZTv0_n16_N7ee461523barEv)();
+extern void ABISELECT(_ZThn24_N7ee461523barEv,_ZThn16_N7ee461523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee461523barEv,_ZTv0_n16_N7ee461523barEv)();
+extern void ABISELECT(_ZThn40_N7ee461523barEv,_ZThn24_N7ee461523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46152[0]),
+ (VTBL_ENTRY)&_ZN7ee461523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461523barEv,_ZTv0_n16_N7ee461523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee461523barEv,_ZTv0_n16_N7ee461523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee46152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee46152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee46152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee46152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee46152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee46152[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee46152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee46152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee46152[] = {
+ {&(_ZTV7ee46152[4]), 4,17},
+ {&(_tg__ZTV6dd6152__7ee46152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee46152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee46152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee46152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee46152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee46152[4]), 4,6},
+ {&(_ZTV7ee46152[10]), 10,17},
+ {&(_ZTV7ee46152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee46152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee46152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee46152[];
+extern VTBL_ENTRY _ZTV7ee46152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46152[];
+static VTBL_ENTRY alt_thunk_names1113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee461523barEv,_ZTv0_n16_N7ee461523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee461523barEv,_ZThn24_N7ee461523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee461523barEv,_ZThn16_N7ee461523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46152 = { "ee46152", // class name
+ bases_ee46152, 4,
+ &(vtc_ee46152[0]), // expected_vtbl_contents
+ &(vtt_ee46152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1113,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56152 : virtual dd6152 {
+ int e;
+ virtual void bar(); // _ZN7ee561523barEv
+ ~ee56152(); // tgen
+ ee56152(); // tgen
+};
+//SIG(1 ee56152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56152 ::bar(){vfunc_called(this, "_ZN7ee561523barEv");}
+ee56152 ::~ee56152(){ note_dtor("ee56152", this);} // tgen
+ee56152 ::ee56152(){ note_ctor("ee56152", this);} // tgen
+
+static void Test_ee56152()
+{
+ extern Class_Descriptor cd_ee56152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56152, buf);
+ ee56152 *dp, &lv = *(dp=new (buf) ee56152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee56152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(32,20), "ee56152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), ABISELECT(16,8), "ee56152");
+ check_base_class_offset(lv, (dd6152*), ABISELECT(16,8), "ee56152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56152.e");
+ test_class_info(&lv, &cd_ee56152);
+ dp->~ee56152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56152(Test_ee56152, "ee56152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56152C1Ev();
+extern void _ZN7ee56152D1Ev();
+Name_Map name_map_ee56152[] = {
+ NSPAIR(_ZN7ee56152C1Ev),
+ NSPAIR(_ZN7ee56152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee56152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56152[];
+extern void _ZN7ee561523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee561523barEv,_ZTv0_n20_N7ee561523barEv)();
+extern void ABISELECT(_ZThn16_N7ee561523barEv,_ZThn8_N7ee561523barEv)() __attribute__((weak));
+extern void _ZN6dd61523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee561523barEv,_ZTv0_n16_N7ee561523barEv)();
+extern void ABISELECT(_ZThn32_N7ee561523barEv,_ZThn20_N7ee561523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee561523barEv,_ZTv0_n16_N7ee561523barEv)();
+extern void ABISELECT(_ZThn48_N7ee561523barEv,_ZThn28_N7ee561523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56152[0]),
+ (VTBL_ENTRY)&_ZN7ee561523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee561523barEv,_ZTv0_n20_N7ee561523barEv),
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561523barEv,_ZTv0_n16_N7ee561523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee561523barEv,_ZTv0_n16_N7ee561523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee56152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee56152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee56152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee56152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee56152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee56152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee56152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee56152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee56152[] = {
+ {&(_ZTV7ee56152[5]), 5,25},
+ {&(_ZTV7ee56152[12]), 12,25},
+ {&(_ZTV7ee56152[18]), 18,25},
+ {&(_ZTV7ee56152[23]), 23,25},
+ {&(_tg__ZTV6dd6152__7ee56152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee56152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee56152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee56152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee56152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee56152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee56152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee56152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56152[];
+extern VTBL_ENTRY _ZTV7ee56152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56152[];
+static VTBL_ENTRY alt_thunk_names1114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee561523barEv,_ZTv0_n16_N7ee561523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee561523barEv,_ZThn28_N7ee561523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee561523barEv,_ZThn20_N7ee561523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee561523barEv,_ZTv0_n20_N7ee561523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee561523barEv,_ZThn8_N7ee561523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56152 = { "ee56152", // class name
+ bases_ee56152, 4,
+ &(vtc_ee56152[0]), // expected_vtbl_contents
+ &(vtt_ee56152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56152),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66152 : dd6152 {
+ int e;
+ virtual void foo(); // _ZN7ee661523fooEv
+ virtual void bar(); // _ZN7ee661523barEv
+ ~ee66152(); // tgen
+ ee66152(); // tgen
+};
+//SIG(1 ee66152) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66152 ::foo(){vfunc_called(this, "_ZN7ee661523fooEv");}
+void ee66152 ::bar(){vfunc_called(this, "_ZN7ee661523barEv");}
+ee66152 ::~ee66152(){ note_dtor("ee66152", this);} // tgen
+ee66152 ::ee66152(){ note_ctor("ee66152", this);} // tgen
+
+static void Test_ee66152()
+{
+ extern Class_Descriptor cd_ee66152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66152, buf);
+ ee66152 *dp, &lv = *(dp=new (buf) ee66152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee66152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(24,16), "ee66152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), 0, "ee66152");
+ check_base_class_offset(lv, (dd6152*), 0, "ee66152");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66152.e");
+ test_class_info(&lv, &cd_ee66152);
+ dp->~ee66152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66152(Test_ee66152, "ee66152", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66152C1Ev();
+extern void _ZN7ee66152D1Ev();
+Name_Map name_map_ee66152[] = {
+ NSPAIR(_ZN7ee66152C1Ev),
+ NSPAIR(_ZN7ee66152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee66152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66152[];
+extern void _ZN7ee661523barEv();
+extern void _ZN7ee661523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee661523barEv,_ZTv0_n16_N7ee661523barEv)();
+extern void ABISELECT(_ZThn24_N7ee661523barEv,_ZThn16_N7ee661523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee661523fooEv,_ZTv0_n12_N7ee661523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee661523fooEv,_ZThn24_N7ee661523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee661523barEv,_ZTv0_n16_N7ee661523barEv)();
+extern void ABISELECT(_ZThn40_N7ee661523barEv,_ZThn24_N7ee661523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66152[0]),
+ (VTBL_ENTRY)&_ZN7ee661523barEv,
+ (VTBL_ENTRY)&_ZN7ee661523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661523barEv,_ZTv0_n16_N7ee661523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee661523fooEv,_ZTv0_n12_N7ee661523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee661523barEv,_ZTv0_n16_N7ee661523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee66152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee66152[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee66152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee66152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee66152[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee66152[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee66152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee66152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee66152[] = {
+ {&(_ZTV7ee66152[4]), 4,17},
+ {&(_tg__ZTV6dd6152__7ee66152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee66152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee66152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee66152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee66152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee66152[4]), 4,6},
+ {&(_ZTV7ee66152[10]), 10,17},
+ {&(_ZTV7ee66152[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee66152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee66152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee66152[];
+extern VTBL_ENTRY _ZTV7ee66152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66152[];
+static VTBL_ENTRY alt_thunk_names1115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523fooEv,_ZThn24_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd61523barEv,_ZThn24_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd61523barEv,_ZThn16_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee661523fooEv,_ZTv0_n12_N7ee661523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee661523fooEv,_ZThn24_N7ee661523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee661523barEv,_ZTv0_n16_N7ee661523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee661523barEv,_ZThn24_N7ee661523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee661523barEv,_ZThn16_N7ee661523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66152 = { "ee66152", // class name
+ bases_ee66152, 4,
+ &(vtc_ee66152[0]), // expected_vtbl_contents
+ &(vtt_ee66152[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66152),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66152),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76152 : virtual dd6152 {
+ int e;
+ virtual void foo(); // _ZN7ee761523fooEv
+ virtual void bar(); // _ZN7ee761523barEv
+ ~ee76152(); // tgen
+ ee76152(); // tgen
+};
+//SIG(1 ee76152) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76152 ::foo(){vfunc_called(this, "_ZN7ee761523fooEv");}
+void ee76152 ::bar(){vfunc_called(this, "_ZN7ee761523barEv");}
+ee76152 ::~ee76152(){ note_dtor("ee76152", this);} // tgen
+ee76152 ::ee76152(){ note_ctor("ee76152", this);} // tgen
+
+static void Test_ee76152()
+{
+ extern Class_Descriptor cd_ee76152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76152, buf);
+ ee76152 *dp, &lv = *(dp=new (buf) ee76152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee76152");
+ check_base_class_offset(lv, (bb52*)(cc152*)(dd6152*), ABISELECT(32,20), "ee76152");
+ check_base_class_offset(lv, (cc152*)(dd6152*), ABISELECT(16,8), "ee76152");
+ check_base_class_offset(lv, (dd6152*), ABISELECT(16,8), "ee76152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76152.e");
+ test_class_info(&lv, &cd_ee76152);
+ dp->~ee76152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76152(Test_ee76152, "ee76152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76152C1Ev();
+extern void _ZN7ee76152D1Ev();
+Name_Map name_map_ee76152[] = {
+ NSPAIR(_ZN7ee76152C1Ev),
+ NSPAIR(_ZN7ee76152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd6152;
+extern VTBL_ENTRY _ZTI6dd6152[];
+extern VTBL_ENTRY _ZTV6dd6152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6152[];
+static Base_Class bases_ee76152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76152[];
+extern void _ZN7ee761523fooEv();
+extern void _ZN7ee761523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee761523barEv,_ZTv0_n20_N7ee761523barEv)();
+extern void ABISELECT(_ZThn16_N7ee761523barEv,_ZThn8_N7ee761523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee761523fooEv,_ZTv0_n24_N7ee761523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee761523fooEv,_ZThn8_N7ee761523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761523barEv,_ZTv0_n16_N7ee761523barEv)();
+extern void ABISELECT(_ZThn32_N7ee761523barEv,_ZThn20_N7ee761523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee761523fooEv,_ZTv0_n12_N7ee761523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee761523fooEv,_ZThn28_N7ee761523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee761523barEv,_ZTv0_n16_N7ee761523barEv)();
+extern void ABISELECT(_ZThn48_N7ee761523barEv,_ZThn28_N7ee761523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76152[0]),
+ (VTBL_ENTRY)&_ZN7ee761523fooEv,
+ (VTBL_ENTRY)&_ZN7ee761523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee761523barEv,_ZTv0_n20_N7ee761523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee761523fooEv,_ZTv0_n24_N7ee761523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761523barEv,_ZTv0_n16_N7ee761523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee761523fooEv,_ZTv0_n12_N7ee761523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee761523barEv,_ZTv0_n16_N7ee761523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76152[];
+extern void _ZN6dd61523barEv();
+extern void _ZN6dd61523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6152__7ee76152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&_ZN6dd61523barEv,
+ (VTBL_ENTRY)&_ZN6dd61523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc1526dd6152__7ee76152[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc1526dd6152__7ee76152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc1526dd6152__7ee76152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6152__7ee76152[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv)();
+extern void ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6152__7ee76152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee76152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee76152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee76152[] = {
+ {&(_ZTV7ee76152[5]), 5,26},
+ {&(_ZTV7ee76152[13]), 13,26},
+ {&(_ZTV7ee76152[19]), 19,26},
+ {&(_ZTV7ee76152[24]), 24,26},
+ {&(_tg__ZTV6dd6152__7ee76152[4]), 4,6},
+ {&(_tg__ZTV5cc1526dd6152__7ee76152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc1526dd6152__7ee76152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc1526dd6152__7ee76152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6152__7ee76152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6152__7ee76152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee76152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee76152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76152[];
+extern VTBL_ENTRY _ZTV7ee76152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76152[];
+static VTBL_ENTRY alt_thunk_names1116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd61523fooEv,_ZTv0_n12_N6dd61523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523fooEv,_ZThn20_N6dd61523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd61523barEv,_ZTv0_n16_N6dd61523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd61523barEv,_ZThn20_N6dd61523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd61523barEv,_ZThn12_N6dd61523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee761523fooEv,_ZTv0_n12_N7ee761523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee761523fooEv,_ZThn28_N7ee761523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee761523barEv,_ZTv0_n16_N7ee761523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee761523barEv,_ZThn28_N7ee761523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee761523barEv,_ZThn20_N7ee761523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee761523fooEv,_ZTv0_n24_N7ee761523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761523fooEv,_ZThn8_N7ee761523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee761523barEv,_ZTv0_n20_N7ee761523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee761523barEv,_ZThn8_N7ee761523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76152 = { "ee76152", // class name
+ bases_ee76152, 4,
+ &(vtc_ee76152[0]), // expected_vtbl_contents
+ &(vtt_ee76152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76152),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76152),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7152 : virtual cc152 {
+ int d;
+ virtual void bar(); // _ZN6dd71523barEv
+ virtual void foo(); // _ZN6dd71523fooEv
+ ~dd7152(); // tgen
+ dd7152(); // tgen
+};
+//SIG(-1 dd7152) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void dd7152 ::bar(){vfunc_called(this, "_ZN6dd71523barEv");}
+void dd7152 ::foo(){vfunc_called(this, "_ZN6dd71523fooEv");}
+dd7152 ::~dd7152(){ note_dtor("dd7152", this);} // tgen
+dd7152 ::dd7152(){ note_ctor("dd7152", this);} // tgen
+
+static void Test_dd7152()
+{
+ extern Class_Descriptor cd_dd7152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7152, buf);
+ dd7152 *dp, &lv = *(dp=new (buf) dd7152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd7152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,16), "dd7152");
+ check_base_class_offset(lv, (cc152*), ABISELECT(16,8), "dd7152");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7152.d");
+ test_class_info(&lv, &cd_dd7152);
+ dp->~dd7152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7152(Test_dd7152, "dd7152", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7152C1Ev();
+extern void _ZN6dd7152D1Ev();
+Name_Map name_map_dd7152[] = {
+ NSPAIR(_ZN6dd7152C1Ev),
+ NSPAIR(_ZN6dd7152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+static Base_Class bases_dd7152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7152[];
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__6dd7152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__6dd7152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd7152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7152[] = {
+ {&(_ZTV6dd7152[5]), 5,22},
+ {&(_ZTV6dd7152[11]), 11,22},
+ {&(_ZTV6dd7152[15]), 15,22},
+ {&(_ZTV6dd7152[20]), 20,22},
+ {&(_tg__ZTV5cc152__6dd7152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__6dd7152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__6dd7152[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd7152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd7152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static VTBL_ENTRY alt_thunk_names1117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7152 = { "dd7152", // class name
+ bases_dd7152, 3,
+ &(vtc_dd7152[0]), // expected_vtbl_contents
+ &(vtt_dd7152[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7152),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07152 : dd7152 {
+ int e;
+ ~ee07152(); // tgen
+ ee07152(); // tgen
+};
+//SIG(1 ee07152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee07152 ::~ee07152(){ note_dtor("ee07152", this);} // tgen
+ee07152 ::ee07152(){ note_ctor("ee07152", this);} // tgen
+
+static void Test_ee07152()
+{
+ extern Class_Descriptor cd_ee07152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07152, buf);
+ ee07152 *dp, &lv = *(dp=new (buf) ee07152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee07152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee07152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(16,12), "ee07152");
+ check_base_class_offset(lv, (dd7152*), 0, "ee07152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07152.e");
+ test_class_info(&lv, &cd_ee07152);
+ dp->~ee07152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07152(Test_ee07152, "ee07152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07152C1Ev();
+extern void _ZN7ee07152D1Ev();
+Name_Map name_map_ee07152[] = {
+ NSPAIR(_ZN7ee07152C1Ev),
+ NSPAIR(_ZN7ee07152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee07152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee07152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee07152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee07152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee07152[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee07152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee07152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee07152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee07152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee07152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07152[] = {
+ {&(_ZTV7ee07152[5]), 5,22},
+ {&(_tg__ZTV6dd7152__7ee07152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee07152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee07152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee07152[4]), 4,6},
+ {&(_ZTV7ee07152[11]), 11,22},
+ {&(_ZTV7ee07152[15]), 15,22},
+ {&(_ZTV7ee07152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee07152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee07152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee07152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee07152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee07152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07152[];
+extern VTBL_ENTRY _ZTV7ee07152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07152[];
+static VTBL_ENTRY alt_thunk_names1118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07152 = { "ee07152", // class name
+ bases_ee07152, 4,
+ &(vtc_ee07152[0]), // expected_vtbl_contents
+ &(vtt_ee07152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17152 : virtual dd7152 {
+ int e;
+ ~ee17152(); // tgen
+ ee17152(); // tgen
+};
+//SIG(1 ee17152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} Fi}
+
+
+ee17152 ::~ee17152(){ note_dtor("ee17152", this);} // tgen
+ee17152 ::ee17152(){ note_ctor("ee17152", this);} // tgen
+
+static void Test_ee17152()
+{
+ extern Class_Descriptor cd_ee17152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17152, buf);
+ ee17152 *dp, &lv = *(dp=new (buf) ee17152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee17152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee17152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(32,16), "ee17152");
+ check_base_class_offset(lv, (dd7152*), ABISELECT(16,8), "ee17152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17152.e");
+ test_class_info(&lv, &cd_ee17152);
+ dp->~ee17152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17152(Test_ee17152, "ee17152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17152C1Ev();
+extern void _ZN7ee17152D1Ev();
+Name_Map name_map_ee17152[] = {
+ NSPAIR(_ZN7ee17152C1Ev),
+ NSPAIR(_ZN7ee17152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee17152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17152[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee17152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee17152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee17152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee17152[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee17152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee17152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee17152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee17152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee17152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17152[] = {
+ {&(_ZTV7ee17152[6]), 6,30},
+ {&(_ZTV7ee17152[13]), 13,30},
+ {&(_ZTV7ee17152[19]), 19,30},
+ {&(_ZTV7ee17152[23]), 23,30},
+ {&(_ZTV7ee17152[28]), 28,30},
+ {&(_tg__ZTV6dd7152__7ee17152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee17152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee17152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee17152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee17152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee17152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee17152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee17152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee17152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17152[];
+extern VTBL_ENTRY _ZTV7ee17152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17152[];
+static VTBL_ENTRY alt_thunk_names1119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17152 = { "ee17152", // class name
+ bases_ee17152, 4,
+ &(vtc_ee17152[0]), // expected_vtbl_contents
+ &(vtt_ee17152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17152),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27152 : dd7152 {
+ int e;
+ virtual void foo(); // _ZN7ee271523fooEv
+ ~ee27152(); // tgen
+ ee27152(); // tgen
+};
+//SIG(1 ee27152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27152 ::foo(){vfunc_called(this, "_ZN7ee271523fooEv");}
+ee27152 ::~ee27152(){ note_dtor("ee27152", this);} // tgen
+ee27152 ::ee27152(){ note_ctor("ee27152", this);} // tgen
+
+static void Test_ee27152()
+{
+ extern Class_Descriptor cd_ee27152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27152, buf);
+ ee27152 *dp, &lv = *(dp=new (buf) ee27152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee27152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee27152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(16,12), "ee27152");
+ check_base_class_offset(lv, (dd7152*), 0, "ee27152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27152.e");
+ test_class_info(&lv, &cd_ee27152);
+ dp->~ee27152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27152(Test_ee27152, "ee27152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27152C1Ev();
+extern void _ZN7ee27152D1Ev();
+Name_Map name_map_ee27152[] = {
+ NSPAIR(_ZN7ee27152C1Ev),
+ NSPAIR(_ZN7ee27152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee27152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN7ee271523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee271523fooEv,_ZTv0_n12_N7ee271523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee271523fooEv,_ZThn28_N7ee271523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN7ee271523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee271523fooEv,_ZTv0_n12_N7ee271523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee27152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee27152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee27152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee27152[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee27152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee27152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee27152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee27152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee27152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27152[] = {
+ {&(_ZTV7ee27152[5]), 5,22},
+ {&(_tg__ZTV6dd7152__7ee27152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee27152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee27152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee27152[4]), 4,6},
+ {&(_ZTV7ee27152[11]), 11,22},
+ {&(_ZTV7ee27152[15]), 15,22},
+ {&(_ZTV7ee27152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee27152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee27152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee27152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee27152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee27152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27152[];
+extern VTBL_ENTRY _ZTV7ee27152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27152[];
+static VTBL_ENTRY alt_thunk_names1120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee271523fooEv,_ZTv0_n12_N7ee271523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee271523fooEv,_ZThn28_N7ee271523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27152 = { "ee27152", // class name
+ bases_ee27152, 4,
+ &(vtc_ee27152[0]), // expected_vtbl_contents
+ &(vtt_ee27152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37152 : virtual dd7152 {
+ int e;
+ virtual void foo(); // _ZN7ee371523fooEv
+ ~ee37152(); // tgen
+ ee37152(); // tgen
+};
+//SIG(1 ee37152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37152 ::foo(){vfunc_called(this, "_ZN7ee371523fooEv");}
+ee37152 ::~ee37152(){ note_dtor("ee37152", this);} // tgen
+ee37152 ::ee37152(){ note_ctor("ee37152", this);} // tgen
+
+static void Test_ee37152()
+{
+ extern Class_Descriptor cd_ee37152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37152, buf);
+ ee37152 *dp, &lv = *(dp=new (buf) ee37152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee37152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee37152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(32,16), "ee37152");
+ check_base_class_offset(lv, (dd7152*), ABISELECT(16,8), "ee37152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37152.e");
+ test_class_info(&lv, &cd_ee37152);
+ dp->~ee37152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37152(Test_ee37152, "ee37152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37152C1Ev();
+extern void _ZN7ee37152D1Ev();
+Name_Map name_map_ee37152[] = {
+ NSPAIR(_ZN7ee37152C1Ev),
+ NSPAIR(_ZN7ee37152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee37152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37152[];
+extern void _ZN7ee371523fooEv();
+extern void _ZN6dd71523barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee371523fooEv,_ZTv0_n28_N7ee371523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee371523fooEv,_ZThn8_N7ee371523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee371523fooEv,_ZTv0_n12_N7ee371523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee371523fooEv,_ZThn32_N7ee371523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37152[0]),
+ (VTBL_ENTRY)&_ZN7ee371523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee371523fooEv,_ZTv0_n28_N7ee371523fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37152[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee371523fooEv,_ZTv0_n12_N7ee371523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee37152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee37152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee37152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee37152[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee37152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee37152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee37152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee37152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee37152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37152[] = {
+ {&(_ZTV7ee37152[6]), 6,31},
+ {&(_ZTV7ee37152[14]), 14,31},
+ {&(_ZTV7ee37152[20]), 20,31},
+ {&(_ZTV7ee37152[24]), 24,31},
+ {&(_ZTV7ee37152[29]), 29,31},
+ {&(_tg__ZTV6dd7152__7ee37152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee37152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee37152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee37152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee37152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee37152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee37152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee37152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee37152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37152[];
+extern VTBL_ENTRY _ZTV7ee37152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37152[];
+static VTBL_ENTRY alt_thunk_names1121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee371523fooEv,_ZTv0_n12_N7ee371523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee371523fooEv,_ZThn32_N7ee371523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee371523fooEv,_ZTv0_n28_N7ee371523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee371523fooEv,_ZThn8_N7ee371523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37152 = { "ee37152", // class name
+ bases_ee37152, 4,
+ &(vtc_ee37152[0]), // expected_vtbl_contents
+ &(vtt_ee37152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37152),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47152 : dd7152 {
+ int e;
+ virtual void bar(); // _ZN7ee471523barEv
+ ~ee47152(); // tgen
+ ee47152(); // tgen
+};
+//SIG(1 ee47152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47152 ::bar(){vfunc_called(this, "_ZN7ee471523barEv");}
+ee47152 ::~ee47152(){ note_dtor("ee47152", this);} // tgen
+ee47152 ::ee47152(){ note_ctor("ee47152", this);} // tgen
+
+static void Test_ee47152()
+{
+ extern Class_Descriptor cd_ee47152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47152, buf);
+ ee47152 *dp, &lv = *(dp=new (buf) ee47152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee47152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee47152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(16,12), "ee47152");
+ check_base_class_offset(lv, (dd7152*), 0, "ee47152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47152.e");
+ test_class_info(&lv, &cd_ee47152);
+ dp->~ee47152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47152(Test_ee47152, "ee47152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47152C1Ev();
+extern void _ZN7ee47152D1Ev();
+Name_Map name_map_ee47152[] = {
+ NSPAIR(_ZN7ee47152C1Ev),
+ NSPAIR(_ZN7ee47152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee47152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47152[];
+extern void _ZN7ee471523barEv();
+extern void _ZN6dd71523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee471523barEv,_ZTv0_n16_N7ee471523barEv)();
+extern void ABISELECT(_ZThn32_N7ee471523barEv,_ZThn20_N7ee471523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee471523barEv,_ZTv0_n16_N7ee471523barEv)();
+extern void ABISELECT(_ZThn48_N7ee471523barEv,_ZThn28_N7ee471523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47152[0]),
+ (VTBL_ENTRY)&_ZN7ee471523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471523barEv,_ZTv0_n16_N7ee471523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee471523barEv,_ZTv0_n16_N7ee471523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee47152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee47152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee47152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee47152[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee47152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee47152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee47152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee47152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee47152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47152[] = {
+ {&(_ZTV7ee47152[5]), 5,22},
+ {&(_tg__ZTV6dd7152__7ee47152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee47152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee47152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee47152[4]), 4,6},
+ {&(_ZTV7ee47152[11]), 11,22},
+ {&(_ZTV7ee47152[15]), 15,22},
+ {&(_ZTV7ee47152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee47152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee47152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee47152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee47152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee47152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47152[];
+extern VTBL_ENTRY _ZTV7ee47152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47152[];
+static VTBL_ENTRY alt_thunk_names1122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee471523barEv,_ZTv0_n16_N7ee471523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee471523barEv,_ZThn28_N7ee471523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee471523barEv,_ZThn20_N7ee471523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47152 = { "ee47152", // class name
+ bases_ee47152, 4,
+ &(vtc_ee47152[0]), // expected_vtbl_contents
+ &(vtt_ee47152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57152 : virtual dd7152 {
+ int e;
+ virtual void bar(); // _ZN7ee571523barEv
+ ~ee57152(); // tgen
+ ee57152(); // tgen
+};
+//SIG(1 ee57152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57152 ::bar(){vfunc_called(this, "_ZN7ee571523barEv");}
+ee57152 ::~ee57152(){ note_dtor("ee57152", this);} // tgen
+ee57152 ::ee57152(){ note_ctor("ee57152", this);} // tgen
+
+static void Test_ee57152()
+{
+ extern Class_Descriptor cd_ee57152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57152, buf);
+ ee57152 *dp, &lv = *(dp=new (buf) ee57152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee57152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee57152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(32,16), "ee57152");
+ check_base_class_offset(lv, (dd7152*), ABISELECT(16,8), "ee57152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57152.e");
+ test_class_info(&lv, &cd_ee57152);
+ dp->~ee57152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57152(Test_ee57152, "ee57152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57152C1Ev();
+extern void _ZN7ee57152D1Ev();
+Name_Map name_map_ee57152[] = {
+ NSPAIR(_ZN7ee57152C1Ev),
+ NSPAIR(_ZN7ee57152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee57152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57152[];
+extern void _ZN7ee571523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee571523barEv,_ZTv0_n24_N7ee571523barEv)();
+extern void ABISELECT(_ZThn16_N7ee571523barEv,_ZThn8_N7ee571523barEv)() __attribute__((weak));
+extern void _ZN6dd71523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee571523barEv,_ZTv0_n16_N7ee571523barEv)();
+extern void ABISELECT(_ZThn48_N7ee571523barEv,_ZThn24_N7ee571523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee571523barEv,_ZTv0_n16_N7ee571523barEv)();
+extern void ABISELECT(_ZThn64_N7ee571523barEv,_ZThn32_N7ee571523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57152[0]),
+ (VTBL_ENTRY)&_ZN7ee571523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee571523barEv,_ZTv0_n24_N7ee571523barEv),
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571523barEv,_ZTv0_n16_N7ee571523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee571523barEv,_ZTv0_n16_N7ee571523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee57152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee57152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee57152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee57152[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee57152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee57152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee57152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee57152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee57152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57152[] = {
+ {&(_ZTV7ee57152[6]), 6,31},
+ {&(_ZTV7ee57152[14]), 14,31},
+ {&(_ZTV7ee57152[20]), 20,31},
+ {&(_ZTV7ee57152[24]), 24,31},
+ {&(_ZTV7ee57152[29]), 29,31},
+ {&(_tg__ZTV6dd7152__7ee57152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee57152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee57152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee57152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee57152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee57152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee57152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee57152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee57152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57152[];
+extern VTBL_ENTRY _ZTV7ee57152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57152[];
+static VTBL_ENTRY alt_thunk_names1123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee571523barEv,_ZTv0_n16_N7ee571523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee571523barEv,_ZThn32_N7ee571523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee571523barEv,_ZThn24_N7ee571523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee571523barEv,_ZTv0_n24_N7ee571523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee571523barEv,_ZThn8_N7ee571523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57152 = { "ee57152", // class name
+ bases_ee57152, 4,
+ &(vtc_ee57152[0]), // expected_vtbl_contents
+ &(vtt_ee57152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57152),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67152 : dd7152 {
+ int e;
+ virtual void foo(); // _ZN7ee671523fooEv
+ virtual void bar(); // _ZN7ee671523barEv
+ ~ee67152(); // tgen
+ ee67152(); // tgen
+};
+//SIG(1 ee67152) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67152 ::foo(){vfunc_called(this, "_ZN7ee671523fooEv");}
+void ee67152 ::bar(){vfunc_called(this, "_ZN7ee671523barEv");}
+ee67152 ::~ee67152(){ note_dtor("ee67152", this);} // tgen
+ee67152 ::ee67152(){ note_ctor("ee67152", this);} // tgen
+
+static void Test_ee67152()
+{
+ extern Class_Descriptor cd_ee67152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67152, buf);
+ ee67152 *dp, &lv = *(dp=new (buf) ee67152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee67152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(32,20), "ee67152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(16,12), "ee67152");
+ check_base_class_offset(lv, (dd7152*), 0, "ee67152");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67152.e");
+ test_class_info(&lv, &cd_ee67152);
+ dp->~ee67152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67152(Test_ee67152, "ee67152", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67152C1Ev();
+extern void _ZN7ee67152D1Ev();
+Name_Map name_map_ee67152[] = {
+ NSPAIR(_ZN7ee67152C1Ev),
+ NSPAIR(_ZN7ee67152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee67152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67152[];
+extern void _ZN7ee671523barEv();
+extern void _ZN7ee671523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee671523barEv,_ZTv0_n16_N7ee671523barEv)();
+extern void ABISELECT(_ZThn32_N7ee671523barEv,_ZThn20_N7ee671523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee671523fooEv,_ZTv0_n12_N7ee671523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee671523fooEv,_ZThn28_N7ee671523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee671523barEv,_ZTv0_n16_N7ee671523barEv)();
+extern void ABISELECT(_ZThn48_N7ee671523barEv,_ZThn28_N7ee671523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67152[0]),
+ (VTBL_ENTRY)&_ZN7ee671523barEv,
+ (VTBL_ENTRY)&_ZN7ee671523fooEv,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67152[0]),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671523barEv,_ZTv0_n16_N7ee671523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee671523fooEv,_ZTv0_n12_N7ee671523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee671523barEv,_ZTv0_n16_N7ee671523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee67152[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee67152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee67152[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee67152[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee67152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee67152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee67152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee67152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee67152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67152[] = {
+ {&(_ZTV7ee67152[5]), 5,22},
+ {&(_tg__ZTV6dd7152__7ee67152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee67152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee67152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee67152[4]), 4,6},
+ {&(_ZTV7ee67152[11]), 11,22},
+ {&(_ZTV7ee67152[15]), 15,22},
+ {&(_ZTV7ee67152[20]), 20,22},
+ {&(_tg__ZTV5cc152__7ee67152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee67152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee67152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee67152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee67152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67152[];
+extern VTBL_ENTRY _ZTV7ee67152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67152[];
+static VTBL_ENTRY alt_thunk_names1124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn28_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn28_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn20_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee671523fooEv,_ZTv0_n12_N7ee671523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee671523fooEv,_ZThn28_N7ee671523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee671523barEv,_ZTv0_n16_N7ee671523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee671523barEv,_ZThn28_N7ee671523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee671523barEv,_ZThn20_N7ee671523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67152 = { "ee67152", // class name
+ bases_ee67152, 4,
+ &(vtc_ee67152[0]), // expected_vtbl_contents
+ &(vtt_ee67152[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67152),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67152),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67152),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77152 : virtual dd7152 {
+ int e;
+ virtual void foo(); // _ZN7ee771523fooEv
+ virtual void bar(); // _ZN7ee771523barEv
+ ~ee77152(); // tgen
+ ee77152(); // tgen
+};
+//SIG(1 ee77152) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77152 ::foo(){vfunc_called(this, "_ZN7ee771523fooEv");}
+void ee77152 ::bar(){vfunc_called(this, "_ZN7ee771523barEv");}
+ee77152 ::~ee77152(){ note_dtor("ee77152", this);} // tgen
+ee77152 ::ee77152(){ note_ctor("ee77152", this);} // tgen
+
+static void Test_ee77152()
+{
+ extern Class_Descriptor cd_ee77152;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77152, buf);
+ ee77152 *dp, &lv = *(dp=new (buf) ee77152());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77152)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77152)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee77152");
+ check_base_class_offset(lv, (bb52*)(cc152*), ABISELECT(48,24), "ee77152");
+ check_base_class_offset(lv, (cc152*)(dd7152*), ABISELECT(32,16), "ee77152");
+ check_base_class_offset(lv, (dd7152*), ABISELECT(16,8), "ee77152");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77152.e");
+ test_class_info(&lv, &cd_ee77152);
+ dp->~ee77152();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77152(Test_ee77152, "ee77152", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77152C1Ev();
+extern void _ZN7ee77152D1Ev();
+Name_Map name_map_ee77152[] = {
+ NSPAIR(_ZN7ee77152C1Ev),
+ NSPAIR(_ZN7ee77152D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc152;
+extern VTBL_ENTRY _ZTI5cc152[];
+extern VTBL_ENTRY _ZTV5cc152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc152[];
+extern Class_Descriptor cd_dd7152;
+extern VTBL_ENTRY _ZTI6dd7152[];
+extern VTBL_ENTRY _ZTV6dd7152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7152[];
+static Base_Class bases_ee77152[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc152, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7152, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77152[];
+extern void _ZN7ee771523fooEv();
+extern void _ZN7ee771523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee771523barEv,_ZTv0_n24_N7ee771523barEv)();
+extern void ABISELECT(_ZThn16_N7ee771523barEv,_ZThn8_N7ee771523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee771523fooEv,_ZTv0_n28_N7ee771523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee771523fooEv,_ZThn8_N7ee771523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771523barEv,_ZTv0_n16_N7ee771523barEv)();
+extern void ABISELECT(_ZThn48_N7ee771523barEv,_ZThn24_N7ee771523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee771523fooEv,_ZTv0_n12_N7ee771523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee771523fooEv,_ZThn32_N7ee771523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee771523barEv,_ZTv0_n16_N7ee771523barEv)();
+extern void ABISELECT(_ZThn64_N7ee771523barEv,_ZThn32_N7ee771523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77152[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77152[0]),
+ (VTBL_ENTRY)&_ZN7ee771523fooEv,
+ (VTBL_ENTRY)&_ZN7ee771523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee771523barEv,_ZTv0_n24_N7ee771523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee771523fooEv,_ZTv0_n28_N7ee771523fooEv),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77152[0]),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771523barEv,_ZTv0_n16_N7ee771523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee771523fooEv,_ZTv0_n12_N7ee771523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee771523barEv,_ZTv0_n16_N7ee771523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77152[];
+extern void _ZN6dd71523barEv();
+extern void _ZN6dd71523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7152__7ee77152[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&_ZN6dd71523barEv,
+ (VTBL_ENTRY)&_ZN6dd71523fooEv,
+};
+static VTBL_ENTRY _tg__ZTV5cc152__6dd7152__7ee77152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7152__7ee77152[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv)();
+extern void ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7152__7ee77152[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7152[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv),
+};
+static VTBL_ENTRY _tg__ZTV5cc152__7ee77152[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc152__7ee77152[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc152__7ee77152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc152[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee77152[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee77152[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77152[] = {
+ {&(_ZTV7ee77152[6]), 6,32},
+ {&(_ZTV7ee77152[15]), 15,32},
+ {&(_ZTV7ee77152[21]), 21,32},
+ {&(_ZTV7ee77152[25]), 25,32},
+ {&(_ZTV7ee77152[30]), 30,32},
+ {&(_tg__ZTV6dd7152__7ee77152[5]), 5,7},
+ {&(_tg__ZTV5cc152__6dd7152__7ee77152[4]), 4,4},
+ {&(_tg__ZTV4bb52__6dd7152__7ee77152[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7152__7ee77152[4]), 4,6},
+ {&(_tg__ZTV5cc152__7ee77152[4]), 4,4},
+ {&(_tg__ZTV4bb52__5cc152__7ee77152[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc152__7ee77152[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee77152[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee77152[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77152[];
+extern VTBL_ENTRY _ZTV7ee77152[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77152[];
+static VTBL_ENTRY alt_thunk_names1125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd71523fooEv,_ZTv0_n12_N6dd71523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523fooEv,_ZThn24_N6dd71523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd71523barEv,_ZTv0_n16_N6dd71523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd71523barEv,_ZThn24_N6dd71523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd71523barEv,_ZThn16_N6dd71523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee771523fooEv,_ZTv0_n12_N7ee771523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee771523fooEv,_ZThn32_N7ee771523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee771523barEv,_ZTv0_n16_N7ee771523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee771523barEv,_ZThn32_N7ee771523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee771523barEv,_ZThn24_N7ee771523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee771523fooEv,_ZTv0_n28_N7ee771523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771523fooEv,_ZThn8_N7ee771523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee771523barEv,_ZTv0_n24_N7ee771523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee771523barEv,_ZThn8_N7ee771523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77152 = { "ee77152", // class name
+ bases_ee77152, 4,
+ &(vtc_ee77152[0]), // expected_vtbl_contents
+ &(vtt_ee77152[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77152),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77152),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77152),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1125,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc252 : bb52 {
+ int c;
+ virtual void foo(); // _ZN5cc2523fooEv
+ ~cc252(); // tgen
+ cc252(); // tgen
+};
+//SIG(-1 cc252) C1{ BC2{ VBC3{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void cc252 ::foo(){vfunc_called(this, "_ZN5cc2523fooEv");}
+cc252 ::~cc252(){ note_dtor("cc252", this);} // tgen
+cc252 ::cc252(){ note_ctor("cc252", this);} // tgen
+
+static void Test_cc252()
+{
+ extern Class_Descriptor cd_cc252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc252, buf);
+ cc252 *dp, &lv = *(dp=new (buf) cc252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc252)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(16,12), "cc252");
+ check_base_class_offset(lv, (bb52*), 0, "cc252");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc252.c");
+ test_class_info(&lv, &cd_cc252);
+ dp->~cc252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc252(Test_cc252, "cc252", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc252C1Ev();
+extern void _ZN5cc252D1Ev();
+Name_Map name_map_cc252[] = {
+ NSPAIR(_ZN5cc252C1Ev),
+ NSPAIR(_ZN5cc252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc252[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc252[] = {
+ {&(_ZTV5cc252[3]), 3,11},
+ {&(_tg__ZTV4bb52__5cc252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc252[4]), 4,6},
+ {&(_ZTV5cc252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static VTBL_ENTRY alt_thunk_names1126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc252 = { "cc252", // class name
+ bases_cc252, 2,
+ &(vtc_cc252[0]), // expected_vtbl_contents
+ &(vtt_cc252[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc252),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1126,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0252 : cc252 {
+ int d;
+ ~dd0252(); // tgen
+ dd0252(); // tgen
+};
+//SIG(-1 dd0252) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0252 ::~dd0252(){ note_dtor("dd0252", this);} // tgen
+dd0252 ::dd0252(){ note_ctor("dd0252", this);} // tgen
+
+static void Test_dd0252()
+{
+ extern Class_Descriptor cd_dd0252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0252, buf);
+ dd0252 *dp, &lv = *(dp=new (buf) dd0252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(24,16), "dd0252");
+ check_base_class_offset(lv, (bb52*)(cc252*), 0, "dd0252");
+ check_base_class_offset(lv, (cc252*), 0, "dd0252");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0252.d");
+ test_class_info(&lv, &cd_dd0252);
+ dp->~dd0252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0252(Test_dd0252, "dd0252", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0252C1Ev();
+extern void _ZN6dd0252D1Ev();
+Name_Map name_map_dd0252[] = {
+ NSPAIR(_ZN6dd0252C1Ev),
+ NSPAIR(_ZN6dd0252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd0252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd0252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd0252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd0252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd0252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0252[] = {
+ {&(_ZTV6dd0252[3]), 3,11},
+ {&(_tg__ZTV5cc252__6dd0252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd0252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd0252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd0252[4]), 4,6},
+ {&(_ZTV6dd0252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static VTBL_ENTRY alt_thunk_names1127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0252 = { "dd0252", // class name
+ bases_dd0252, 3,
+ &(vtc_dd0252[0]), // expected_vtbl_contents
+ &(vtt_dd0252[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0252),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1127,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00252 : dd0252 {
+ int e;
+ ~ee00252(); // tgen
+ ee00252(); // tgen
+};
+//SIG(1 ee00252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00252 ::~ee00252(){ note_dtor("ee00252", this);} // tgen
+ee00252 ::ee00252(){ note_ctor("ee00252", this);} // tgen
+
+static void Test_ee00252()
+{
+ extern Class_Descriptor cd_ee00252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00252, buf);
+ ee00252 *dp, &lv = *(dp=new (buf) ee00252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(24,20), "ee00252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), 0, "ee00252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), 0, "ee00252");
+ check_base_class_offset(lv, (dd0252*), 0, "ee00252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00252.e");
+ test_class_info(&lv, &cd_ee00252);
+ dp->~ee00252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00252(Test_ee00252, "ee00252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00252C1Ev();
+extern void _ZN7ee00252D1Ev();
+Name_Map name_map_ee00252[] = {
+ NSPAIR(_ZN7ee00252C1Ev),
+ NSPAIR(_ZN7ee00252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee00252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee00252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee00252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee00252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee00252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee00252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee00252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00252[] = {
+ {&(_ZTV7ee00252[3]), 3,11},
+ {&(_tg__ZTV6dd0252__7ee00252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee00252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee00252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee00252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee00252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee00252[4]), 4,6},
+ {&(_ZTV7ee00252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00252[];
+extern VTBL_ENTRY _ZTV7ee00252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00252[];
+static VTBL_ENTRY alt_thunk_names1128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00252 = { "ee00252", // class name
+ bases_ee00252, 4,
+ &(vtc_ee00252[0]), // expected_vtbl_contents
+ &(vtt_ee00252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1128,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10252 : virtual dd0252 {
+ int e;
+ ~ee10252(); // tgen
+ ee10252(); // tgen
+};
+//SIG(1 ee10252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10252 ::~ee10252(){ note_dtor("ee10252", this);} // tgen
+ee10252 ::ee10252(){ note_ctor("ee10252", this);} // tgen
+
+static void Test_ee10252()
+{
+ extern Class_Descriptor cd_ee10252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10252, buf);
+ ee10252 *dp, &lv = *(dp=new (buf) ee10252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(40,24), "ee10252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), ABISELECT(16,8), "ee10252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), ABISELECT(16,8), "ee10252");
+ check_base_class_offset(lv, (dd0252*), ABISELECT(16,8), "ee10252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10252.e");
+ test_class_info(&lv, &cd_ee10252);
+ dp->~ee10252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10252(Test_ee10252, "ee10252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10252C1Ev();
+extern void _ZN7ee10252D1Ev();
+Name_Map name_map_ee10252[] = {
+ NSPAIR(_ZN7ee10252C1Ev),
+ NSPAIR(_ZN7ee10252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee10252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10252[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee10252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee10252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee10252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee10252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee10252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee10252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10252[] = {
+ {&(_ZTV7ee10252[4]), 4,17},
+ {&(_ZTV7ee10252[9]), 9,17},
+ {&(_ZTV7ee10252[15]), 15,17},
+ {&(_tg__ZTV6dd0252__7ee10252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee10252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee10252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee10252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee10252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee10252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10252[];
+extern VTBL_ENTRY _ZTV7ee10252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10252[];
+static VTBL_ENTRY alt_thunk_names1129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10252 = { "ee10252", // class name
+ bases_ee10252, 4,
+ &(vtc_ee10252[0]), // expected_vtbl_contents
+ &(vtt_ee10252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1129,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20252 : dd0252 {
+ int e;
+ virtual void foo(); // _ZN7ee202523fooEv
+ ~ee20252(); // tgen
+ ee20252(); // tgen
+};
+//SIG(1 ee20252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20252 ::foo(){vfunc_called(this, "_ZN7ee202523fooEv");}
+ee20252 ::~ee20252(){ note_dtor("ee20252", this);} // tgen
+ee20252 ::ee20252(){ note_ctor("ee20252", this);} // tgen
+
+static void Test_ee20252()
+{
+ extern Class_Descriptor cd_ee20252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20252, buf);
+ ee20252 *dp, &lv = *(dp=new (buf) ee20252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(24,20), "ee20252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), 0, "ee20252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), 0, "ee20252");
+ check_base_class_offset(lv, (dd0252*), 0, "ee20252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20252.e");
+ test_class_info(&lv, &cd_ee20252);
+ dp->~ee20252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20252(Test_ee20252, "ee20252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20252C1Ev();
+extern void _ZN7ee20252D1Ev();
+Name_Map name_map_ee20252[] = {
+ NSPAIR(_ZN7ee20252C1Ev),
+ NSPAIR(_ZN7ee20252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee20252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20252[];
+extern void _ZN4bb523barEv();
+extern void _ZN7ee202523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee202523fooEv,_ZTv0_n12_N7ee202523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee202523fooEv,_ZThn20_N7ee202523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN7ee202523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee202523fooEv,_ZTv0_n12_N7ee202523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee20252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee20252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee20252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee20252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee20252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee20252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20252[] = {
+ {&(_ZTV7ee20252[3]), 3,11},
+ {&(_tg__ZTV6dd0252__7ee20252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee20252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee20252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee20252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee20252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee20252[4]), 4,6},
+ {&(_ZTV7ee20252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20252[];
+extern VTBL_ENTRY _ZTV7ee20252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20252[];
+static VTBL_ENTRY alt_thunk_names1130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee202523fooEv,_ZTv0_n12_N7ee202523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee202523fooEv,_ZThn20_N7ee202523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20252 = { "ee20252", // class name
+ bases_ee20252, 4,
+ &(vtc_ee20252[0]), // expected_vtbl_contents
+ &(vtt_ee20252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30252 : virtual dd0252 {
+ int e;
+ virtual void foo(); // _ZN7ee302523fooEv
+ ~ee30252(); // tgen
+ ee30252(); // tgen
+};
+//SIG(1 ee30252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30252 ::foo(){vfunc_called(this, "_ZN7ee302523fooEv");}
+ee30252 ::~ee30252(){ note_dtor("ee30252", this);} // tgen
+ee30252 ::ee30252(){ note_ctor("ee30252", this);} // tgen
+
+static void Test_ee30252()
+{
+ extern Class_Descriptor cd_ee30252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30252, buf);
+ ee30252 *dp, &lv = *(dp=new (buf) ee30252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(40,24), "ee30252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), ABISELECT(16,8), "ee30252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), ABISELECT(16,8), "ee30252");
+ check_base_class_offset(lv, (dd0252*), ABISELECT(16,8), "ee30252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30252.e");
+ test_class_info(&lv, &cd_ee30252);
+ dp->~ee30252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30252(Test_ee30252, "ee30252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30252C1Ev();
+extern void _ZN7ee30252D1Ev();
+Name_Map name_map_ee30252[] = {
+ NSPAIR(_ZN7ee30252C1Ev),
+ NSPAIR(_ZN7ee30252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee30252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30252[];
+extern void _ZN7ee302523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee302523fooEv,_ZTv0_n20_N7ee302523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee302523fooEv,_ZThn8_N7ee302523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee302523fooEv,_ZTv0_n12_N7ee302523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee302523fooEv,_ZThn24_N7ee302523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30252[0]),
+ (VTBL_ENTRY)&_ZN7ee302523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee302523fooEv,_ZTv0_n20_N7ee302523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee302523fooEv,_ZTv0_n12_N7ee302523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee30252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee30252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee30252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee30252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee30252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee30252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30252[] = {
+ {&(_ZTV7ee30252[4]), 4,18},
+ {&(_ZTV7ee30252[10]), 10,18},
+ {&(_ZTV7ee30252[16]), 16,18},
+ {&(_tg__ZTV6dd0252__7ee30252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee30252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee30252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee30252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee30252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee30252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30252[];
+extern VTBL_ENTRY _ZTV7ee30252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30252[];
+static VTBL_ENTRY alt_thunk_names1131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee302523fooEv,_ZTv0_n12_N7ee302523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee302523fooEv,_ZThn24_N7ee302523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee302523fooEv,_ZTv0_n20_N7ee302523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee302523fooEv,_ZThn8_N7ee302523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30252 = { "ee30252", // class name
+ bases_ee30252, 4,
+ &(vtc_ee30252[0]), // expected_vtbl_contents
+ &(vtt_ee30252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40252 : dd0252 {
+ int e;
+ virtual void bar(); // _ZN7ee402523barEv
+ ~ee40252(); // tgen
+ ee40252(); // tgen
+};
+//SIG(1 ee40252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40252 ::bar(){vfunc_called(this, "_ZN7ee402523barEv");}
+ee40252 ::~ee40252(){ note_dtor("ee40252", this);} // tgen
+ee40252 ::ee40252(){ note_ctor("ee40252", this);} // tgen
+
+static void Test_ee40252()
+{
+ extern Class_Descriptor cd_ee40252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40252, buf);
+ ee40252 *dp, &lv = *(dp=new (buf) ee40252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(24,20), "ee40252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), 0, "ee40252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), 0, "ee40252");
+ check_base_class_offset(lv, (dd0252*), 0, "ee40252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40252.e");
+ test_class_info(&lv, &cd_ee40252);
+ dp->~ee40252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40252(Test_ee40252, "ee40252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40252C1Ev();
+extern void _ZN7ee40252D1Ev();
+Name_Map name_map_ee40252[] = {
+ NSPAIR(_ZN7ee40252C1Ev),
+ NSPAIR(_ZN7ee40252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee40252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40252[];
+extern void _ZN7ee402523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee402523barEv,_ZTv0_n16_N7ee402523barEv)();
+extern void ABISELECT(_ZThn24_N7ee402523barEv,_ZThn20_N7ee402523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40252[0]),
+ (VTBL_ENTRY)&_ZN7ee402523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee402523barEv,_ZTv0_n16_N7ee402523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee40252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee40252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee40252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee40252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee40252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee40252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40252[] = {
+ {&(_ZTV7ee40252[3]), 3,11},
+ {&(_tg__ZTV6dd0252__7ee40252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee40252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee40252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee40252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee40252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee40252[4]), 4,6},
+ {&(_ZTV7ee40252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40252[];
+extern VTBL_ENTRY _ZTV7ee40252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40252[];
+static VTBL_ENTRY alt_thunk_names1132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee402523barEv,_ZTv0_n16_N7ee402523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee402523barEv,_ZThn20_N7ee402523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40252 = { "ee40252", // class name
+ bases_ee40252, 4,
+ &(vtc_ee40252[0]), // expected_vtbl_contents
+ &(vtt_ee40252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50252 : virtual dd0252 {
+ int e;
+ virtual void bar(); // _ZN7ee502523barEv
+ ~ee50252(); // tgen
+ ee50252(); // tgen
+};
+//SIG(1 ee50252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50252 ::bar(){vfunc_called(this, "_ZN7ee502523barEv");}
+ee50252 ::~ee50252(){ note_dtor("ee50252", this);} // tgen
+ee50252 ::ee50252(){ note_ctor("ee50252", this);} // tgen
+
+static void Test_ee50252()
+{
+ extern Class_Descriptor cd_ee50252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50252, buf);
+ ee50252 *dp, &lv = *(dp=new (buf) ee50252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(40,24), "ee50252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), ABISELECT(16,8), "ee50252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), ABISELECT(16,8), "ee50252");
+ check_base_class_offset(lv, (dd0252*), ABISELECT(16,8), "ee50252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50252.e");
+ test_class_info(&lv, &cd_ee50252);
+ dp->~ee50252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50252(Test_ee50252, "ee50252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50252C1Ev();
+extern void _ZN7ee50252D1Ev();
+Name_Map name_map_ee50252[] = {
+ NSPAIR(_ZN7ee50252C1Ev),
+ NSPAIR(_ZN7ee50252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee50252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50252[];
+extern void _ZN7ee502523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee502523barEv,_ZTv0_n16_N7ee502523barEv)();
+extern void ABISELECT(_ZThn16_N7ee502523barEv,_ZThn8_N7ee502523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee502523barEv,_ZTv0_n16_N7ee502523barEv)();
+extern void ABISELECT(_ZThn40_N7ee502523barEv,_ZThn24_N7ee502523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50252[0]),
+ (VTBL_ENTRY)&_ZN7ee502523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502523barEv,_ZTv0_n16_N7ee502523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee502523barEv,_ZTv0_n16_N7ee502523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee50252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee50252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee50252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee50252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee50252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee50252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50252[] = {
+ {&(_ZTV7ee50252[4]), 4,18},
+ {&(_ZTV7ee50252[10]), 10,18},
+ {&(_ZTV7ee50252[16]), 16,18},
+ {&(_tg__ZTV6dd0252__7ee50252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee50252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee50252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee50252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee50252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee50252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50252[];
+extern VTBL_ENTRY _ZTV7ee50252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50252[];
+static VTBL_ENTRY alt_thunk_names1133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee502523barEv,_ZTv0_n16_N7ee502523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee502523barEv,_ZThn24_N7ee502523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee502523barEv,_ZThn8_N7ee502523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50252 = { "ee50252", // class name
+ bases_ee50252, 4,
+ &(vtc_ee50252[0]), // expected_vtbl_contents
+ &(vtt_ee50252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60252 : dd0252 {
+ int e;
+ virtual void foo(); // _ZN7ee602523fooEv
+ virtual void bar(); // _ZN7ee602523barEv
+ ~ee60252(); // tgen
+ ee60252(); // tgen
+};
+//SIG(1 ee60252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60252 ::foo(){vfunc_called(this, "_ZN7ee602523fooEv");}
+void ee60252 ::bar(){vfunc_called(this, "_ZN7ee602523barEv");}
+ee60252 ::~ee60252(){ note_dtor("ee60252", this);} // tgen
+ee60252 ::ee60252(){ note_ctor("ee60252", this);} // tgen
+
+static void Test_ee60252()
+{
+ extern Class_Descriptor cd_ee60252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60252, buf);
+ ee60252 *dp, &lv = *(dp=new (buf) ee60252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(24,20), "ee60252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), 0, "ee60252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), 0, "ee60252");
+ check_base_class_offset(lv, (dd0252*), 0, "ee60252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60252.e");
+ test_class_info(&lv, &cd_ee60252);
+ dp->~ee60252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60252(Test_ee60252, "ee60252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60252C1Ev();
+extern void _ZN7ee60252D1Ev();
+Name_Map name_map_ee60252[] = {
+ NSPAIR(_ZN7ee60252C1Ev),
+ NSPAIR(_ZN7ee60252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee60252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60252[];
+extern void _ZN7ee602523barEv();
+extern void _ZN7ee602523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee602523fooEv,_ZTv0_n12_N7ee602523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee602523fooEv,_ZThn20_N7ee602523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee602523barEv,_ZTv0_n16_N7ee602523barEv)();
+extern void ABISELECT(_ZThn24_N7ee602523barEv,_ZThn20_N7ee602523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60252[0]),
+ (VTBL_ENTRY)&_ZN7ee602523barEv,
+ (VTBL_ENTRY)&_ZN7ee602523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee602523fooEv,_ZTv0_n12_N7ee602523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee602523barEv,_ZTv0_n16_N7ee602523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee60252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee60252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee60252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee60252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee60252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee60252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60252[] = {
+ {&(_ZTV7ee60252[3]), 3,11},
+ {&(_tg__ZTV6dd0252__7ee60252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee60252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee60252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee60252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee60252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee60252[4]), 4,6},
+ {&(_ZTV7ee60252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60252[];
+extern VTBL_ENTRY _ZTV7ee60252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60252[];
+static VTBL_ENTRY alt_thunk_names1134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee602523barEv,_ZTv0_n16_N7ee602523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee602523barEv,_ZThn20_N7ee602523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee602523fooEv,_ZTv0_n12_N7ee602523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee602523fooEv,_ZThn20_N7ee602523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60252 = { "ee60252", // class name
+ bases_ee60252, 4,
+ &(vtc_ee60252[0]), // expected_vtbl_contents
+ &(vtt_ee60252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70252 : virtual dd0252 {
+ int e;
+ virtual void foo(); // _ZN7ee702523fooEv
+ virtual void bar(); // _ZN7ee702523barEv
+ ~ee70252(); // tgen
+ ee70252(); // tgen
+};
+//SIG(1 ee70252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70252 ::foo(){vfunc_called(this, "_ZN7ee702523fooEv");}
+void ee70252 ::bar(){vfunc_called(this, "_ZN7ee702523barEv");}
+ee70252 ::~ee70252(){ note_dtor("ee70252", this);} // tgen
+ee70252 ::ee70252(){ note_ctor("ee70252", this);} // tgen
+
+static void Test_ee70252()
+{
+ extern Class_Descriptor cd_ee70252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70252, buf);
+ ee70252 *dp, &lv = *(dp=new (buf) ee70252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd0252*), ABISELECT(40,24), "ee70252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd0252*), ABISELECT(16,8), "ee70252");
+ check_base_class_offset(lv, (cc252*)(dd0252*), ABISELECT(16,8), "ee70252");
+ check_base_class_offset(lv, (dd0252*), ABISELECT(16,8), "ee70252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70252.e");
+ test_class_info(&lv, &cd_ee70252);
+ dp->~ee70252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70252(Test_ee70252, "ee70252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70252C1Ev();
+extern void _ZN7ee70252D1Ev();
+Name_Map name_map_ee70252[] = {
+ NSPAIR(_ZN7ee70252C1Ev),
+ NSPAIR(_ZN7ee70252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd0252;
+extern VTBL_ENTRY _ZTI6dd0252[];
+extern VTBL_ENTRY _ZTV6dd0252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0252[];
+static Base_Class bases_ee70252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70252[];
+extern void _ZN7ee702523fooEv();
+extern void _ZN7ee702523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee702523barEv,_ZTv0_n16_N7ee702523barEv)();
+extern void ABISELECT(_ZThn16_N7ee702523barEv,_ZThn8_N7ee702523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee702523fooEv,_ZTv0_n20_N7ee702523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee702523fooEv,_ZThn8_N7ee702523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee702523fooEv,_ZTv0_n12_N7ee702523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee702523fooEv,_ZThn24_N7ee702523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee702523barEv,_ZTv0_n16_N7ee702523barEv)();
+extern void ABISELECT(_ZThn40_N7ee702523barEv,_ZThn24_N7ee702523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70252[0]),
+ (VTBL_ENTRY)&_ZN7ee702523fooEv,
+ (VTBL_ENTRY)&_ZN7ee702523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702523barEv,_ZTv0_n16_N7ee702523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee702523fooEv,_ZTv0_n20_N7ee702523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee702523fooEv,_ZTv0_n12_N7ee702523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee702523barEv,_ZTv0_n16_N7ee702523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0252__7ee70252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd0252__7ee70252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd0252__7ee70252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd0252__7ee70252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd0252__7ee70252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0252__7ee70252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70252[] = {
+ {&(_ZTV7ee70252[4]), 4,19},
+ {&(_ZTV7ee70252[11]), 11,19},
+ {&(_ZTV7ee70252[17]), 17,19},
+ {&(_tg__ZTV6dd0252__7ee70252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd0252__7ee70252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd0252__7ee70252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd0252__7ee70252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd0252__7ee70252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0252__7ee70252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70252[];
+extern VTBL_ENTRY _ZTV7ee70252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70252[];
+static VTBL_ENTRY alt_thunk_names1135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee702523fooEv,_ZTv0_n12_N7ee702523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee702523fooEv,_ZThn24_N7ee702523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee702523fooEv,_ZTv0_n20_N7ee702523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702523fooEv,_ZThn8_N7ee702523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee702523barEv,_ZTv0_n16_N7ee702523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee702523barEv,_ZThn24_N7ee702523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee702523barEv,_ZThn8_N7ee702523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70252 = { "ee70252", // class name
+ bases_ee70252, 4,
+ &(vtc_ee70252[0]), // expected_vtbl_contents
+ &(vtt_ee70252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1252 : virtual cc252 {
+ int d;
+ ~dd1252(); // tgen
+ dd1252(); // tgen
+};
+//SIG(-1 dd1252) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1252 ::~dd1252(){ note_dtor("dd1252", this);} // tgen
+dd1252 ::dd1252(){ note_ctor("dd1252", this);} // tgen
+
+static void Test_dd1252()
+{
+ extern Class_Descriptor cd_dd1252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1252, buf);
+ dd1252 *dp, &lv = *(dp=new (buf) dd1252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,20), "dd1252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,8), "dd1252");
+ check_base_class_offset(lv, (cc252*), ABISELECT(16,8), "dd1252");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1252.d");
+ test_class_info(&lv, &cd_dd1252);
+ dp->~dd1252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1252(Test_dd1252, "dd1252", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1252C1Ev();
+extern void _ZN6dd1252D1Ev();
+Name_Map name_map_dd1252[] = {
+ NSPAIR(_ZN6dd1252C1Ev),
+ NSPAIR(_ZN6dd1252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd1252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd1252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd1252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd1252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd1252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1252[] = {
+ {&(_ZTV6dd1252[4]), 4,17},
+ {&(_ZTV6dd1252[9]), 9,17},
+ {&(_ZTV6dd1252[15]), 15,17},
+ {&(_tg__ZTV5cc252__6dd1252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd1252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd1252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd1252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static VTBL_ENTRY alt_thunk_names1136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1252 = { "dd1252", // class name
+ bases_dd1252, 3,
+ &(vtc_dd1252[0]), // expected_vtbl_contents
+ &(vtt_dd1252[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1252),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01252 : dd1252 {
+ int e;
+ ~ee01252(); // tgen
+ ee01252(); // tgen
+};
+//SIG(1 ee01252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01252 ::~ee01252(){ note_dtor("ee01252", this);} // tgen
+ee01252 ::ee01252(){ note_ctor("ee01252", this);} // tgen
+
+static void Test_ee01252()
+{
+ extern Class_Descriptor cd_ee01252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01252, buf);
+ ee01252 *dp, &lv = *(dp=new (buf) ee01252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee01252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee01252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(16,12), "ee01252");
+ check_base_class_offset(lv, (dd1252*), 0, "ee01252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01252.e");
+ test_class_info(&lv, &cd_ee01252);
+ dp->~ee01252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01252(Test_ee01252, "ee01252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01252C1Ev();
+extern void _ZN7ee01252D1Ev();
+Name_Map name_map_ee01252[] = {
+ NSPAIR(_ZN7ee01252C1Ev),
+ NSPAIR(_ZN7ee01252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee01252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01252[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee01252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee01252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee01252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee01252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee01252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee01252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee01252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01252[] = {
+ {&(_ZTV7ee01252[4]), 4,17},
+ {&(_tg__ZTV6dd1252__7ee01252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee01252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee01252[4]), 4,6},
+ {&(_ZTV7ee01252[9]), 9,17},
+ {&(_ZTV7ee01252[15]), 15,17},
+ {&(_tg__ZTV5cc252__7ee01252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee01252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee01252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee01252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01252[];
+extern VTBL_ENTRY _ZTV7ee01252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01252[];
+static VTBL_ENTRY alt_thunk_names1137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01252 = { "ee01252", // class name
+ bases_ee01252, 4,
+ &(vtc_ee01252[0]), // expected_vtbl_contents
+ &(vtt_ee01252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11252 : virtual dd1252 {
+ int e;
+ ~ee11252(); // tgen
+ ee11252(); // tgen
+};
+//SIG(1 ee11252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11252 ::~ee11252(){ note_dtor("ee11252", this);} // tgen
+ee11252 ::ee11252(){ note_ctor("ee11252", this);} // tgen
+
+static void Test_ee11252()
+{
+ extern Class_Descriptor cd_ee11252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11252, buf);
+ ee11252 *dp, &lv = *(dp=new (buf) ee11252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee11252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee11252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(32,16), "ee11252");
+ check_base_class_offset(lv, (dd1252*), ABISELECT(16,8), "ee11252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11252.e");
+ test_class_info(&lv, &cd_ee11252);
+ dp->~ee11252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11252(Test_ee11252, "ee11252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11252C1Ev();
+extern void _ZN7ee11252D1Ev();
+Name_Map name_map_ee11252[] = {
+ NSPAIR(_ZN7ee11252C1Ev),
+ NSPAIR(_ZN7ee11252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee11252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11252[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11252[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee11252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee11252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee11252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee11252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee11252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee11252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee11252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11252[] = {
+ {&(_ZTV7ee11252[5]), 5,22},
+ {&(_ZTV7ee11252[9]), 9,22},
+ {&(_ZTV7ee11252[14]), 14,22},
+ {&(_ZTV7ee11252[20]), 20,22},
+ {&(_tg__ZTV6dd1252__7ee11252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee11252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee11252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee11252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee11252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee11252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee11252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11252[];
+extern VTBL_ENTRY _ZTV7ee11252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11252[];
+static VTBL_ENTRY alt_thunk_names1138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11252 = { "ee11252", // class name
+ bases_ee11252, 4,
+ &(vtc_ee11252[0]), // expected_vtbl_contents
+ &(vtt_ee11252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11252),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21252 : dd1252 {
+ int e;
+ virtual void foo(); // _ZN7ee212523fooEv
+ ~ee21252(); // tgen
+ ee21252(); // tgen
+};
+//SIG(1 ee21252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21252 ::foo(){vfunc_called(this, "_ZN7ee212523fooEv");}
+ee21252 ::~ee21252(){ note_dtor("ee21252", this);} // tgen
+ee21252 ::ee21252(){ note_ctor("ee21252", this);} // tgen
+
+static void Test_ee21252()
+{
+ extern Class_Descriptor cd_ee21252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21252, buf);
+ ee21252 *dp, &lv = *(dp=new (buf) ee21252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee21252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee21252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(16,12), "ee21252");
+ check_base_class_offset(lv, (dd1252*), 0, "ee21252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21252.e");
+ test_class_info(&lv, &cd_ee21252);
+ dp->~ee21252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21252(Test_ee21252, "ee21252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21252C1Ev();
+extern void _ZN7ee21252D1Ev();
+Name_Map name_map_ee21252[] = {
+ NSPAIR(_ZN7ee21252C1Ev),
+ NSPAIR(_ZN7ee21252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee21252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21252[];
+extern void _ZN7ee212523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee212523fooEv,_ZTv0_n20_N7ee212523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee212523fooEv,_ZThn12_N7ee212523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee212523fooEv,_ZTv0_n12_N7ee212523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee212523fooEv,_ZThn24_N7ee212523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21252[0]),
+ (VTBL_ENTRY)&_ZN7ee212523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee212523fooEv,_ZTv0_n20_N7ee212523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee212523fooEv,_ZTv0_n12_N7ee212523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee21252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee21252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee21252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee21252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee21252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee21252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee21252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21252[] = {
+ {&(_ZTV7ee21252[4]), 4,18},
+ {&(_tg__ZTV6dd1252__7ee21252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee21252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee21252[4]), 4,6},
+ {&(_ZTV7ee21252[10]), 10,18},
+ {&(_ZTV7ee21252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee21252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee21252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee21252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee21252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21252[];
+extern VTBL_ENTRY _ZTV7ee21252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21252[];
+static VTBL_ENTRY alt_thunk_names1139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee212523fooEv,_ZTv0_n12_N7ee212523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee212523fooEv,_ZThn24_N7ee212523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee212523fooEv,_ZTv0_n20_N7ee212523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee212523fooEv,_ZThn12_N7ee212523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21252 = { "ee21252", // class name
+ bases_ee21252, 4,
+ &(vtc_ee21252[0]), // expected_vtbl_contents
+ &(vtt_ee21252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31252 : virtual dd1252 {
+ int e;
+ virtual void foo(); // _ZN7ee312523fooEv
+ ~ee31252(); // tgen
+ ee31252(); // tgen
+};
+//SIG(1 ee31252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31252 ::foo(){vfunc_called(this, "_ZN7ee312523fooEv");}
+ee31252 ::~ee31252(){ note_dtor("ee31252", this);} // tgen
+ee31252 ::ee31252(){ note_ctor("ee31252", this);} // tgen
+
+static void Test_ee31252()
+{
+ extern Class_Descriptor cd_ee31252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31252, buf);
+ ee31252 *dp, &lv = *(dp=new (buf) ee31252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee31252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee31252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(32,16), "ee31252");
+ check_base_class_offset(lv, (dd1252*), ABISELECT(16,8), "ee31252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31252.e");
+ test_class_info(&lv, &cd_ee31252);
+ dp->~ee31252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31252(Test_ee31252, "ee31252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31252C1Ev();
+extern void _ZN7ee31252D1Ev();
+Name_Map name_map_ee31252[] = {
+ NSPAIR(_ZN7ee31252C1Ev),
+ NSPAIR(_ZN7ee31252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee31252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31252[];
+extern void _ZN7ee312523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee312523fooEv,_ZTv0_n20_N7ee312523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee312523fooEv,_ZThn16_N7ee312523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee312523fooEv,_ZTv0_n12_N7ee312523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee312523fooEv,_ZThn28_N7ee312523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31252[0]),
+ (VTBL_ENTRY)&_ZN7ee312523fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31252[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee312523fooEv,_ZTv0_n20_N7ee312523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee312523fooEv,_ZTv0_n12_N7ee312523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee31252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee31252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee31252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee31252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee31252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee31252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee31252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31252[] = {
+ {&(_ZTV7ee31252[5]), 5,23},
+ {&(_ZTV7ee31252[10]), 10,23},
+ {&(_ZTV7ee31252[15]), 15,23},
+ {&(_ZTV7ee31252[21]), 21,23},
+ {&(_tg__ZTV6dd1252__7ee31252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee31252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee31252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee31252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee31252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee31252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee31252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31252[];
+extern VTBL_ENTRY _ZTV7ee31252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31252[];
+static VTBL_ENTRY alt_thunk_names1140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee312523fooEv,_ZTv0_n12_N7ee312523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee312523fooEv,_ZThn28_N7ee312523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee312523fooEv,_ZTv0_n20_N7ee312523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee312523fooEv,_ZThn16_N7ee312523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31252 = { "ee31252", // class name
+ bases_ee31252, 4,
+ &(vtc_ee31252[0]), // expected_vtbl_contents
+ &(vtt_ee31252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31252),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41252 : dd1252 {
+ int e;
+ virtual void bar(); // _ZN7ee412523barEv
+ ~ee41252(); // tgen
+ ee41252(); // tgen
+};
+//SIG(1 ee41252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41252 ::bar(){vfunc_called(this, "_ZN7ee412523barEv");}
+ee41252 ::~ee41252(){ note_dtor("ee41252", this);} // tgen
+ee41252 ::ee41252(){ note_ctor("ee41252", this);} // tgen
+
+static void Test_ee41252()
+{
+ extern Class_Descriptor cd_ee41252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41252, buf);
+ ee41252 *dp, &lv = *(dp=new (buf) ee41252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee41252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee41252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(16,12), "ee41252");
+ check_base_class_offset(lv, (dd1252*), 0, "ee41252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41252.e");
+ test_class_info(&lv, &cd_ee41252);
+ dp->~ee41252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41252(Test_ee41252, "ee41252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41252C1Ev();
+extern void _ZN7ee41252D1Ev();
+Name_Map name_map_ee41252[] = {
+ NSPAIR(_ZN7ee41252C1Ev),
+ NSPAIR(_ZN7ee41252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee41252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41252[];
+extern void _ZN7ee412523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee412523barEv,_ZTv0_n16_N7ee412523barEv)();
+extern void ABISELECT(_ZThn16_N7ee412523barEv,_ZThn12_N7ee412523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee412523barEv,_ZTv0_n16_N7ee412523barEv)();
+extern void ABISELECT(_ZThn32_N7ee412523barEv,_ZThn24_N7ee412523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41252[0]),
+ (VTBL_ENTRY)&_ZN7ee412523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412523barEv,_ZTv0_n16_N7ee412523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee412523barEv,_ZTv0_n16_N7ee412523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee41252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee41252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee41252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee41252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee41252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee41252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee41252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41252[] = {
+ {&(_ZTV7ee41252[4]), 4,18},
+ {&(_tg__ZTV6dd1252__7ee41252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee41252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee41252[4]), 4,6},
+ {&(_ZTV7ee41252[10]), 10,18},
+ {&(_ZTV7ee41252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee41252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee41252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee41252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee41252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41252[];
+extern VTBL_ENTRY _ZTV7ee41252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41252[];
+static VTBL_ENTRY alt_thunk_names1141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee412523barEv,_ZTv0_n16_N7ee412523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee412523barEv,_ZThn24_N7ee412523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee412523barEv,_ZThn12_N7ee412523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41252 = { "ee41252", // class name
+ bases_ee41252, 4,
+ &(vtc_ee41252[0]), // expected_vtbl_contents
+ &(vtt_ee41252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1141,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51252 : virtual dd1252 {
+ int e;
+ virtual void bar(); // _ZN7ee512523barEv
+ ~ee51252(); // tgen
+ ee51252(); // tgen
+};
+//SIG(1 ee51252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51252 ::bar(){vfunc_called(this, "_ZN7ee512523barEv");}
+ee51252 ::~ee51252(){ note_dtor("ee51252", this);} // tgen
+ee51252 ::ee51252(){ note_ctor("ee51252", this);} // tgen
+
+static void Test_ee51252()
+{
+ extern Class_Descriptor cd_ee51252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51252, buf);
+ ee51252 *dp, &lv = *(dp=new (buf) ee51252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee51252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee51252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(32,16), "ee51252");
+ check_base_class_offset(lv, (dd1252*), ABISELECT(16,8), "ee51252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51252.e");
+ test_class_info(&lv, &cd_ee51252);
+ dp->~ee51252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51252(Test_ee51252, "ee51252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51252C1Ev();
+extern void _ZN7ee51252D1Ev();
+Name_Map name_map_ee51252[] = {
+ NSPAIR(_ZN7ee51252C1Ev),
+ NSPAIR(_ZN7ee51252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee51252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51252[];
+extern void _ZN7ee512523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee512523barEv,_ZTv0_n16_N7ee512523barEv)();
+extern void ABISELECT(_ZThn32_N7ee512523barEv,_ZThn16_N7ee512523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee512523barEv,_ZTv0_n16_N7ee512523barEv)();
+extern void ABISELECT(_ZThn48_N7ee512523barEv,_ZThn28_N7ee512523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51252[0]),
+ (VTBL_ENTRY)&_ZN7ee512523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51252[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512523barEv,_ZTv0_n16_N7ee512523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee512523barEv,_ZTv0_n16_N7ee512523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee51252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee51252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee51252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee51252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee51252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee51252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee51252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51252[] = {
+ {&(_ZTV7ee51252[5]), 5,23},
+ {&(_ZTV7ee51252[10]), 10,23},
+ {&(_ZTV7ee51252[15]), 15,23},
+ {&(_ZTV7ee51252[21]), 21,23},
+ {&(_tg__ZTV6dd1252__7ee51252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee51252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee51252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee51252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee51252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee51252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee51252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51252[];
+extern VTBL_ENTRY _ZTV7ee51252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51252[];
+static VTBL_ENTRY alt_thunk_names1142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee512523barEv,_ZTv0_n16_N7ee512523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee512523barEv,_ZThn28_N7ee512523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee512523barEv,_ZThn16_N7ee512523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51252 = { "ee51252", // class name
+ bases_ee51252, 4,
+ &(vtc_ee51252[0]), // expected_vtbl_contents
+ &(vtt_ee51252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51252),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61252 : dd1252 {
+ int e;
+ virtual void foo(); // _ZN7ee612523fooEv
+ virtual void bar(); // _ZN7ee612523barEv
+ ~ee61252(); // tgen
+ ee61252(); // tgen
+};
+//SIG(1 ee61252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61252 ::foo(){vfunc_called(this, "_ZN7ee612523fooEv");}
+void ee61252 ::bar(){vfunc_called(this, "_ZN7ee612523barEv");}
+ee61252 ::~ee61252(){ note_dtor("ee61252", this);} // tgen
+ee61252 ::ee61252(){ note_ctor("ee61252", this);} // tgen
+
+static void Test_ee61252()
+{
+ extern Class_Descriptor cd_ee61252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61252, buf);
+ ee61252 *dp, &lv = *(dp=new (buf) ee61252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee61252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee61252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(16,12), "ee61252");
+ check_base_class_offset(lv, (dd1252*), 0, "ee61252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61252.e");
+ test_class_info(&lv, &cd_ee61252);
+ dp->~ee61252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61252(Test_ee61252, "ee61252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61252C1Ev();
+extern void _ZN7ee61252D1Ev();
+Name_Map name_map_ee61252[] = {
+ NSPAIR(_ZN7ee61252C1Ev),
+ NSPAIR(_ZN7ee61252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee61252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61252[];
+extern void _ZN7ee612523fooEv();
+extern void _ZN7ee612523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee612523barEv,_ZTv0_n16_N7ee612523barEv)();
+extern void ABISELECT(_ZThn16_N7ee612523barEv,_ZThn12_N7ee612523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee612523fooEv,_ZTv0_n20_N7ee612523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee612523fooEv,_ZThn12_N7ee612523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee612523fooEv,_ZTv0_n12_N7ee612523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee612523fooEv,_ZThn24_N7ee612523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee612523barEv,_ZTv0_n16_N7ee612523barEv)();
+extern void ABISELECT(_ZThn32_N7ee612523barEv,_ZThn24_N7ee612523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61252[0]),
+ (VTBL_ENTRY)&_ZN7ee612523fooEv,
+ (VTBL_ENTRY)&_ZN7ee612523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612523barEv,_ZTv0_n16_N7ee612523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee612523fooEv,_ZTv0_n20_N7ee612523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee612523fooEv,_ZTv0_n12_N7ee612523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee612523barEv,_ZTv0_n16_N7ee612523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee61252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee61252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee61252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee61252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee61252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee61252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee61252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61252[] = {
+ {&(_ZTV7ee61252[4]), 4,19},
+ {&(_tg__ZTV6dd1252__7ee61252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee61252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee61252[4]), 4,6},
+ {&(_ZTV7ee61252[11]), 11,19},
+ {&(_ZTV7ee61252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee61252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee61252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee61252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee61252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61252[];
+extern VTBL_ENTRY _ZTV7ee61252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61252[];
+static VTBL_ENTRY alt_thunk_names1143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee612523fooEv,_ZTv0_n12_N7ee612523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee612523fooEv,_ZThn24_N7ee612523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee612523fooEv,_ZTv0_n20_N7ee612523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612523fooEv,_ZThn12_N7ee612523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee612523barEv,_ZTv0_n16_N7ee612523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee612523barEv,_ZThn24_N7ee612523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee612523barEv,_ZThn12_N7ee612523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61252 = { "ee61252", // class name
+ bases_ee61252, 4,
+ &(vtc_ee61252[0]), // expected_vtbl_contents
+ &(vtt_ee61252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1143,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71252 : virtual dd1252 {
+ int e;
+ virtual void foo(); // _ZN7ee712523fooEv
+ virtual void bar(); // _ZN7ee712523barEv
+ ~ee71252(); // tgen
+ ee71252(); // tgen
+};
+//SIG(1 ee71252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71252 ::foo(){vfunc_called(this, "_ZN7ee712523fooEv");}
+void ee71252 ::bar(){vfunc_called(this, "_ZN7ee712523barEv");}
+ee71252 ::~ee71252(){ note_dtor("ee71252", this);} // tgen
+ee71252 ::ee71252(){ note_ctor("ee71252", this);} // tgen
+
+static void Test_ee71252()
+{
+ extern Class_Descriptor cd_ee71252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71252, buf);
+ ee71252 *dp, &lv = *(dp=new (buf) ee71252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee71252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee71252");
+ check_base_class_offset(lv, (cc252*)(dd1252*), ABISELECT(32,16), "ee71252");
+ check_base_class_offset(lv, (dd1252*), ABISELECT(16,8), "ee71252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71252.e");
+ test_class_info(&lv, &cd_ee71252);
+ dp->~ee71252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71252(Test_ee71252, "ee71252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71252C1Ev();
+extern void _ZN7ee71252D1Ev();
+Name_Map name_map_ee71252[] = {
+ NSPAIR(_ZN7ee71252C1Ev),
+ NSPAIR(_ZN7ee71252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd1252;
+extern VTBL_ENTRY _ZTI6dd1252[];
+extern VTBL_ENTRY _ZTV6dd1252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1252[];
+static Base_Class bases_ee71252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1252, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71252[];
+extern void _ZN7ee712523fooEv();
+extern void _ZN7ee712523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee712523barEv,_ZTv0_n16_N7ee712523barEv)();
+extern void ABISELECT(_ZThn32_N7ee712523barEv,_ZThn16_N7ee712523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee712523fooEv,_ZTv0_n20_N7ee712523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee712523fooEv,_ZThn16_N7ee712523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee712523fooEv,_ZTv0_n12_N7ee712523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee712523fooEv,_ZThn28_N7ee712523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee712523barEv,_ZTv0_n16_N7ee712523barEv)();
+extern void ABISELECT(_ZThn48_N7ee712523barEv,_ZThn28_N7ee712523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71252[0]),
+ (VTBL_ENTRY)&_ZN7ee712523fooEv,
+ (VTBL_ENTRY)&_ZN7ee712523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71252[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712523barEv,_ZTv0_n16_N7ee712523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee712523fooEv,_ZTv0_n20_N7ee712523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee712523fooEv,_ZTv0_n12_N7ee712523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee712523barEv,_ZTv0_n16_N7ee712523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71252[];
+static VTBL_ENTRY _tg__ZTV6dd1252__7ee71252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd1252__7ee71252[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1252__7ee71252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee71252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee71252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee71252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee71252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71252[] = {
+ {&(_ZTV7ee71252[5]), 5,24},
+ {&(_ZTV7ee71252[11]), 11,24},
+ {&(_ZTV7ee71252[16]), 16,24},
+ {&(_ZTV7ee71252[22]), 22,24},
+ {&(_tg__ZTV6dd1252__7ee71252[4]), 4,4},
+ {&(_tg__ZTV5cc252__6dd1252__7ee71252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1252__7ee71252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee71252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee71252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee71252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee71252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71252[];
+extern VTBL_ENTRY _ZTV7ee71252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71252[];
+static VTBL_ENTRY alt_thunk_names1144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee712523fooEv,_ZTv0_n12_N7ee712523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee712523fooEv,_ZThn28_N7ee712523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee712523fooEv,_ZTv0_n20_N7ee712523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712523fooEv,_ZThn16_N7ee712523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee712523barEv,_ZTv0_n16_N7ee712523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee712523barEv,_ZThn28_N7ee712523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee712523barEv,_ZThn16_N7ee712523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71252 = { "ee71252", // class name
+ bases_ee71252, 4,
+ &(vtc_ee71252[0]), // expected_vtbl_contents
+ &(vtt_ee71252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71252),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2252 : cc252 {
+ int d;
+ virtual void foo(); // _ZN6dd22523fooEv
+ ~dd2252(); // tgen
+ dd2252(); // tgen
+};
+//SIG(-1 dd2252) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2252 ::foo(){vfunc_called(this, "_ZN6dd22523fooEv");}
+dd2252 ::~dd2252(){ note_dtor("dd2252", this);} // tgen
+dd2252 ::dd2252(){ note_ctor("dd2252", this);} // tgen
+
+static void Test_dd2252()
+{
+ extern Class_Descriptor cd_dd2252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2252, buf);
+ dd2252 *dp, &lv = *(dp=new (buf) dd2252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(24,16), "dd2252");
+ check_base_class_offset(lv, (bb52*)(cc252*), 0, "dd2252");
+ check_base_class_offset(lv, (cc252*), 0, "dd2252");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2252.d");
+ test_class_info(&lv, &cd_dd2252);
+ dp->~dd2252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2252(Test_dd2252, "dd2252", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2252C1Ev();
+extern void _ZN6dd2252D1Ev();
+Name_Map name_map_dd2252[] = {
+ NSPAIR(_ZN6dd2252C1Ev),
+ NSPAIR(_ZN6dd2252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd2252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd2252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd2252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd2252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd2252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2252[] = {
+ {&(_ZTV6dd2252[3]), 3,11},
+ {&(_tg__ZTV5cc252__6dd2252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd2252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd2252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd2252[4]), 4,6},
+ {&(_ZTV6dd2252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static VTBL_ENTRY alt_thunk_names1145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2252 = { "dd2252", // class name
+ bases_dd2252, 3,
+ &(vtc_dd2252[0]), // expected_vtbl_contents
+ &(vtt_dd2252[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2252),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02252 : dd2252 {
+ int e;
+ ~ee02252(); // tgen
+ ee02252(); // tgen
+};
+//SIG(1 ee02252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02252 ::~ee02252(){ note_dtor("ee02252", this);} // tgen
+ee02252 ::ee02252(){ note_ctor("ee02252", this);} // tgen
+
+static void Test_ee02252()
+{
+ extern Class_Descriptor cd_ee02252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02252, buf);
+ ee02252 *dp, &lv = *(dp=new (buf) ee02252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(24,20), "ee02252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), 0, "ee02252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), 0, "ee02252");
+ check_base_class_offset(lv, (dd2252*), 0, "ee02252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02252.e");
+ test_class_info(&lv, &cd_ee02252);
+ dp->~ee02252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02252(Test_ee02252, "ee02252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02252C1Ev();
+extern void _ZN7ee02252D1Ev();
+Name_Map name_map_ee02252[] = {
+ NSPAIR(_ZN7ee02252C1Ev),
+ NSPAIR(_ZN7ee02252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee02252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee02252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee02252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee02252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee02252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee02252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee02252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02252[] = {
+ {&(_ZTV7ee02252[3]), 3,11},
+ {&(_tg__ZTV6dd2252__7ee02252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee02252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee02252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee02252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee02252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee02252[4]), 4,6},
+ {&(_ZTV7ee02252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02252[];
+extern VTBL_ENTRY _ZTV7ee02252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02252[];
+static VTBL_ENTRY alt_thunk_names1146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02252 = { "ee02252", // class name
+ bases_ee02252, 4,
+ &(vtc_ee02252[0]), // expected_vtbl_contents
+ &(vtt_ee02252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12252 : virtual dd2252 {
+ int e;
+ ~ee12252(); // tgen
+ ee12252(); // tgen
+};
+//SIG(1 ee12252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12252 ::~ee12252(){ note_dtor("ee12252", this);} // tgen
+ee12252 ::ee12252(){ note_ctor("ee12252", this);} // tgen
+
+static void Test_ee12252()
+{
+ extern Class_Descriptor cd_ee12252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12252, buf);
+ ee12252 *dp, &lv = *(dp=new (buf) ee12252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(40,24), "ee12252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), ABISELECT(16,8), "ee12252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), ABISELECT(16,8), "ee12252");
+ check_base_class_offset(lv, (dd2252*), ABISELECT(16,8), "ee12252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12252.e");
+ test_class_info(&lv, &cd_ee12252);
+ dp->~ee12252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12252(Test_ee12252, "ee12252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12252C1Ev();
+extern void _ZN7ee12252D1Ev();
+Name_Map name_map_ee12252[] = {
+ NSPAIR(_ZN7ee12252C1Ev),
+ NSPAIR(_ZN7ee12252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee12252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12252[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee12252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee12252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee12252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee12252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee12252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee12252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12252[] = {
+ {&(_ZTV7ee12252[4]), 4,17},
+ {&(_ZTV7ee12252[9]), 9,17},
+ {&(_ZTV7ee12252[15]), 15,17},
+ {&(_tg__ZTV6dd2252__7ee12252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee12252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee12252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee12252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee12252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee12252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12252[];
+extern VTBL_ENTRY _ZTV7ee12252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12252[];
+static VTBL_ENTRY alt_thunk_names1147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12252 = { "ee12252", // class name
+ bases_ee12252, 4,
+ &(vtc_ee12252[0]), // expected_vtbl_contents
+ &(vtt_ee12252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22252 : dd2252 {
+ int e;
+ virtual void foo(); // _ZN7ee222523fooEv
+ ~ee22252(); // tgen
+ ee22252(); // tgen
+};
+//SIG(1 ee22252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22252 ::foo(){vfunc_called(this, "_ZN7ee222523fooEv");}
+ee22252 ::~ee22252(){ note_dtor("ee22252", this);} // tgen
+ee22252 ::ee22252(){ note_ctor("ee22252", this);} // tgen
+
+static void Test_ee22252()
+{
+ extern Class_Descriptor cd_ee22252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22252, buf);
+ ee22252 *dp, &lv = *(dp=new (buf) ee22252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(24,20), "ee22252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), 0, "ee22252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), 0, "ee22252");
+ check_base_class_offset(lv, (dd2252*), 0, "ee22252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22252.e");
+ test_class_info(&lv, &cd_ee22252);
+ dp->~ee22252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22252(Test_ee22252, "ee22252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22252C1Ev();
+extern void _ZN7ee22252D1Ev();
+Name_Map name_map_ee22252[] = {
+ NSPAIR(_ZN7ee22252C1Ev),
+ NSPAIR(_ZN7ee22252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee22252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22252[];
+extern void _ZN4bb523barEv();
+extern void _ZN7ee222523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee222523fooEv,_ZTv0_n12_N7ee222523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee222523fooEv,_ZThn20_N7ee222523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN7ee222523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee222523fooEv,_ZTv0_n12_N7ee222523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee22252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee22252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee22252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee22252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee22252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee22252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22252[] = {
+ {&(_ZTV7ee22252[3]), 3,11},
+ {&(_tg__ZTV6dd2252__7ee22252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee22252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee22252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee22252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee22252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee22252[4]), 4,6},
+ {&(_ZTV7ee22252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22252[];
+extern VTBL_ENTRY _ZTV7ee22252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22252[];
+static VTBL_ENTRY alt_thunk_names1148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee222523fooEv,_ZTv0_n12_N7ee222523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee222523fooEv,_ZThn20_N7ee222523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22252 = { "ee22252", // class name
+ bases_ee22252, 4,
+ &(vtc_ee22252[0]), // expected_vtbl_contents
+ &(vtt_ee22252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32252 : virtual dd2252 {
+ int e;
+ virtual void foo(); // _ZN7ee322523fooEv
+ ~ee32252(); // tgen
+ ee32252(); // tgen
+};
+//SIG(1 ee32252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32252 ::foo(){vfunc_called(this, "_ZN7ee322523fooEv");}
+ee32252 ::~ee32252(){ note_dtor("ee32252", this);} // tgen
+ee32252 ::ee32252(){ note_ctor("ee32252", this);} // tgen
+
+static void Test_ee32252()
+{
+ extern Class_Descriptor cd_ee32252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32252, buf);
+ ee32252 *dp, &lv = *(dp=new (buf) ee32252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(40,24), "ee32252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), ABISELECT(16,8), "ee32252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), ABISELECT(16,8), "ee32252");
+ check_base_class_offset(lv, (dd2252*), ABISELECT(16,8), "ee32252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32252.e");
+ test_class_info(&lv, &cd_ee32252);
+ dp->~ee32252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32252(Test_ee32252, "ee32252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32252C1Ev();
+extern void _ZN7ee32252D1Ev();
+Name_Map name_map_ee32252[] = {
+ NSPAIR(_ZN7ee32252C1Ev),
+ NSPAIR(_ZN7ee32252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee32252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32252[];
+extern void _ZN7ee322523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee322523fooEv,_ZTv0_n20_N7ee322523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee322523fooEv,_ZThn8_N7ee322523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee322523fooEv,_ZTv0_n12_N7ee322523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee322523fooEv,_ZThn24_N7ee322523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32252[0]),
+ (VTBL_ENTRY)&_ZN7ee322523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee322523fooEv,_ZTv0_n20_N7ee322523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee322523fooEv,_ZTv0_n12_N7ee322523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee32252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee32252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee32252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee32252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee32252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee32252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32252[] = {
+ {&(_ZTV7ee32252[4]), 4,18},
+ {&(_ZTV7ee32252[10]), 10,18},
+ {&(_ZTV7ee32252[16]), 16,18},
+ {&(_tg__ZTV6dd2252__7ee32252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee32252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee32252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee32252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee32252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee32252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32252[];
+extern VTBL_ENTRY _ZTV7ee32252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32252[];
+static VTBL_ENTRY alt_thunk_names1149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee322523fooEv,_ZTv0_n12_N7ee322523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee322523fooEv,_ZThn24_N7ee322523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee322523fooEv,_ZTv0_n20_N7ee322523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee322523fooEv,_ZThn8_N7ee322523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32252 = { "ee32252", // class name
+ bases_ee32252, 4,
+ &(vtc_ee32252[0]), // expected_vtbl_contents
+ &(vtt_ee32252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42252 : dd2252 {
+ int e;
+ virtual void bar(); // _ZN7ee422523barEv
+ ~ee42252(); // tgen
+ ee42252(); // tgen
+};
+//SIG(1 ee42252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42252 ::bar(){vfunc_called(this, "_ZN7ee422523barEv");}
+ee42252 ::~ee42252(){ note_dtor("ee42252", this);} // tgen
+ee42252 ::ee42252(){ note_ctor("ee42252", this);} // tgen
+
+static void Test_ee42252()
+{
+ extern Class_Descriptor cd_ee42252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42252, buf);
+ ee42252 *dp, &lv = *(dp=new (buf) ee42252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(24,20), "ee42252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), 0, "ee42252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), 0, "ee42252");
+ check_base_class_offset(lv, (dd2252*), 0, "ee42252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42252.e");
+ test_class_info(&lv, &cd_ee42252);
+ dp->~ee42252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42252(Test_ee42252, "ee42252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42252C1Ev();
+extern void _ZN7ee42252D1Ev();
+Name_Map name_map_ee42252[] = {
+ NSPAIR(_ZN7ee42252C1Ev),
+ NSPAIR(_ZN7ee42252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee42252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42252[];
+extern void _ZN7ee422523barEv();
+extern void _ZN6dd22523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee422523barEv,_ZTv0_n16_N7ee422523barEv)();
+extern void ABISELECT(_ZThn24_N7ee422523barEv,_ZThn20_N7ee422523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42252[0]),
+ (VTBL_ENTRY)&_ZN7ee422523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee422523barEv,_ZTv0_n16_N7ee422523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee42252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee42252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee42252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee42252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee42252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee42252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42252[] = {
+ {&(_ZTV7ee42252[3]), 3,11},
+ {&(_tg__ZTV6dd2252__7ee42252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee42252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee42252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee42252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee42252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee42252[4]), 4,6},
+ {&(_ZTV7ee42252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42252[];
+extern VTBL_ENTRY _ZTV7ee42252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42252[];
+static VTBL_ENTRY alt_thunk_names1150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee422523barEv,_ZTv0_n16_N7ee422523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee422523barEv,_ZThn20_N7ee422523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42252 = { "ee42252", // class name
+ bases_ee42252, 4,
+ &(vtc_ee42252[0]), // expected_vtbl_contents
+ &(vtt_ee42252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52252 : virtual dd2252 {
+ int e;
+ virtual void bar(); // _ZN7ee522523barEv
+ ~ee52252(); // tgen
+ ee52252(); // tgen
+};
+//SIG(1 ee52252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52252 ::bar(){vfunc_called(this, "_ZN7ee522523barEv");}
+ee52252 ::~ee52252(){ note_dtor("ee52252", this);} // tgen
+ee52252 ::ee52252(){ note_ctor("ee52252", this);} // tgen
+
+static void Test_ee52252()
+{
+ extern Class_Descriptor cd_ee52252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52252, buf);
+ ee52252 *dp, &lv = *(dp=new (buf) ee52252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(40,24), "ee52252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), ABISELECT(16,8), "ee52252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), ABISELECT(16,8), "ee52252");
+ check_base_class_offset(lv, (dd2252*), ABISELECT(16,8), "ee52252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52252.e");
+ test_class_info(&lv, &cd_ee52252);
+ dp->~ee52252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52252(Test_ee52252, "ee52252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52252C1Ev();
+extern void _ZN7ee52252D1Ev();
+Name_Map name_map_ee52252[] = {
+ NSPAIR(_ZN7ee52252C1Ev),
+ NSPAIR(_ZN7ee52252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee52252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52252[];
+extern void _ZN7ee522523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee522523barEv,_ZTv0_n16_N7ee522523barEv)();
+extern void ABISELECT(_ZThn16_N7ee522523barEv,_ZThn8_N7ee522523barEv)() __attribute__((weak));
+extern void _ZN6dd22523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee522523barEv,_ZTv0_n16_N7ee522523barEv)();
+extern void ABISELECT(_ZThn40_N7ee522523barEv,_ZThn24_N7ee522523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52252[0]),
+ (VTBL_ENTRY)&_ZN7ee522523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522523barEv,_ZTv0_n16_N7ee522523barEv),
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee522523barEv,_ZTv0_n16_N7ee522523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee52252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee52252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee52252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee52252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee52252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee52252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52252[] = {
+ {&(_ZTV7ee52252[4]), 4,18},
+ {&(_ZTV7ee52252[10]), 10,18},
+ {&(_ZTV7ee52252[16]), 16,18},
+ {&(_tg__ZTV6dd2252__7ee52252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee52252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee52252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee52252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee52252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee52252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52252[];
+extern VTBL_ENTRY _ZTV7ee52252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52252[];
+static VTBL_ENTRY alt_thunk_names1151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee522523barEv,_ZTv0_n16_N7ee522523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee522523barEv,_ZThn24_N7ee522523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee522523barEv,_ZThn8_N7ee522523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52252 = { "ee52252", // class name
+ bases_ee52252, 4,
+ &(vtc_ee52252[0]), // expected_vtbl_contents
+ &(vtt_ee52252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62252 : dd2252 {
+ int e;
+ virtual void foo(); // _ZN7ee622523fooEv
+ virtual void bar(); // _ZN7ee622523barEv
+ ~ee62252(); // tgen
+ ee62252(); // tgen
+};
+//SIG(1 ee62252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62252 ::foo(){vfunc_called(this, "_ZN7ee622523fooEv");}
+void ee62252 ::bar(){vfunc_called(this, "_ZN7ee622523barEv");}
+ee62252 ::~ee62252(){ note_dtor("ee62252", this);} // tgen
+ee62252 ::ee62252(){ note_ctor("ee62252", this);} // tgen
+
+static void Test_ee62252()
+{
+ extern Class_Descriptor cd_ee62252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62252, buf);
+ ee62252 *dp, &lv = *(dp=new (buf) ee62252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(24,20), "ee62252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), 0, "ee62252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), 0, "ee62252");
+ check_base_class_offset(lv, (dd2252*), 0, "ee62252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62252.e");
+ test_class_info(&lv, &cd_ee62252);
+ dp->~ee62252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62252(Test_ee62252, "ee62252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62252C1Ev();
+extern void _ZN7ee62252D1Ev();
+Name_Map name_map_ee62252[] = {
+ NSPAIR(_ZN7ee62252C1Ev),
+ NSPAIR(_ZN7ee62252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee62252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62252[];
+extern void _ZN7ee622523barEv();
+extern void _ZN7ee622523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee622523fooEv,_ZTv0_n12_N7ee622523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee622523fooEv,_ZThn20_N7ee622523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee622523barEv,_ZTv0_n16_N7ee622523barEv)();
+extern void ABISELECT(_ZThn24_N7ee622523barEv,_ZThn20_N7ee622523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62252[0]),
+ (VTBL_ENTRY)&_ZN7ee622523barEv,
+ (VTBL_ENTRY)&_ZN7ee622523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee622523fooEv,_ZTv0_n12_N7ee622523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee622523barEv,_ZTv0_n16_N7ee622523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee62252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee62252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee62252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee62252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee62252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee62252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62252[] = {
+ {&(_ZTV7ee62252[3]), 3,11},
+ {&(_tg__ZTV6dd2252__7ee62252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee62252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee62252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee62252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee62252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee62252[4]), 4,6},
+ {&(_ZTV7ee62252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62252[];
+extern VTBL_ENTRY _ZTV7ee62252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62252[];
+static VTBL_ENTRY alt_thunk_names1152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn20_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee622523barEv,_ZTv0_n16_N7ee622523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee622523barEv,_ZThn20_N7ee622523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee622523fooEv,_ZTv0_n12_N7ee622523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee622523fooEv,_ZThn20_N7ee622523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62252 = { "ee62252", // class name
+ bases_ee62252, 4,
+ &(vtc_ee62252[0]), // expected_vtbl_contents
+ &(vtt_ee62252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72252 : virtual dd2252 {
+ int e;
+ virtual void foo(); // _ZN7ee722523fooEv
+ virtual void bar(); // _ZN7ee722523barEv
+ ~ee72252(); // tgen
+ ee72252(); // tgen
+};
+//SIG(1 ee72252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72252 ::foo(){vfunc_called(this, "_ZN7ee722523fooEv");}
+void ee72252 ::bar(){vfunc_called(this, "_ZN7ee722523barEv");}
+ee72252 ::~ee72252(){ note_dtor("ee72252", this);} // tgen
+ee72252 ::ee72252(){ note_ctor("ee72252", this);} // tgen
+
+static void Test_ee72252()
+{
+ extern Class_Descriptor cd_ee72252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72252, buf);
+ ee72252 *dp, &lv = *(dp=new (buf) ee72252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd2252*), ABISELECT(40,24), "ee72252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd2252*), ABISELECT(16,8), "ee72252");
+ check_base_class_offset(lv, (cc252*)(dd2252*), ABISELECT(16,8), "ee72252");
+ check_base_class_offset(lv, (dd2252*), ABISELECT(16,8), "ee72252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72252.e");
+ test_class_info(&lv, &cd_ee72252);
+ dp->~ee72252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72252(Test_ee72252, "ee72252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72252C1Ev();
+extern void _ZN7ee72252D1Ev();
+Name_Map name_map_ee72252[] = {
+ NSPAIR(_ZN7ee72252C1Ev),
+ NSPAIR(_ZN7ee72252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd2252;
+extern VTBL_ENTRY _ZTI6dd2252[];
+extern VTBL_ENTRY _ZTV6dd2252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2252[];
+static Base_Class bases_ee72252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72252[];
+extern void _ZN7ee722523fooEv();
+extern void _ZN7ee722523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee722523barEv,_ZTv0_n16_N7ee722523barEv)();
+extern void ABISELECT(_ZThn16_N7ee722523barEv,_ZThn8_N7ee722523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee722523fooEv,_ZTv0_n20_N7ee722523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee722523fooEv,_ZThn8_N7ee722523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee722523fooEv,_ZTv0_n12_N7ee722523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee722523fooEv,_ZThn24_N7ee722523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee722523barEv,_ZTv0_n16_N7ee722523barEv)();
+extern void ABISELECT(_ZThn40_N7ee722523barEv,_ZThn24_N7ee722523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72252[0]),
+ (VTBL_ENTRY)&_ZN7ee722523fooEv,
+ (VTBL_ENTRY)&_ZN7ee722523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722523barEv,_ZTv0_n16_N7ee722523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee722523fooEv,_ZTv0_n20_N7ee722523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee722523fooEv,_ZTv0_n12_N7ee722523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee722523barEv,_ZTv0_n16_N7ee722523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72252[];
+extern void _ZN4bb523barEv();
+extern void _ZN6dd22523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2252__7ee72252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN6dd22523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd2252__7ee72252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd2252__7ee72252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd2252__7ee72252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd2252__7ee72252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2252__7ee72252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72252[] = {
+ {&(_ZTV7ee72252[4]), 4,19},
+ {&(_ZTV7ee72252[11]), 11,19},
+ {&(_ZTV7ee72252[17]), 17,19},
+ {&(_tg__ZTV6dd2252__7ee72252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd2252__7ee72252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd2252__7ee72252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd2252__7ee72252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd2252__7ee72252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2252__7ee72252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72252[];
+extern VTBL_ENTRY _ZTV7ee72252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72252[];
+static VTBL_ENTRY alt_thunk_names1153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd22523fooEv,_ZTv0_n12_N6dd22523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd22523fooEv,_ZThn16_N6dd22523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee722523fooEv,_ZTv0_n12_N7ee722523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee722523fooEv,_ZThn24_N7ee722523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee722523fooEv,_ZTv0_n20_N7ee722523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722523fooEv,_ZThn8_N7ee722523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee722523barEv,_ZTv0_n16_N7ee722523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee722523barEv,_ZThn24_N7ee722523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee722523barEv,_ZThn8_N7ee722523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72252 = { "ee72252", // class name
+ bases_ee72252, 4,
+ &(vtc_ee72252[0]), // expected_vtbl_contents
+ &(vtt_ee72252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3252 : virtual cc252 {
+ int d;
+ virtual void foo(); // _ZN6dd32523fooEv
+ ~dd3252(); // tgen
+ dd3252(); // tgen
+};
+//SIG(-1 dd3252) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3252 ::foo(){vfunc_called(this, "_ZN6dd32523fooEv");}
+dd3252 ::~dd3252(){ note_dtor("dd3252", this);} // tgen
+dd3252 ::dd3252(){ note_ctor("dd3252", this);} // tgen
+
+static void Test_dd3252()
+{
+ extern Class_Descriptor cd_dd3252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3252, buf);
+ dd3252 *dp, &lv = *(dp=new (buf) dd3252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,20), "dd3252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,8), "dd3252");
+ check_base_class_offset(lv, (cc252*), ABISELECT(16,8), "dd3252");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3252.d");
+ test_class_info(&lv, &cd_dd3252);
+ dp->~dd3252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3252(Test_dd3252, "dd3252", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3252C1Ev();
+extern void _ZN6dd3252D1Ev();
+Name_Map name_map_dd3252[] = {
+ NSPAIR(_ZN6dd3252C1Ev),
+ NSPAIR(_ZN6dd3252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd3252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd3252[];
+extern void _ZN6dd32523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd3252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd3252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd3252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3252[] = {
+ {&(_ZTV6dd3252[4]), 4,18},
+ {&(_ZTV6dd3252[10]), 10,18},
+ {&(_ZTV6dd3252[16]), 16,18},
+ {&(_tg__ZTV5cc252__6dd3252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd3252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd3252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd3252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static VTBL_ENTRY alt_thunk_names1154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3252 = { "dd3252", // class name
+ bases_dd3252, 3,
+ &(vtc_dd3252[0]), // expected_vtbl_contents
+ &(vtt_dd3252[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3252),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03252 : dd3252 {
+ int e;
+ ~ee03252(); // tgen
+ ee03252(); // tgen
+};
+//SIG(1 ee03252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03252 ::~ee03252(){ note_dtor("ee03252", this);} // tgen
+ee03252 ::ee03252(){ note_ctor("ee03252", this);} // tgen
+
+static void Test_ee03252()
+{
+ extern Class_Descriptor cd_ee03252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03252, buf);
+ ee03252 *dp, &lv = *(dp=new (buf) ee03252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee03252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee03252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(16,12), "ee03252");
+ check_base_class_offset(lv, (dd3252*), 0, "ee03252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03252.e");
+ test_class_info(&lv, &cd_ee03252);
+ dp->~ee03252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03252(Test_ee03252, "ee03252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03252C1Ev();
+extern void _ZN7ee03252D1Ev();
+Name_Map name_map_ee03252[] = {
+ NSPAIR(_ZN7ee03252C1Ev),
+ NSPAIR(_ZN7ee03252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee03252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03252[];
+extern void _ZN6dd32523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee03252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee03252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee03252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee03252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee03252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee03252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee03252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03252[] = {
+ {&(_ZTV7ee03252[4]), 4,18},
+ {&(_tg__ZTV6dd3252__7ee03252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee03252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee03252[4]), 4,6},
+ {&(_ZTV7ee03252[10]), 10,18},
+ {&(_ZTV7ee03252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee03252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee03252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee03252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee03252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03252[];
+extern VTBL_ENTRY _ZTV7ee03252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03252[];
+static VTBL_ENTRY alt_thunk_names1155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03252 = { "ee03252", // class name
+ bases_ee03252, 4,
+ &(vtc_ee03252[0]), // expected_vtbl_contents
+ &(vtt_ee03252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1155,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13252 : virtual dd3252 {
+ int e;
+ ~ee13252(); // tgen
+ ee13252(); // tgen
+};
+//SIG(1 ee13252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13252 ::~ee13252(){ note_dtor("ee13252", this);} // tgen
+ee13252 ::ee13252(){ note_ctor("ee13252", this);} // tgen
+
+static void Test_ee13252()
+{
+ extern Class_Descriptor cd_ee13252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13252, buf);
+ ee13252 *dp, &lv = *(dp=new (buf) ee13252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee13252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee13252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(32,16), "ee13252");
+ check_base_class_offset(lv, (dd3252*), ABISELECT(16,8), "ee13252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13252.e");
+ test_class_info(&lv, &cd_ee13252);
+ dp->~ee13252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13252(Test_ee13252, "ee13252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13252C1Ev();
+extern void _ZN7ee13252D1Ev();
+Name_Map name_map_ee13252[] = {
+ NSPAIR(_ZN7ee13252C1Ev),
+ NSPAIR(_ZN7ee13252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee13252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13252[];
+extern void _ZN6dd32523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13252[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee13252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee13252[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee13252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee13252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee13252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee13252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee13252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13252[] = {
+ {&(_ZTV7ee13252[5]), 5,24},
+ {&(_ZTV7ee13252[10]), 10,24},
+ {&(_ZTV7ee13252[16]), 16,24},
+ {&(_ZTV7ee13252[22]), 22,24},
+ {&(_tg__ZTV6dd3252__7ee13252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee13252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee13252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee13252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee13252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee13252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee13252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13252[];
+extern VTBL_ENTRY _ZTV7ee13252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13252[];
+static VTBL_ENTRY alt_thunk_names1156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13252 = { "ee13252", // class name
+ bases_ee13252, 4,
+ &(vtc_ee13252[0]), // expected_vtbl_contents
+ &(vtt_ee13252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13252),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1156,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23252 : dd3252 {
+ int e;
+ virtual void foo(); // _ZN7ee232523fooEv
+ ~ee23252(); // tgen
+ ee23252(); // tgen
+};
+//SIG(1 ee23252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23252 ::foo(){vfunc_called(this, "_ZN7ee232523fooEv");}
+ee23252 ::~ee23252(){ note_dtor("ee23252", this);} // tgen
+ee23252 ::ee23252(){ note_ctor("ee23252", this);} // tgen
+
+static void Test_ee23252()
+{
+ extern Class_Descriptor cd_ee23252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23252, buf);
+ ee23252 *dp, &lv = *(dp=new (buf) ee23252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee23252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee23252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(16,12), "ee23252");
+ check_base_class_offset(lv, (dd3252*), 0, "ee23252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23252.e");
+ test_class_info(&lv, &cd_ee23252);
+ dp->~ee23252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23252(Test_ee23252, "ee23252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23252C1Ev();
+extern void _ZN7ee23252D1Ev();
+Name_Map name_map_ee23252[] = {
+ NSPAIR(_ZN7ee23252C1Ev),
+ NSPAIR(_ZN7ee23252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee23252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23252[];
+extern void _ZN7ee232523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee232523fooEv,_ZTv0_n20_N7ee232523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee232523fooEv,_ZThn12_N7ee232523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee232523fooEv,_ZTv0_n12_N7ee232523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee232523fooEv,_ZThn24_N7ee232523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23252[0]),
+ (VTBL_ENTRY)&_ZN7ee232523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee232523fooEv,_ZTv0_n20_N7ee232523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee232523fooEv,_ZTv0_n12_N7ee232523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee23252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee23252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee23252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee23252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee23252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee23252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee23252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23252[] = {
+ {&(_ZTV7ee23252[4]), 4,18},
+ {&(_tg__ZTV6dd3252__7ee23252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee23252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee23252[4]), 4,6},
+ {&(_ZTV7ee23252[10]), 10,18},
+ {&(_ZTV7ee23252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee23252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee23252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee23252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee23252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23252[];
+extern VTBL_ENTRY _ZTV7ee23252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23252[];
+static VTBL_ENTRY alt_thunk_names1157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee232523fooEv,_ZTv0_n12_N7ee232523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee232523fooEv,_ZThn24_N7ee232523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee232523fooEv,_ZTv0_n20_N7ee232523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee232523fooEv,_ZThn12_N7ee232523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23252 = { "ee23252", // class name
+ bases_ee23252, 4,
+ &(vtc_ee23252[0]), // expected_vtbl_contents
+ &(vtt_ee23252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33252 : virtual dd3252 {
+ int e;
+ virtual void foo(); // _ZN7ee332523fooEv
+ ~ee33252(); // tgen
+ ee33252(); // tgen
+};
+//SIG(1 ee33252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33252 ::foo(){vfunc_called(this, "_ZN7ee332523fooEv");}
+ee33252 ::~ee33252(){ note_dtor("ee33252", this);} // tgen
+ee33252 ::ee33252(){ note_ctor("ee33252", this);} // tgen
+
+static void Test_ee33252()
+{
+ extern Class_Descriptor cd_ee33252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33252, buf);
+ ee33252 *dp, &lv = *(dp=new (buf) ee33252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee33252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee33252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(32,16), "ee33252");
+ check_base_class_offset(lv, (dd3252*), ABISELECT(16,8), "ee33252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33252.e");
+ test_class_info(&lv, &cd_ee33252);
+ dp->~ee33252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33252(Test_ee33252, "ee33252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33252C1Ev();
+extern void _ZN7ee33252D1Ev();
+Name_Map name_map_ee33252[] = {
+ NSPAIR(_ZN7ee33252C1Ev),
+ NSPAIR(_ZN7ee33252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee33252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33252[];
+extern void _ZN7ee332523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332523fooEv,_ZTv0_n20_N7ee332523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee332523fooEv,_ZThn8_N7ee332523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee332523fooEv,_ZTv0_n20_N7ee332523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee332523fooEv,_ZThn16_N7ee332523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee332523fooEv,_ZTv0_n12_N7ee332523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee332523fooEv,_ZThn28_N7ee332523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33252[0]),
+ (VTBL_ENTRY)&_ZN7ee332523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332523fooEv,_ZTv0_n20_N7ee332523fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee332523fooEv,_ZTv0_n20_N7ee332523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee332523fooEv,_ZTv0_n12_N7ee332523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee33252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee33252[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee33252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee33252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee33252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee33252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee33252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33252[] = {
+ {&(_ZTV7ee33252[5]), 5,25},
+ {&(_ZTV7ee33252[11]), 11,25},
+ {&(_ZTV7ee33252[17]), 17,25},
+ {&(_ZTV7ee33252[23]), 23,25},
+ {&(_tg__ZTV6dd3252__7ee33252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee33252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee33252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee33252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee33252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee33252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee33252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33252[];
+extern VTBL_ENTRY _ZTV7ee33252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33252[];
+static VTBL_ENTRY alt_thunk_names1158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee332523fooEv,_ZTv0_n12_N7ee332523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee332523fooEv,_ZThn28_N7ee332523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee332523fooEv,_ZTv0_n20_N7ee332523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee332523fooEv,_ZThn16_N7ee332523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee332523fooEv,_ZThn8_N7ee332523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33252 = { "ee33252", // class name
+ bases_ee33252, 4,
+ &(vtc_ee33252[0]), // expected_vtbl_contents
+ &(vtt_ee33252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33252),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43252 : dd3252 {
+ int e;
+ virtual void bar(); // _ZN7ee432523barEv
+ ~ee43252(); // tgen
+ ee43252(); // tgen
+};
+//SIG(1 ee43252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43252 ::bar(){vfunc_called(this, "_ZN7ee432523barEv");}
+ee43252 ::~ee43252(){ note_dtor("ee43252", this);} // tgen
+ee43252 ::ee43252(){ note_ctor("ee43252", this);} // tgen
+
+static void Test_ee43252()
+{
+ extern Class_Descriptor cd_ee43252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43252, buf);
+ ee43252 *dp, &lv = *(dp=new (buf) ee43252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee43252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee43252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(16,12), "ee43252");
+ check_base_class_offset(lv, (dd3252*), 0, "ee43252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43252.e");
+ test_class_info(&lv, &cd_ee43252);
+ dp->~ee43252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43252(Test_ee43252, "ee43252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43252C1Ev();
+extern void _ZN7ee43252D1Ev();
+Name_Map name_map_ee43252[] = {
+ NSPAIR(_ZN7ee43252C1Ev),
+ NSPAIR(_ZN7ee43252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee43252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43252[];
+extern void _ZN6dd32523fooEv();
+extern void _ZN7ee432523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee432523barEv,_ZTv0_n16_N7ee432523barEv)();
+extern void ABISELECT(_ZThn16_N7ee432523barEv,_ZThn12_N7ee432523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee432523barEv,_ZTv0_n16_N7ee432523barEv)();
+extern void ABISELECT(_ZThn32_N7ee432523barEv,_ZThn24_N7ee432523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+ (VTBL_ENTRY)&_ZN7ee432523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432523barEv,_ZTv0_n16_N7ee432523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee432523barEv,_ZTv0_n16_N7ee432523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee43252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee43252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee43252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee43252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee43252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee43252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee43252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43252[] = {
+ {&(_ZTV7ee43252[4]), 4,19},
+ {&(_tg__ZTV6dd3252__7ee43252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee43252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee43252[4]), 4,6},
+ {&(_ZTV7ee43252[11]), 11,19},
+ {&(_ZTV7ee43252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee43252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee43252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee43252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee43252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43252[];
+extern VTBL_ENTRY _ZTV7ee43252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43252[];
+static VTBL_ENTRY alt_thunk_names1159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee432523barEv,_ZTv0_n16_N7ee432523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee432523barEv,_ZThn24_N7ee432523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee432523barEv,_ZThn12_N7ee432523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43252 = { "ee43252", // class name
+ bases_ee43252, 4,
+ &(vtc_ee43252[0]), // expected_vtbl_contents
+ &(vtt_ee43252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53252 : virtual dd3252 {
+ int e;
+ virtual void bar(); // _ZN7ee532523barEv
+ ~ee53252(); // tgen
+ ee53252(); // tgen
+};
+//SIG(1 ee53252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53252 ::bar(){vfunc_called(this, "_ZN7ee532523barEv");}
+ee53252 ::~ee53252(){ note_dtor("ee53252", this);} // tgen
+ee53252 ::ee53252(){ note_ctor("ee53252", this);} // tgen
+
+static void Test_ee53252()
+{
+ extern Class_Descriptor cd_ee53252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53252, buf);
+ ee53252 *dp, &lv = *(dp=new (buf) ee53252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee53252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee53252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(32,16), "ee53252");
+ check_base_class_offset(lv, (dd3252*), ABISELECT(16,8), "ee53252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53252.e");
+ test_class_info(&lv, &cd_ee53252);
+ dp->~ee53252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53252(Test_ee53252, "ee53252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53252C1Ev();
+extern void _ZN7ee53252D1Ev();
+Name_Map name_map_ee53252[] = {
+ NSPAIR(_ZN7ee53252C1Ev),
+ NSPAIR(_ZN7ee53252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee53252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53252[];
+extern void _ZN7ee532523barEv();
+extern void _ZN6dd32523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee532523barEv,_ZTv0_n16_N7ee532523barEv)();
+extern void ABISELECT(_ZThn32_N7ee532523barEv,_ZThn16_N7ee532523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee532523barEv,_ZTv0_n16_N7ee532523barEv)();
+extern void ABISELECT(_ZThn48_N7ee532523barEv,_ZThn28_N7ee532523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53252[0]),
+ (VTBL_ENTRY)&_ZN7ee532523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532523barEv,_ZTv0_n16_N7ee532523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee532523barEv,_ZTv0_n16_N7ee532523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee53252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee53252[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee53252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee53252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee53252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee53252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee53252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53252[] = {
+ {&(_ZTV7ee53252[5]), 5,25},
+ {&(_ZTV7ee53252[11]), 11,25},
+ {&(_ZTV7ee53252[17]), 17,25},
+ {&(_ZTV7ee53252[23]), 23,25},
+ {&(_tg__ZTV6dd3252__7ee53252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee53252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee53252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee53252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee53252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee53252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee53252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53252[];
+extern VTBL_ENTRY _ZTV7ee53252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53252[];
+static VTBL_ENTRY alt_thunk_names1160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee532523barEv,_ZTv0_n16_N7ee532523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee532523barEv,_ZThn28_N7ee532523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee532523barEv,_ZThn16_N7ee532523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53252 = { "ee53252", // class name
+ bases_ee53252, 4,
+ &(vtc_ee53252[0]), // expected_vtbl_contents
+ &(vtt_ee53252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53252),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63252 : dd3252 {
+ int e;
+ virtual void foo(); // _ZN7ee632523fooEv
+ virtual void bar(); // _ZN7ee632523barEv
+ ~ee63252(); // tgen
+ ee63252(); // tgen
+};
+//SIG(1 ee63252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63252 ::foo(){vfunc_called(this, "_ZN7ee632523fooEv");}
+void ee63252 ::bar(){vfunc_called(this, "_ZN7ee632523barEv");}
+ee63252 ::~ee63252(){ note_dtor("ee63252", this);} // tgen
+ee63252 ::ee63252(){ note_ctor("ee63252", this);} // tgen
+
+static void Test_ee63252()
+{
+ extern Class_Descriptor cd_ee63252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63252, buf);
+ ee63252 *dp, &lv = *(dp=new (buf) ee63252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee63252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee63252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(16,12), "ee63252");
+ check_base_class_offset(lv, (dd3252*), 0, "ee63252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63252.e");
+ test_class_info(&lv, &cd_ee63252);
+ dp->~ee63252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63252(Test_ee63252, "ee63252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63252C1Ev();
+extern void _ZN7ee63252D1Ev();
+Name_Map name_map_ee63252[] = {
+ NSPAIR(_ZN7ee63252C1Ev),
+ NSPAIR(_ZN7ee63252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee63252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63252[];
+extern void _ZN7ee632523fooEv();
+extern void _ZN7ee632523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee632523barEv,_ZTv0_n16_N7ee632523barEv)();
+extern void ABISELECT(_ZThn16_N7ee632523barEv,_ZThn12_N7ee632523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee632523fooEv,_ZTv0_n20_N7ee632523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee632523fooEv,_ZThn12_N7ee632523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee632523fooEv,_ZTv0_n12_N7ee632523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee632523fooEv,_ZThn24_N7ee632523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee632523barEv,_ZTv0_n16_N7ee632523barEv)();
+extern void ABISELECT(_ZThn32_N7ee632523barEv,_ZThn24_N7ee632523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63252[0]),
+ (VTBL_ENTRY)&_ZN7ee632523fooEv,
+ (VTBL_ENTRY)&_ZN7ee632523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632523barEv,_ZTv0_n16_N7ee632523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee632523fooEv,_ZTv0_n20_N7ee632523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee632523fooEv,_ZTv0_n12_N7ee632523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee632523barEv,_ZTv0_n16_N7ee632523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee63252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee63252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee63252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee63252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee63252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee63252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee63252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63252[] = {
+ {&(_ZTV7ee63252[4]), 4,19},
+ {&(_tg__ZTV6dd3252__7ee63252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee63252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee63252[4]), 4,6},
+ {&(_ZTV7ee63252[11]), 11,19},
+ {&(_ZTV7ee63252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee63252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee63252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee63252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee63252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63252[];
+extern VTBL_ENTRY _ZTV7ee63252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63252[];
+static VTBL_ENTRY alt_thunk_names1161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn24_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn12_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee632523fooEv,_ZTv0_n12_N7ee632523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee632523fooEv,_ZThn24_N7ee632523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee632523fooEv,_ZTv0_n20_N7ee632523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632523fooEv,_ZThn12_N7ee632523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee632523barEv,_ZTv0_n16_N7ee632523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee632523barEv,_ZThn24_N7ee632523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee632523barEv,_ZThn12_N7ee632523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63252 = { "ee63252", // class name
+ bases_ee63252, 4,
+ &(vtc_ee63252[0]), // expected_vtbl_contents
+ &(vtt_ee63252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73252 : virtual dd3252 {
+ int e;
+ virtual void foo(); // _ZN7ee732523fooEv
+ virtual void bar(); // _ZN7ee732523barEv
+ ~ee73252(); // tgen
+ ee73252(); // tgen
+};
+//SIG(1 ee73252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73252 ::foo(){vfunc_called(this, "_ZN7ee732523fooEv");}
+void ee73252 ::bar(){vfunc_called(this, "_ZN7ee732523barEv");}
+ee73252 ::~ee73252(){ note_dtor("ee73252", this);} // tgen
+ee73252 ::ee73252(){ note_ctor("ee73252", this);} // tgen
+
+static void Test_ee73252()
+{
+ extern Class_Descriptor cd_ee73252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73252, buf);
+ ee73252 *dp, &lv = *(dp=new (buf) ee73252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee73252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee73252");
+ check_base_class_offset(lv, (cc252*)(dd3252*), ABISELECT(32,16), "ee73252");
+ check_base_class_offset(lv, (dd3252*), ABISELECT(16,8), "ee73252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73252.e");
+ test_class_info(&lv, &cd_ee73252);
+ dp->~ee73252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73252(Test_ee73252, "ee73252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73252C1Ev();
+extern void _ZN7ee73252D1Ev();
+Name_Map name_map_ee73252[] = {
+ NSPAIR(_ZN7ee73252C1Ev),
+ NSPAIR(_ZN7ee73252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd3252;
+extern VTBL_ENTRY _ZTI6dd3252[];
+extern VTBL_ENTRY _ZTV6dd3252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3252[];
+static Base_Class bases_ee73252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3252, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73252[];
+extern void _ZN7ee732523fooEv();
+extern void _ZN7ee732523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee732523fooEv,_ZTv0_n20_N7ee732523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee732523fooEv,_ZThn8_N7ee732523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732523barEv,_ZTv0_n16_N7ee732523barEv)();
+extern void ABISELECT(_ZThn32_N7ee732523barEv,_ZThn16_N7ee732523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee732523fooEv,_ZTv0_n20_N7ee732523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee732523fooEv,_ZThn16_N7ee732523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee732523fooEv,_ZTv0_n12_N7ee732523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee732523fooEv,_ZThn28_N7ee732523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee732523barEv,_ZTv0_n16_N7ee732523barEv)();
+extern void ABISELECT(_ZThn48_N7ee732523barEv,_ZThn28_N7ee732523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73252[0]),
+ (VTBL_ENTRY)&_ZN7ee732523fooEv,
+ (VTBL_ENTRY)&_ZN7ee732523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732523fooEv,_ZTv0_n20_N7ee732523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732523barEv,_ZTv0_n16_N7ee732523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee732523fooEv,_ZTv0_n20_N7ee732523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee732523fooEv,_ZTv0_n12_N7ee732523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee732523barEv,_ZTv0_n16_N7ee732523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73252[];
+extern void _ZN6dd32523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3252__7ee73252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN6dd32523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd3252__7ee73252[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3252__7ee73252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee73252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee73252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee73252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee73252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73252[] = {
+ {&(_ZTV7ee73252[5]), 5,26},
+ {&(_ZTV7ee73252[12]), 12,26},
+ {&(_ZTV7ee73252[18]), 18,26},
+ {&(_ZTV7ee73252[24]), 24,26},
+ {&(_tg__ZTV6dd3252__7ee73252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd3252__7ee73252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3252__7ee73252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee73252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee73252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee73252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee73252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73252[];
+extern VTBL_ENTRY _ZTV7ee73252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73252[];
+static VTBL_ENTRY alt_thunk_names1162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd32523fooEv,_ZTv0_n12_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd32523fooEv,_ZThn20_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd32523fooEv,_ZTv0_n20_N6dd32523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd32523fooEv,_ZThn8_N6dd32523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee732523fooEv,_ZTv0_n12_N7ee732523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee732523fooEv,_ZThn28_N7ee732523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee732523barEv,_ZTv0_n16_N7ee732523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee732523barEv,_ZThn28_N7ee732523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732523barEv,_ZThn16_N7ee732523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee732523fooEv,_ZTv0_n20_N7ee732523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee732523fooEv,_ZThn16_N7ee732523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee732523fooEv,_ZThn8_N7ee732523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73252 = { "ee73252", // class name
+ bases_ee73252, 4,
+ &(vtc_ee73252[0]), // expected_vtbl_contents
+ &(vtt_ee73252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73252),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4252 : cc252 {
+ int d;
+ virtual void bar(); // _ZN6dd42523barEv
+ ~dd4252(); // tgen
+ dd4252(); // tgen
+};
+//SIG(-1 dd4252) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4252 ::bar(){vfunc_called(this, "_ZN6dd42523barEv");}
+dd4252 ::~dd4252(){ note_dtor("dd4252", this);} // tgen
+dd4252 ::dd4252(){ note_ctor("dd4252", this);} // tgen
+
+static void Test_dd4252()
+{
+ extern Class_Descriptor cd_dd4252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4252, buf);
+ dd4252 *dp, &lv = *(dp=new (buf) dd4252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(24,16), "dd4252");
+ check_base_class_offset(lv, (bb52*)(cc252*), 0, "dd4252");
+ check_base_class_offset(lv, (cc252*), 0, "dd4252");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4252.d");
+ test_class_info(&lv, &cd_dd4252);
+ dp->~dd4252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4252(Test_dd4252, "dd4252", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4252C1Ev();
+extern void _ZN6dd4252D1Ev();
+Name_Map name_map_dd4252[] = {
+ NSPAIR(_ZN6dd4252C1Ev),
+ NSPAIR(_ZN6dd4252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd4252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd4252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd4252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd4252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd4252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4252[] = {
+ {&(_ZTV6dd4252[3]), 3,11},
+ {&(_tg__ZTV5cc252__6dd4252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd4252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd4252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd4252[4]), 4,6},
+ {&(_ZTV6dd4252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static VTBL_ENTRY alt_thunk_names1163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4252 = { "dd4252", // class name
+ bases_dd4252, 3,
+ &(vtc_dd4252[0]), // expected_vtbl_contents
+ &(vtt_dd4252[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4252),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04252 : dd4252 {
+ int e;
+ ~ee04252(); // tgen
+ ee04252(); // tgen
+};
+//SIG(1 ee04252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04252 ::~ee04252(){ note_dtor("ee04252", this);} // tgen
+ee04252 ::ee04252(){ note_ctor("ee04252", this);} // tgen
+
+static void Test_ee04252()
+{
+ extern Class_Descriptor cd_ee04252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04252, buf);
+ ee04252 *dp, &lv = *(dp=new (buf) ee04252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(24,20), "ee04252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), 0, "ee04252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), 0, "ee04252");
+ check_base_class_offset(lv, (dd4252*), 0, "ee04252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04252.e");
+ test_class_info(&lv, &cd_ee04252);
+ dp->~ee04252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04252(Test_ee04252, "ee04252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04252C1Ev();
+extern void _ZN7ee04252D1Ev();
+Name_Map name_map_ee04252[] = {
+ NSPAIR(_ZN7ee04252C1Ev),
+ NSPAIR(_ZN7ee04252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee04252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee04252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee04252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee04252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee04252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee04252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee04252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee04252[] = {
+ {&(_ZTV7ee04252[3]), 3,11},
+ {&(_tg__ZTV6dd4252__7ee04252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee04252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee04252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee04252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee04252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee04252[4]), 4,6},
+ {&(_ZTV7ee04252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04252[];
+extern VTBL_ENTRY _ZTV7ee04252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04252[];
+static VTBL_ENTRY alt_thunk_names1164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04252 = { "ee04252", // class name
+ bases_ee04252, 4,
+ &(vtc_ee04252[0]), // expected_vtbl_contents
+ &(vtt_ee04252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14252 : virtual dd4252 {
+ int e;
+ ~ee14252(); // tgen
+ ee14252(); // tgen
+};
+//SIG(1 ee14252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14252 ::~ee14252(){ note_dtor("ee14252", this);} // tgen
+ee14252 ::ee14252(){ note_ctor("ee14252", this);} // tgen
+
+static void Test_ee14252()
+{
+ extern Class_Descriptor cd_ee14252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14252, buf);
+ ee14252 *dp, &lv = *(dp=new (buf) ee14252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(40,24), "ee14252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), ABISELECT(16,8), "ee14252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), ABISELECT(16,8), "ee14252");
+ check_base_class_offset(lv, (dd4252*), ABISELECT(16,8), "ee14252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14252.e");
+ test_class_info(&lv, &cd_ee14252);
+ dp->~ee14252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14252(Test_ee14252, "ee14252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14252C1Ev();
+extern void _ZN7ee14252D1Ev();
+Name_Map name_map_ee14252[] = {
+ NSPAIR(_ZN7ee14252C1Ev),
+ NSPAIR(_ZN7ee14252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee14252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14252[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee14252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee14252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee14252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee14252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee14252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee14252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee14252[] = {
+ {&(_ZTV7ee14252[4]), 4,17},
+ {&(_ZTV7ee14252[9]), 9,17},
+ {&(_ZTV7ee14252[15]), 15,17},
+ {&(_tg__ZTV6dd4252__7ee14252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee14252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee14252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee14252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee14252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee14252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14252[];
+extern VTBL_ENTRY _ZTV7ee14252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14252[];
+static VTBL_ENTRY alt_thunk_names1165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14252 = { "ee14252", // class name
+ bases_ee14252, 4,
+ &(vtc_ee14252[0]), // expected_vtbl_contents
+ &(vtt_ee14252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24252 : dd4252 {
+ int e;
+ virtual void foo(); // _ZN7ee242523fooEv
+ ~ee24252(); // tgen
+ ee24252(); // tgen
+};
+//SIG(1 ee24252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24252 ::foo(){vfunc_called(this, "_ZN7ee242523fooEv");}
+ee24252 ::~ee24252(){ note_dtor("ee24252", this);} // tgen
+ee24252 ::ee24252(){ note_ctor("ee24252", this);} // tgen
+
+static void Test_ee24252()
+{
+ extern Class_Descriptor cd_ee24252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24252, buf);
+ ee24252 *dp, &lv = *(dp=new (buf) ee24252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(24,20), "ee24252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), 0, "ee24252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), 0, "ee24252");
+ check_base_class_offset(lv, (dd4252*), 0, "ee24252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24252.e");
+ test_class_info(&lv, &cd_ee24252);
+ dp->~ee24252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24252(Test_ee24252, "ee24252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24252C1Ev();
+extern void _ZN7ee24252D1Ev();
+Name_Map name_map_ee24252[] = {
+ NSPAIR(_ZN7ee24252C1Ev),
+ NSPAIR(_ZN7ee24252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee24252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN7ee242523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee242523fooEv,_ZTv0_n12_N7ee242523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee242523fooEv,_ZThn20_N7ee242523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN7ee242523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee242523fooEv,_ZTv0_n12_N7ee242523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee24252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee24252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee24252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee24252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee24252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee24252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee24252[] = {
+ {&(_ZTV7ee24252[3]), 3,11},
+ {&(_tg__ZTV6dd4252__7ee24252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee24252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee24252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee24252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee24252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee24252[4]), 4,6},
+ {&(_ZTV7ee24252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24252[];
+extern VTBL_ENTRY _ZTV7ee24252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24252[];
+static VTBL_ENTRY alt_thunk_names1166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee242523fooEv,_ZTv0_n12_N7ee242523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee242523fooEv,_ZThn20_N7ee242523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24252 = { "ee24252", // class name
+ bases_ee24252, 4,
+ &(vtc_ee24252[0]), // expected_vtbl_contents
+ &(vtt_ee24252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1166,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34252 : virtual dd4252 {
+ int e;
+ virtual void foo(); // _ZN7ee342523fooEv
+ ~ee34252(); // tgen
+ ee34252(); // tgen
+};
+//SIG(1 ee34252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34252 ::foo(){vfunc_called(this, "_ZN7ee342523fooEv");}
+ee34252 ::~ee34252(){ note_dtor("ee34252", this);} // tgen
+ee34252 ::ee34252(){ note_ctor("ee34252", this);} // tgen
+
+static void Test_ee34252()
+{
+ extern Class_Descriptor cd_ee34252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34252, buf);
+ ee34252 *dp, &lv = *(dp=new (buf) ee34252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(40,24), "ee34252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), ABISELECT(16,8), "ee34252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), ABISELECT(16,8), "ee34252");
+ check_base_class_offset(lv, (dd4252*), ABISELECT(16,8), "ee34252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34252.e");
+ test_class_info(&lv, &cd_ee34252);
+ dp->~ee34252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34252(Test_ee34252, "ee34252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34252C1Ev();
+extern void _ZN7ee34252D1Ev();
+Name_Map name_map_ee34252[] = {
+ NSPAIR(_ZN7ee34252C1Ev),
+ NSPAIR(_ZN7ee34252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee34252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34252[];
+extern void _ZN7ee342523fooEv();
+extern void _ZN6dd42523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee342523fooEv,_ZTv0_n20_N7ee342523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee342523fooEv,_ZThn8_N7ee342523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee342523fooEv,_ZTv0_n12_N7ee342523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee342523fooEv,_ZThn24_N7ee342523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34252[0]),
+ (VTBL_ENTRY)&_ZN7ee342523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee342523fooEv,_ZTv0_n20_N7ee342523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee342523fooEv,_ZTv0_n12_N7ee342523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee34252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee34252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee34252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee34252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee34252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee34252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee34252[] = {
+ {&(_ZTV7ee34252[4]), 4,18},
+ {&(_ZTV7ee34252[10]), 10,18},
+ {&(_ZTV7ee34252[16]), 16,18},
+ {&(_tg__ZTV6dd4252__7ee34252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee34252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee34252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee34252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee34252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee34252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34252[];
+extern VTBL_ENTRY _ZTV7ee34252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34252[];
+static VTBL_ENTRY alt_thunk_names1167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee342523fooEv,_ZTv0_n12_N7ee342523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee342523fooEv,_ZThn24_N7ee342523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee342523fooEv,_ZTv0_n20_N7ee342523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee342523fooEv,_ZThn8_N7ee342523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34252 = { "ee34252", // class name
+ bases_ee34252, 4,
+ &(vtc_ee34252[0]), // expected_vtbl_contents
+ &(vtt_ee34252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44252 : dd4252 {
+ int e;
+ virtual void bar(); // _ZN7ee442523barEv
+ ~ee44252(); // tgen
+ ee44252(); // tgen
+};
+//SIG(1 ee44252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44252 ::bar(){vfunc_called(this, "_ZN7ee442523barEv");}
+ee44252 ::~ee44252(){ note_dtor("ee44252", this);} // tgen
+ee44252 ::ee44252(){ note_ctor("ee44252", this);} // tgen
+
+static void Test_ee44252()
+{
+ extern Class_Descriptor cd_ee44252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44252, buf);
+ ee44252 *dp, &lv = *(dp=new (buf) ee44252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(24,20), "ee44252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), 0, "ee44252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), 0, "ee44252");
+ check_base_class_offset(lv, (dd4252*), 0, "ee44252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44252.e");
+ test_class_info(&lv, &cd_ee44252);
+ dp->~ee44252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44252(Test_ee44252, "ee44252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44252C1Ev();
+extern void _ZN7ee44252D1Ev();
+Name_Map name_map_ee44252[] = {
+ NSPAIR(_ZN7ee44252C1Ev),
+ NSPAIR(_ZN7ee44252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee44252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44252[];
+extern void _ZN7ee442523barEv();
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee442523barEv,_ZTv0_n16_N7ee442523barEv)();
+extern void ABISELECT(_ZThn24_N7ee442523barEv,_ZThn20_N7ee442523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44252[0]),
+ (VTBL_ENTRY)&_ZN7ee442523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee442523barEv,_ZTv0_n16_N7ee442523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee44252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee44252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee44252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee44252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee44252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee44252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee44252[] = {
+ {&(_ZTV7ee44252[3]), 3,11},
+ {&(_tg__ZTV6dd4252__7ee44252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee44252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee44252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee44252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee44252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee44252[4]), 4,6},
+ {&(_ZTV7ee44252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44252[];
+extern VTBL_ENTRY _ZTV7ee44252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44252[];
+static VTBL_ENTRY alt_thunk_names1168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee442523barEv,_ZTv0_n16_N7ee442523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee442523barEv,_ZThn20_N7ee442523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44252 = { "ee44252", // class name
+ bases_ee44252, 4,
+ &(vtc_ee44252[0]), // expected_vtbl_contents
+ &(vtt_ee44252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1168,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54252 : virtual dd4252 {
+ int e;
+ virtual void bar(); // _ZN7ee542523barEv
+ ~ee54252(); // tgen
+ ee54252(); // tgen
+};
+//SIG(1 ee54252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54252 ::bar(){vfunc_called(this, "_ZN7ee542523barEv");}
+ee54252 ::~ee54252(){ note_dtor("ee54252", this);} // tgen
+ee54252 ::ee54252(){ note_ctor("ee54252", this);} // tgen
+
+static void Test_ee54252()
+{
+ extern Class_Descriptor cd_ee54252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54252, buf);
+ ee54252 *dp, &lv = *(dp=new (buf) ee54252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(40,24), "ee54252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), ABISELECT(16,8), "ee54252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), ABISELECT(16,8), "ee54252");
+ check_base_class_offset(lv, (dd4252*), ABISELECT(16,8), "ee54252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54252.e");
+ test_class_info(&lv, &cd_ee54252);
+ dp->~ee54252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54252(Test_ee54252, "ee54252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54252C1Ev();
+extern void _ZN7ee54252D1Ev();
+Name_Map name_map_ee54252[] = {
+ NSPAIR(_ZN7ee54252C1Ev),
+ NSPAIR(_ZN7ee54252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee54252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54252[];
+extern void _ZN7ee542523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee542523barEv,_ZTv0_n16_N7ee542523barEv)();
+extern void ABISELECT(_ZThn16_N7ee542523barEv,_ZThn8_N7ee542523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee542523barEv,_ZTv0_n16_N7ee542523barEv)();
+extern void ABISELECT(_ZThn40_N7ee542523barEv,_ZThn24_N7ee542523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54252[0]),
+ (VTBL_ENTRY)&_ZN7ee542523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542523barEv,_ZTv0_n16_N7ee542523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee542523barEv,_ZTv0_n16_N7ee542523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee54252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee54252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee54252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee54252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee54252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee54252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee54252[] = {
+ {&(_ZTV7ee54252[4]), 4,18},
+ {&(_ZTV7ee54252[10]), 10,18},
+ {&(_ZTV7ee54252[16]), 16,18},
+ {&(_tg__ZTV6dd4252__7ee54252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee54252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee54252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee54252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee54252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee54252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54252[];
+extern VTBL_ENTRY _ZTV7ee54252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54252[];
+static VTBL_ENTRY alt_thunk_names1169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee542523barEv,_ZTv0_n16_N7ee542523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee542523barEv,_ZThn24_N7ee542523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee542523barEv,_ZThn8_N7ee542523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54252 = { "ee54252", // class name
+ bases_ee54252, 4,
+ &(vtc_ee54252[0]), // expected_vtbl_contents
+ &(vtt_ee54252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64252 : dd4252 {
+ int e;
+ virtual void foo(); // _ZN7ee642523fooEv
+ virtual void bar(); // _ZN7ee642523barEv
+ ~ee64252(); // tgen
+ ee64252(); // tgen
+};
+//SIG(1 ee64252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64252 ::foo(){vfunc_called(this, "_ZN7ee642523fooEv");}
+void ee64252 ::bar(){vfunc_called(this, "_ZN7ee642523barEv");}
+ee64252 ::~ee64252(){ note_dtor("ee64252", this);} // tgen
+ee64252 ::ee64252(){ note_ctor("ee64252", this);} // tgen
+
+static void Test_ee64252()
+{
+ extern Class_Descriptor cd_ee64252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64252, buf);
+ ee64252 *dp, &lv = *(dp=new (buf) ee64252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(24,20), "ee64252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), 0, "ee64252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), 0, "ee64252");
+ check_base_class_offset(lv, (dd4252*), 0, "ee64252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64252.e");
+ test_class_info(&lv, &cd_ee64252);
+ dp->~ee64252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64252(Test_ee64252, "ee64252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64252C1Ev();
+extern void _ZN7ee64252D1Ev();
+Name_Map name_map_ee64252[] = {
+ NSPAIR(_ZN7ee64252C1Ev),
+ NSPAIR(_ZN7ee64252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee64252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64252[];
+extern void _ZN7ee642523barEv();
+extern void _ZN7ee642523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee642523fooEv,_ZTv0_n12_N7ee642523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee642523fooEv,_ZThn20_N7ee642523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee642523barEv,_ZTv0_n16_N7ee642523barEv)();
+extern void ABISELECT(_ZThn24_N7ee642523barEv,_ZThn20_N7ee642523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64252[0]),
+ (VTBL_ENTRY)&_ZN7ee642523barEv,
+ (VTBL_ENTRY)&_ZN7ee642523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee642523fooEv,_ZTv0_n12_N7ee642523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee642523barEv,_ZTv0_n16_N7ee642523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee64252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee64252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee64252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee64252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee64252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee64252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee64252[] = {
+ {&(_ZTV7ee64252[3]), 3,11},
+ {&(_tg__ZTV6dd4252__7ee64252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee64252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee64252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee64252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee64252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee64252[4]), 4,6},
+ {&(_ZTV7ee64252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64252[];
+extern VTBL_ENTRY _ZTV7ee64252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64252[];
+static VTBL_ENTRY alt_thunk_names1170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn20_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee642523barEv,_ZTv0_n16_N7ee642523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee642523barEv,_ZThn20_N7ee642523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee642523fooEv,_ZTv0_n12_N7ee642523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee642523fooEv,_ZThn20_N7ee642523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64252 = { "ee64252", // class name
+ bases_ee64252, 4,
+ &(vtc_ee64252[0]), // expected_vtbl_contents
+ &(vtt_ee64252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74252 : virtual dd4252 {
+ int e;
+ virtual void foo(); // _ZN7ee742523fooEv
+ virtual void bar(); // _ZN7ee742523barEv
+ ~ee74252(); // tgen
+ ee74252(); // tgen
+};
+//SIG(1 ee74252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74252 ::foo(){vfunc_called(this, "_ZN7ee742523fooEv");}
+void ee74252 ::bar(){vfunc_called(this, "_ZN7ee742523barEv");}
+ee74252 ::~ee74252(){ note_dtor("ee74252", this);} // tgen
+ee74252 ::ee74252(){ note_ctor("ee74252", this);} // tgen
+
+static void Test_ee74252()
+{
+ extern Class_Descriptor cd_ee74252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74252, buf);
+ ee74252 *dp, &lv = *(dp=new (buf) ee74252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd4252*), ABISELECT(40,24), "ee74252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd4252*), ABISELECT(16,8), "ee74252");
+ check_base_class_offset(lv, (cc252*)(dd4252*), ABISELECT(16,8), "ee74252");
+ check_base_class_offset(lv, (dd4252*), ABISELECT(16,8), "ee74252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74252.e");
+ test_class_info(&lv, &cd_ee74252);
+ dp->~ee74252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74252(Test_ee74252, "ee74252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74252C1Ev();
+extern void _ZN7ee74252D1Ev();
+Name_Map name_map_ee74252[] = {
+ NSPAIR(_ZN7ee74252C1Ev),
+ NSPAIR(_ZN7ee74252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd4252;
+extern VTBL_ENTRY _ZTI6dd4252[];
+extern VTBL_ENTRY _ZTV6dd4252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4252[];
+static Base_Class bases_ee74252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74252[];
+extern void _ZN7ee742523fooEv();
+extern void _ZN7ee742523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee742523barEv,_ZTv0_n16_N7ee742523barEv)();
+extern void ABISELECT(_ZThn16_N7ee742523barEv,_ZThn8_N7ee742523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee742523fooEv,_ZTv0_n20_N7ee742523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee742523fooEv,_ZThn8_N7ee742523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee742523fooEv,_ZTv0_n12_N7ee742523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee742523fooEv,_ZThn24_N7ee742523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee742523barEv,_ZTv0_n16_N7ee742523barEv)();
+extern void ABISELECT(_ZThn40_N7ee742523barEv,_ZThn24_N7ee742523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74252[0]),
+ (VTBL_ENTRY)&_ZN7ee742523fooEv,
+ (VTBL_ENTRY)&_ZN7ee742523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742523barEv,_ZTv0_n16_N7ee742523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee742523fooEv,_ZTv0_n20_N7ee742523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee742523fooEv,_ZTv0_n12_N7ee742523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee742523barEv,_ZTv0_n16_N7ee742523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74252[];
+extern void _ZN6dd42523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4252__7ee74252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&_ZN6dd42523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd4252__7ee74252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd4252__7ee74252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd4252__7ee74252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd4252__7ee74252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv)();
+extern void ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4252__7ee74252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv),
+};
+static VTT_ENTRY vtt_ee74252[] = {
+ {&(_ZTV7ee74252[4]), 4,19},
+ {&(_ZTV7ee74252[11]), 11,19},
+ {&(_ZTV7ee74252[17]), 17,19},
+ {&(_tg__ZTV6dd4252__7ee74252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd4252__7ee74252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd4252__7ee74252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd4252__7ee74252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd4252__7ee74252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4252__7ee74252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74252[];
+extern VTBL_ENTRY _ZTV7ee74252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74252[];
+static VTBL_ENTRY alt_thunk_names1171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd42523barEv,_ZTv0_n16_N6dd42523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd42523barEv,_ZThn16_N6dd42523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee742523fooEv,_ZTv0_n12_N7ee742523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee742523fooEv,_ZThn24_N7ee742523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee742523fooEv,_ZTv0_n20_N7ee742523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742523fooEv,_ZThn8_N7ee742523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee742523barEv,_ZTv0_n16_N7ee742523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee742523barEv,_ZThn24_N7ee742523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee742523barEv,_ZThn8_N7ee742523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74252 = { "ee74252", // class name
+ bases_ee74252, 4,
+ &(vtc_ee74252[0]), // expected_vtbl_contents
+ &(vtt_ee74252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5252 : virtual cc252 {
+ int d;
+ virtual void bar(); // _ZN6dd52523barEv
+ ~dd5252(); // tgen
+ dd5252(); // tgen
+};
+//SIG(-1 dd5252) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5252 ::bar(){vfunc_called(this, "_ZN6dd52523barEv");}
+dd5252 ::~dd5252(){ note_dtor("dd5252", this);} // tgen
+dd5252 ::dd5252(){ note_ctor("dd5252", this);} // tgen
+
+static void Test_dd5252()
+{
+ extern Class_Descriptor cd_dd5252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5252, buf);
+ dd5252 *dp, &lv = *(dp=new (buf) dd5252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,20), "dd5252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,8), "dd5252");
+ check_base_class_offset(lv, (cc252*), ABISELECT(16,8), "dd5252");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5252.d");
+ test_class_info(&lv, &cd_dd5252);
+ dp->~dd5252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5252(Test_dd5252, "dd5252", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5252C1Ev();
+extern void _ZN6dd5252D1Ev();
+Name_Map name_map_dd5252[] = {
+ NSPAIR(_ZN6dd5252C1Ev),
+ NSPAIR(_ZN6dd5252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd5252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd5252[];
+extern void _ZN6dd52523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd5252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd5252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd5252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5252[] = {
+ {&(_ZTV6dd5252[4]), 4,18},
+ {&(_ZTV6dd5252[10]), 10,18},
+ {&(_ZTV6dd5252[16]), 16,18},
+ {&(_tg__ZTV5cc252__6dd5252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd5252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd5252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd5252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static VTBL_ENTRY alt_thunk_names1172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5252 = { "dd5252", // class name
+ bases_dd5252, 3,
+ &(vtc_dd5252[0]), // expected_vtbl_contents
+ &(vtt_dd5252[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5252),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05252 : dd5252 {
+ int e;
+ ~ee05252(); // tgen
+ ee05252(); // tgen
+};
+//SIG(1 ee05252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05252 ::~ee05252(){ note_dtor("ee05252", this);} // tgen
+ee05252 ::ee05252(){ note_ctor("ee05252", this);} // tgen
+
+static void Test_ee05252()
+{
+ extern Class_Descriptor cd_ee05252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05252, buf);
+ ee05252 *dp, &lv = *(dp=new (buf) ee05252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee05252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee05252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(16,12), "ee05252");
+ check_base_class_offset(lv, (dd5252*), 0, "ee05252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05252.e");
+ test_class_info(&lv, &cd_ee05252);
+ dp->~ee05252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05252(Test_ee05252, "ee05252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05252C1Ev();
+extern void _ZN7ee05252D1Ev();
+Name_Map name_map_ee05252[] = {
+ NSPAIR(_ZN7ee05252C1Ev),
+ NSPAIR(_ZN7ee05252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee05252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05252[];
+extern void _ZN6dd52523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee05252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee05252[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee05252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee05252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee05252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee05252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee05252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05252[] = {
+ {&(_ZTV7ee05252[4]), 4,18},
+ {&(_tg__ZTV6dd5252__7ee05252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee05252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee05252[4]), 4,6},
+ {&(_ZTV7ee05252[10]), 10,18},
+ {&(_ZTV7ee05252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee05252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee05252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee05252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee05252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05252[];
+extern VTBL_ENTRY _ZTV7ee05252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05252[];
+static VTBL_ENTRY alt_thunk_names1173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05252 = { "ee05252", // class name
+ bases_ee05252, 4,
+ &(vtc_ee05252[0]), // expected_vtbl_contents
+ &(vtt_ee05252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15252 : virtual dd5252 {
+ int e;
+ ~ee15252(); // tgen
+ ee15252(); // tgen
+};
+//SIG(1 ee15252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15252 ::~ee15252(){ note_dtor("ee15252", this);} // tgen
+ee15252 ::ee15252(){ note_ctor("ee15252", this);} // tgen
+
+static void Test_ee15252()
+{
+ extern Class_Descriptor cd_ee15252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15252, buf);
+ ee15252 *dp, &lv = *(dp=new (buf) ee15252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee15252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee15252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(32,16), "ee15252");
+ check_base_class_offset(lv, (dd5252*), ABISELECT(16,8), "ee15252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15252.e");
+ test_class_info(&lv, &cd_ee15252);
+ dp->~ee15252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15252(Test_ee15252, "ee15252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15252C1Ev();
+extern void _ZN7ee15252D1Ev();
+Name_Map name_map_ee15252[] = {
+ NSPAIR(_ZN7ee15252C1Ev),
+ NSPAIR(_ZN7ee15252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee15252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15252[];
+extern void _ZN6dd52523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15252[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee15252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee15252[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee15252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee15252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee15252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee15252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee15252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15252[] = {
+ {&(_ZTV7ee15252[5]), 5,24},
+ {&(_ZTV7ee15252[10]), 10,24},
+ {&(_ZTV7ee15252[16]), 16,24},
+ {&(_ZTV7ee15252[22]), 22,24},
+ {&(_tg__ZTV6dd5252__7ee15252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee15252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee15252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee15252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee15252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee15252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee15252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15252[];
+extern VTBL_ENTRY _ZTV7ee15252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15252[];
+static VTBL_ENTRY alt_thunk_names1174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15252 = { "ee15252", // class name
+ bases_ee15252, 4,
+ &(vtc_ee15252[0]), // expected_vtbl_contents
+ &(vtt_ee15252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15252),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25252 : dd5252 {
+ int e;
+ virtual void foo(); // _ZN7ee252523fooEv
+ ~ee25252(); // tgen
+ ee25252(); // tgen
+};
+//SIG(1 ee25252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25252 ::foo(){vfunc_called(this, "_ZN7ee252523fooEv");}
+ee25252 ::~ee25252(){ note_dtor("ee25252", this);} // tgen
+ee25252 ::ee25252(){ note_ctor("ee25252", this);} // tgen
+
+static void Test_ee25252()
+{
+ extern Class_Descriptor cd_ee25252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25252, buf);
+ ee25252 *dp, &lv = *(dp=new (buf) ee25252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee25252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee25252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(16,12), "ee25252");
+ check_base_class_offset(lv, (dd5252*), 0, "ee25252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25252.e");
+ test_class_info(&lv, &cd_ee25252);
+ dp->~ee25252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25252(Test_ee25252, "ee25252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25252C1Ev();
+extern void _ZN7ee25252D1Ev();
+Name_Map name_map_ee25252[] = {
+ NSPAIR(_ZN7ee25252C1Ev),
+ NSPAIR(_ZN7ee25252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee25252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25252[];
+extern void _ZN6dd52523barEv();
+extern void _ZN7ee252523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee252523fooEv,_ZTv0_n20_N7ee252523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee252523fooEv,_ZThn12_N7ee252523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee252523fooEv,_ZTv0_n12_N7ee252523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee252523fooEv,_ZThn24_N7ee252523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+ (VTBL_ENTRY)&_ZN7ee252523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee252523fooEv,_ZTv0_n20_N7ee252523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee252523fooEv,_ZTv0_n12_N7ee252523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee25252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee25252[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee25252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee25252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee25252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee25252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee25252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25252[] = {
+ {&(_ZTV7ee25252[4]), 4,19},
+ {&(_tg__ZTV6dd5252__7ee25252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee25252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee25252[4]), 4,6},
+ {&(_ZTV7ee25252[11]), 11,19},
+ {&(_ZTV7ee25252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee25252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee25252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee25252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee25252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25252[];
+extern VTBL_ENTRY _ZTV7ee25252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25252[];
+static VTBL_ENTRY alt_thunk_names1175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee252523fooEv,_ZTv0_n12_N7ee252523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee252523fooEv,_ZThn24_N7ee252523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee252523fooEv,_ZTv0_n20_N7ee252523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee252523fooEv,_ZThn12_N7ee252523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25252 = { "ee25252", // class name
+ bases_ee25252, 4,
+ &(vtc_ee25252[0]), // expected_vtbl_contents
+ &(vtt_ee25252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35252 : virtual dd5252 {
+ int e;
+ virtual void foo(); // _ZN7ee352523fooEv
+ ~ee35252(); // tgen
+ ee35252(); // tgen
+};
+//SIG(1 ee35252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35252 ::foo(){vfunc_called(this, "_ZN7ee352523fooEv");}
+ee35252 ::~ee35252(){ note_dtor("ee35252", this);} // tgen
+ee35252 ::ee35252(){ note_ctor("ee35252", this);} // tgen
+
+static void Test_ee35252()
+{
+ extern Class_Descriptor cd_ee35252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35252, buf);
+ ee35252 *dp, &lv = *(dp=new (buf) ee35252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee35252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee35252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(32,16), "ee35252");
+ check_base_class_offset(lv, (dd5252*), ABISELECT(16,8), "ee35252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35252.e");
+ test_class_info(&lv, &cd_ee35252);
+ dp->~ee35252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35252(Test_ee35252, "ee35252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35252C1Ev();
+extern void _ZN7ee35252D1Ev();
+Name_Map name_map_ee35252[] = {
+ NSPAIR(_ZN7ee35252C1Ev),
+ NSPAIR(_ZN7ee35252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee35252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35252[];
+extern void _ZN7ee352523fooEv();
+extern void _ZN6dd52523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee352523fooEv,_ZTv0_n20_N7ee352523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee352523fooEv,_ZThn16_N7ee352523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee352523fooEv,_ZTv0_n12_N7ee352523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee352523fooEv,_ZThn28_N7ee352523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35252[0]),
+ (VTBL_ENTRY)&_ZN7ee352523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee352523fooEv,_ZTv0_n20_N7ee352523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee352523fooEv,_ZTv0_n12_N7ee352523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee35252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee35252[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee35252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee35252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee35252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee35252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee35252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35252[] = {
+ {&(_ZTV7ee35252[5]), 5,25},
+ {&(_ZTV7ee35252[11]), 11,25},
+ {&(_ZTV7ee35252[17]), 17,25},
+ {&(_ZTV7ee35252[23]), 23,25},
+ {&(_tg__ZTV6dd5252__7ee35252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee35252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee35252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee35252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee35252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee35252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee35252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35252[];
+extern VTBL_ENTRY _ZTV7ee35252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35252[];
+static VTBL_ENTRY alt_thunk_names1176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee352523fooEv,_ZTv0_n12_N7ee352523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee352523fooEv,_ZThn28_N7ee352523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee352523fooEv,_ZTv0_n20_N7ee352523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee352523fooEv,_ZThn16_N7ee352523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35252 = { "ee35252", // class name
+ bases_ee35252, 4,
+ &(vtc_ee35252[0]), // expected_vtbl_contents
+ &(vtt_ee35252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35252),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45252 : dd5252 {
+ int e;
+ virtual void bar(); // _ZN7ee452523barEv
+ ~ee45252(); // tgen
+ ee45252(); // tgen
+};
+//SIG(1 ee45252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45252 ::bar(){vfunc_called(this, "_ZN7ee452523barEv");}
+ee45252 ::~ee45252(){ note_dtor("ee45252", this);} // tgen
+ee45252 ::ee45252(){ note_ctor("ee45252", this);} // tgen
+
+static void Test_ee45252()
+{
+ extern Class_Descriptor cd_ee45252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45252, buf);
+ ee45252 *dp, &lv = *(dp=new (buf) ee45252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee45252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee45252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(16,12), "ee45252");
+ check_base_class_offset(lv, (dd5252*), 0, "ee45252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45252.e");
+ test_class_info(&lv, &cd_ee45252);
+ dp->~ee45252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45252(Test_ee45252, "ee45252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45252C1Ev();
+extern void _ZN7ee45252D1Ev();
+Name_Map name_map_ee45252[] = {
+ NSPAIR(_ZN7ee45252C1Ev),
+ NSPAIR(_ZN7ee45252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee45252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45252[];
+extern void _ZN7ee452523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee452523barEv,_ZTv0_n16_N7ee452523barEv)();
+extern void ABISELECT(_ZThn16_N7ee452523barEv,_ZThn12_N7ee452523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee452523barEv,_ZTv0_n16_N7ee452523barEv)();
+extern void ABISELECT(_ZThn32_N7ee452523barEv,_ZThn24_N7ee452523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45252[0]),
+ (VTBL_ENTRY)&_ZN7ee452523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452523barEv,_ZTv0_n16_N7ee452523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee452523barEv,_ZTv0_n16_N7ee452523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee45252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee45252[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee45252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee45252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee45252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee45252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee45252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45252[] = {
+ {&(_ZTV7ee45252[4]), 4,18},
+ {&(_tg__ZTV6dd5252__7ee45252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee45252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee45252[4]), 4,6},
+ {&(_ZTV7ee45252[10]), 10,18},
+ {&(_ZTV7ee45252[16]), 16,18},
+ {&(_tg__ZTV5cc252__7ee45252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee45252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee45252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee45252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45252[];
+extern VTBL_ENTRY _ZTV7ee45252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45252[];
+static VTBL_ENTRY alt_thunk_names1177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee452523barEv,_ZTv0_n16_N7ee452523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee452523barEv,_ZThn24_N7ee452523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee452523barEv,_ZThn12_N7ee452523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45252 = { "ee45252", // class name
+ bases_ee45252, 4,
+ &(vtc_ee45252[0]), // expected_vtbl_contents
+ &(vtt_ee45252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1177,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55252 : virtual dd5252 {
+ int e;
+ virtual void bar(); // _ZN7ee552523barEv
+ ~ee55252(); // tgen
+ ee55252(); // tgen
+};
+//SIG(1 ee55252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55252 ::bar(){vfunc_called(this, "_ZN7ee552523barEv");}
+ee55252 ::~ee55252(){ note_dtor("ee55252", this);} // tgen
+ee55252 ::ee55252(){ note_ctor("ee55252", this);} // tgen
+
+static void Test_ee55252()
+{
+ extern Class_Descriptor cd_ee55252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55252, buf);
+ ee55252 *dp, &lv = *(dp=new (buf) ee55252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee55252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee55252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(32,16), "ee55252");
+ check_base_class_offset(lv, (dd5252*), ABISELECT(16,8), "ee55252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55252.e");
+ test_class_info(&lv, &cd_ee55252);
+ dp->~ee55252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55252(Test_ee55252, "ee55252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55252C1Ev();
+extern void _ZN7ee55252D1Ev();
+Name_Map name_map_ee55252[] = {
+ NSPAIR(_ZN7ee55252C1Ev),
+ NSPAIR(_ZN7ee55252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee55252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55252[];
+extern void _ZN7ee552523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee552523barEv,_ZTv0_n20_N7ee552523barEv)();
+extern void ABISELECT(_ZThn16_N7ee552523barEv,_ZThn8_N7ee552523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee552523barEv,_ZTv0_n16_N7ee552523barEv)();
+extern void ABISELECT(_ZThn32_N7ee552523barEv,_ZThn16_N7ee552523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee552523barEv,_ZTv0_n16_N7ee552523barEv)();
+extern void ABISELECT(_ZThn48_N7ee552523barEv,_ZThn28_N7ee552523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55252[0]),
+ (VTBL_ENTRY)&_ZN7ee552523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee552523barEv,_ZTv0_n20_N7ee552523barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552523barEv,_ZTv0_n16_N7ee552523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee552523barEv,_ZTv0_n16_N7ee552523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee55252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee55252[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee55252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee55252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee55252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee55252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee55252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55252[] = {
+ {&(_ZTV7ee55252[5]), 5,25},
+ {&(_ZTV7ee55252[11]), 11,25},
+ {&(_ZTV7ee55252[17]), 17,25},
+ {&(_ZTV7ee55252[23]), 23,25},
+ {&(_tg__ZTV6dd5252__7ee55252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee55252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee55252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee55252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee55252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee55252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee55252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55252[];
+extern VTBL_ENTRY _ZTV7ee55252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55252[];
+static VTBL_ENTRY alt_thunk_names1178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee552523barEv,_ZTv0_n16_N7ee552523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee552523barEv,_ZThn28_N7ee552523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee552523barEv,_ZThn16_N7ee552523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee552523barEv,_ZTv0_n20_N7ee552523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee552523barEv,_ZThn8_N7ee552523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55252 = { "ee55252", // class name
+ bases_ee55252, 4,
+ &(vtc_ee55252[0]), // expected_vtbl_contents
+ &(vtt_ee55252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55252),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65252 : dd5252 {
+ int e;
+ virtual void foo(); // _ZN7ee652523fooEv
+ virtual void bar(); // _ZN7ee652523barEv
+ ~ee65252(); // tgen
+ ee65252(); // tgen
+};
+//SIG(1 ee65252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65252 ::foo(){vfunc_called(this, "_ZN7ee652523fooEv");}
+void ee65252 ::bar(){vfunc_called(this, "_ZN7ee652523barEv");}
+ee65252 ::~ee65252(){ note_dtor("ee65252", this);} // tgen
+ee65252 ::ee65252(){ note_ctor("ee65252", this);} // tgen
+
+static void Test_ee65252()
+{
+ extern Class_Descriptor cd_ee65252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65252, buf);
+ ee65252 *dp, &lv = *(dp=new (buf) ee65252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee65252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee65252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(16,12), "ee65252");
+ check_base_class_offset(lv, (dd5252*), 0, "ee65252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65252.e");
+ test_class_info(&lv, &cd_ee65252);
+ dp->~ee65252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65252(Test_ee65252, "ee65252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65252C1Ev();
+extern void _ZN7ee65252D1Ev();
+Name_Map name_map_ee65252[] = {
+ NSPAIR(_ZN7ee65252C1Ev),
+ NSPAIR(_ZN7ee65252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee65252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65252[];
+extern void _ZN7ee652523barEv();
+extern void _ZN7ee652523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee652523barEv,_ZTv0_n16_N7ee652523barEv)();
+extern void ABISELECT(_ZThn16_N7ee652523barEv,_ZThn12_N7ee652523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee652523fooEv,_ZTv0_n20_N7ee652523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee652523fooEv,_ZThn12_N7ee652523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee652523fooEv,_ZTv0_n12_N7ee652523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee652523fooEv,_ZThn24_N7ee652523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee652523barEv,_ZTv0_n16_N7ee652523barEv)();
+extern void ABISELECT(_ZThn32_N7ee652523barEv,_ZThn24_N7ee652523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65252[0]),
+ (VTBL_ENTRY)&_ZN7ee652523barEv,
+ (VTBL_ENTRY)&_ZN7ee652523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652523barEv,_ZTv0_n16_N7ee652523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee652523fooEv,_ZTv0_n20_N7ee652523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee652523fooEv,_ZTv0_n12_N7ee652523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee652523barEv,_ZTv0_n16_N7ee652523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee65252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee65252[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee65252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee65252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee65252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee65252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee65252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65252[] = {
+ {&(_ZTV7ee65252[4]), 4,19},
+ {&(_tg__ZTV6dd5252__7ee65252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee65252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee65252[4]), 4,6},
+ {&(_ZTV7ee65252[11]), 11,19},
+ {&(_ZTV7ee65252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee65252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee65252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee65252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee65252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65252[];
+extern VTBL_ENTRY _ZTV7ee65252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65252[];
+static VTBL_ENTRY alt_thunk_names1179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn24_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn12_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee652523fooEv,_ZTv0_n12_N7ee652523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee652523fooEv,_ZThn24_N7ee652523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee652523fooEv,_ZTv0_n20_N7ee652523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652523fooEv,_ZThn12_N7ee652523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee652523barEv,_ZTv0_n16_N7ee652523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee652523barEv,_ZThn24_N7ee652523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee652523barEv,_ZThn12_N7ee652523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65252 = { "ee65252", // class name
+ bases_ee65252, 4,
+ &(vtc_ee65252[0]), // expected_vtbl_contents
+ &(vtt_ee65252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1179,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75252 : virtual dd5252 {
+ int e;
+ virtual void foo(); // _ZN7ee752523fooEv
+ virtual void bar(); // _ZN7ee752523barEv
+ ~ee75252(); // tgen
+ ee75252(); // tgen
+};
+//SIG(1 ee75252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75252 ::foo(){vfunc_called(this, "_ZN7ee752523fooEv");}
+void ee75252 ::bar(){vfunc_called(this, "_ZN7ee752523barEv");}
+ee75252 ::~ee75252(){ note_dtor("ee75252", this);} // tgen
+ee75252 ::ee75252(){ note_ctor("ee75252", this);} // tgen
+
+static void Test_ee75252()
+{
+ extern Class_Descriptor cd_ee75252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75252, buf);
+ ee75252 *dp, &lv = *(dp=new (buf) ee75252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee75252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee75252");
+ check_base_class_offset(lv, (cc252*)(dd5252*), ABISELECT(32,16), "ee75252");
+ check_base_class_offset(lv, (dd5252*), ABISELECT(16,8), "ee75252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75252.e");
+ test_class_info(&lv, &cd_ee75252);
+ dp->~ee75252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75252(Test_ee75252, "ee75252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75252C1Ev();
+extern void _ZN7ee75252D1Ev();
+Name_Map name_map_ee75252[] = {
+ NSPAIR(_ZN7ee75252C1Ev),
+ NSPAIR(_ZN7ee75252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd5252;
+extern VTBL_ENTRY _ZTI6dd5252[];
+extern VTBL_ENTRY _ZTV6dd5252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5252[];
+static Base_Class bases_ee75252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5252, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75252[];
+extern void _ZN7ee752523fooEv();
+extern void _ZN7ee752523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee752523barEv,_ZTv0_n20_N7ee752523barEv)();
+extern void ABISELECT(_ZThn16_N7ee752523barEv,_ZThn8_N7ee752523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752523barEv,_ZTv0_n16_N7ee752523barEv)();
+extern void ABISELECT(_ZThn32_N7ee752523barEv,_ZThn16_N7ee752523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee752523fooEv,_ZTv0_n20_N7ee752523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee752523fooEv,_ZThn16_N7ee752523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee752523fooEv,_ZTv0_n12_N7ee752523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee752523fooEv,_ZThn28_N7ee752523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee752523barEv,_ZTv0_n16_N7ee752523barEv)();
+extern void ABISELECT(_ZThn48_N7ee752523barEv,_ZThn28_N7ee752523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75252[0]),
+ (VTBL_ENTRY)&_ZN7ee752523fooEv,
+ (VTBL_ENTRY)&_ZN7ee752523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752523barEv,_ZTv0_n20_N7ee752523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752523barEv,_ZTv0_n16_N7ee752523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee752523fooEv,_ZTv0_n20_N7ee752523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee752523fooEv,_ZTv0_n12_N7ee752523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee752523barEv,_ZTv0_n16_N7ee752523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75252[];
+extern void _ZN6dd52523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5252__7ee75252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&_ZN6dd52523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv)() __attribute__((weak));
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd5252__7ee75252[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv)();
+extern void ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5252__7ee75252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee75252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee75252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee75252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee75252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75252[] = {
+ {&(_ZTV7ee75252[5]), 5,26},
+ {&(_ZTV7ee75252[12]), 12,26},
+ {&(_ZTV7ee75252[18]), 18,26},
+ {&(_ZTV7ee75252[24]), 24,26},
+ {&(_tg__ZTV6dd5252__7ee75252[4]), 4,5},
+ {&(_tg__ZTV5cc252__6dd5252__7ee75252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5252__7ee75252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee75252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee75252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee75252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee75252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75252[];
+extern VTBL_ENTRY _ZTV7ee75252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75252[];
+static VTBL_ENTRY alt_thunk_names1180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd52523barEv,_ZTv0_n16_N6dd52523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd52523barEv,_ZThn20_N6dd52523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd52523barEv,_ZThn8_N6dd52523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee752523fooEv,_ZTv0_n12_N7ee752523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee752523fooEv,_ZThn28_N7ee752523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752523fooEv,_ZTv0_n20_N7ee752523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752523fooEv,_ZThn16_N7ee752523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee752523barEv,_ZTv0_n16_N7ee752523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee752523barEv,_ZThn28_N7ee752523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee752523barEv,_ZThn16_N7ee752523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee752523barEv,_ZTv0_n20_N7ee752523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee752523barEv,_ZThn8_N7ee752523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75252 = { "ee75252", // class name
+ bases_ee75252, 4,
+ &(vtc_ee75252[0]), // expected_vtbl_contents
+ &(vtt_ee75252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75252),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6252 : cc252 {
+ int d;
+ virtual void bar(); // _ZN6dd62523barEv
+ virtual void foo(); // _ZN6dd62523fooEv
+ ~dd6252(); // tgen
+ dd6252(); // tgen
+};
+//SIG(-1 dd6252) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6252 ::bar(){vfunc_called(this, "_ZN6dd62523barEv");}
+void dd6252 ::foo(){vfunc_called(this, "_ZN6dd62523fooEv");}
+dd6252 ::~dd6252(){ note_dtor("dd6252", this);} // tgen
+dd6252 ::dd6252(){ note_ctor("dd6252", this);} // tgen
+
+static void Test_dd6252()
+{
+ extern Class_Descriptor cd_dd6252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6252, buf);
+ dd6252 *dp, &lv = *(dp=new (buf) dd6252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(24,16), "dd6252");
+ check_base_class_offset(lv, (bb52*)(cc252*), 0, "dd6252");
+ check_base_class_offset(lv, (cc252*), 0, "dd6252");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6252.d");
+ test_class_info(&lv, &cd_dd6252);
+ dp->~dd6252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6252(Test_dd6252, "dd6252", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6252C1Ev();
+extern void _ZN6dd6252D1Ev();
+Name_Map name_map_dd6252[] = {
+ NSPAIR(_ZN6dd6252C1Ev),
+ NSPAIR(_ZN6dd6252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd6252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd6252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd6252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd6252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd6252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6252[] = {
+ {&(_ZTV6dd6252[3]), 3,11},
+ {&(_tg__ZTV5cc252__6dd6252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd6252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd6252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd6252[4]), 4,6},
+ {&(_ZTV6dd6252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static VTBL_ENTRY alt_thunk_names1181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6252 = { "dd6252", // class name
+ bases_dd6252, 3,
+ &(vtc_dd6252[0]), // expected_vtbl_contents
+ &(vtt_dd6252[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6252),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06252 : dd6252 {
+ int e;
+ ~ee06252(); // tgen
+ ee06252(); // tgen
+};
+//SIG(1 ee06252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06252 ::~ee06252(){ note_dtor("ee06252", this);} // tgen
+ee06252 ::ee06252(){ note_ctor("ee06252", this);} // tgen
+
+static void Test_ee06252()
+{
+ extern Class_Descriptor cd_ee06252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06252, buf);
+ ee06252 *dp, &lv = *(dp=new (buf) ee06252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(24,20), "ee06252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), 0, "ee06252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), 0, "ee06252");
+ check_base_class_offset(lv, (dd6252*), 0, "ee06252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06252.e");
+ test_class_info(&lv, &cd_ee06252);
+ dp->~ee06252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06252(Test_ee06252, "ee06252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06252C1Ev();
+extern void _ZN7ee06252D1Ev();
+Name_Map name_map_ee06252[] = {
+ NSPAIR(_ZN7ee06252C1Ev),
+ NSPAIR(_ZN7ee06252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee06252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee06252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee06252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee06252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee06252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee06252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee06252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee06252[] = {
+ {&(_ZTV7ee06252[3]), 3,11},
+ {&(_tg__ZTV6dd6252__7ee06252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee06252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee06252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee06252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee06252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee06252[4]), 4,6},
+ {&(_ZTV7ee06252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06252[];
+extern VTBL_ENTRY _ZTV7ee06252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06252[];
+static VTBL_ENTRY alt_thunk_names1182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06252 = { "ee06252", // class name
+ bases_ee06252, 4,
+ &(vtc_ee06252[0]), // expected_vtbl_contents
+ &(vtt_ee06252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16252 : virtual dd6252 {
+ int e;
+ ~ee16252(); // tgen
+ ee16252(); // tgen
+};
+//SIG(1 ee16252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16252 ::~ee16252(){ note_dtor("ee16252", this);} // tgen
+ee16252 ::ee16252(){ note_ctor("ee16252", this);} // tgen
+
+static void Test_ee16252()
+{
+ extern Class_Descriptor cd_ee16252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16252, buf);
+ ee16252 *dp, &lv = *(dp=new (buf) ee16252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(40,24), "ee16252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), ABISELECT(16,8), "ee16252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), ABISELECT(16,8), "ee16252");
+ check_base_class_offset(lv, (dd6252*), ABISELECT(16,8), "ee16252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16252.e");
+ test_class_info(&lv, &cd_ee16252);
+ dp->~ee16252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16252(Test_ee16252, "ee16252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16252C1Ev();
+extern void _ZN7ee16252D1Ev();
+Name_Map name_map_ee16252[] = {
+ NSPAIR(_ZN7ee16252C1Ev),
+ NSPAIR(_ZN7ee16252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee16252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16252[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee16252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee16252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee16252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee16252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee16252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee16252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee16252[] = {
+ {&(_ZTV7ee16252[4]), 4,17},
+ {&(_ZTV7ee16252[9]), 9,17},
+ {&(_ZTV7ee16252[15]), 15,17},
+ {&(_tg__ZTV6dd6252__7ee16252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee16252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee16252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee16252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee16252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee16252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16252[];
+extern VTBL_ENTRY _ZTV7ee16252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16252[];
+static VTBL_ENTRY alt_thunk_names1183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16252 = { "ee16252", // class name
+ bases_ee16252, 4,
+ &(vtc_ee16252[0]), // expected_vtbl_contents
+ &(vtt_ee16252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16252),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26252 : dd6252 {
+ int e;
+ virtual void foo(); // _ZN7ee262523fooEv
+ ~ee26252(); // tgen
+ ee26252(); // tgen
+};
+//SIG(1 ee26252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26252 ::foo(){vfunc_called(this, "_ZN7ee262523fooEv");}
+ee26252 ::~ee26252(){ note_dtor("ee26252", this);} // tgen
+ee26252 ::ee26252(){ note_ctor("ee26252", this);} // tgen
+
+static void Test_ee26252()
+{
+ extern Class_Descriptor cd_ee26252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26252, buf);
+ ee26252 *dp, &lv = *(dp=new (buf) ee26252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(24,20), "ee26252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), 0, "ee26252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), 0, "ee26252");
+ check_base_class_offset(lv, (dd6252*), 0, "ee26252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26252.e");
+ test_class_info(&lv, &cd_ee26252);
+ dp->~ee26252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26252(Test_ee26252, "ee26252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26252C1Ev();
+extern void _ZN7ee26252D1Ev();
+Name_Map name_map_ee26252[] = {
+ NSPAIR(_ZN7ee26252C1Ev),
+ NSPAIR(_ZN7ee26252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee26252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN7ee262523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee262523fooEv,_ZTv0_n12_N7ee262523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee262523fooEv,_ZThn20_N7ee262523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN7ee262523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee262523fooEv,_ZTv0_n12_N7ee262523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee26252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee26252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee26252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee26252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee26252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee26252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee26252[] = {
+ {&(_ZTV7ee26252[3]), 3,11},
+ {&(_tg__ZTV6dd6252__7ee26252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee26252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee26252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee26252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee26252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee26252[4]), 4,6},
+ {&(_ZTV7ee26252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26252[];
+extern VTBL_ENTRY _ZTV7ee26252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26252[];
+static VTBL_ENTRY alt_thunk_names1184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee262523fooEv,_ZTv0_n12_N7ee262523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee262523fooEv,_ZThn20_N7ee262523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26252 = { "ee26252", // class name
+ bases_ee26252, 4,
+ &(vtc_ee26252[0]), // expected_vtbl_contents
+ &(vtt_ee26252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36252 : virtual dd6252 {
+ int e;
+ virtual void foo(); // _ZN7ee362523fooEv
+ ~ee36252(); // tgen
+ ee36252(); // tgen
+};
+//SIG(1 ee36252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36252 ::foo(){vfunc_called(this, "_ZN7ee362523fooEv");}
+ee36252 ::~ee36252(){ note_dtor("ee36252", this);} // tgen
+ee36252 ::ee36252(){ note_ctor("ee36252", this);} // tgen
+
+static void Test_ee36252()
+{
+ extern Class_Descriptor cd_ee36252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36252, buf);
+ ee36252 *dp, &lv = *(dp=new (buf) ee36252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(40,24), "ee36252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), ABISELECT(16,8), "ee36252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), ABISELECT(16,8), "ee36252");
+ check_base_class_offset(lv, (dd6252*), ABISELECT(16,8), "ee36252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36252.e");
+ test_class_info(&lv, &cd_ee36252);
+ dp->~ee36252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36252(Test_ee36252, "ee36252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36252C1Ev();
+extern void _ZN7ee36252D1Ev();
+Name_Map name_map_ee36252[] = {
+ NSPAIR(_ZN7ee36252C1Ev),
+ NSPAIR(_ZN7ee36252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee36252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36252[];
+extern void _ZN7ee362523fooEv();
+extern void _ZN6dd62523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee362523fooEv,_ZTv0_n20_N7ee362523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee362523fooEv,_ZThn8_N7ee362523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee362523fooEv,_ZTv0_n12_N7ee362523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee362523fooEv,_ZThn24_N7ee362523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36252[0]),
+ (VTBL_ENTRY)&_ZN7ee362523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee362523fooEv,_ZTv0_n20_N7ee362523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee362523fooEv,_ZTv0_n12_N7ee362523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee36252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee36252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee36252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee36252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee36252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee36252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee36252[] = {
+ {&(_ZTV7ee36252[4]), 4,18},
+ {&(_ZTV7ee36252[10]), 10,18},
+ {&(_ZTV7ee36252[16]), 16,18},
+ {&(_tg__ZTV6dd6252__7ee36252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee36252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee36252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee36252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee36252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee36252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36252[];
+extern VTBL_ENTRY _ZTV7ee36252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36252[];
+static VTBL_ENTRY alt_thunk_names1185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee362523fooEv,_ZTv0_n12_N7ee362523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee362523fooEv,_ZThn24_N7ee362523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee362523fooEv,_ZTv0_n20_N7ee362523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee362523fooEv,_ZThn8_N7ee362523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36252 = { "ee36252", // class name
+ bases_ee36252, 4,
+ &(vtc_ee36252[0]), // expected_vtbl_contents
+ &(vtt_ee36252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46252 : dd6252 {
+ int e;
+ virtual void bar(); // _ZN7ee462523barEv
+ ~ee46252(); // tgen
+ ee46252(); // tgen
+};
+//SIG(1 ee46252) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46252 ::bar(){vfunc_called(this, "_ZN7ee462523barEv");}
+ee46252 ::~ee46252(){ note_dtor("ee46252", this);} // tgen
+ee46252 ::ee46252(){ note_ctor("ee46252", this);} // tgen
+
+static void Test_ee46252()
+{
+ extern Class_Descriptor cd_ee46252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46252, buf);
+ ee46252 *dp, &lv = *(dp=new (buf) ee46252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(24,20), "ee46252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), 0, "ee46252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), 0, "ee46252");
+ check_base_class_offset(lv, (dd6252*), 0, "ee46252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46252.e");
+ test_class_info(&lv, &cd_ee46252);
+ dp->~ee46252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46252(Test_ee46252, "ee46252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46252C1Ev();
+extern void _ZN7ee46252D1Ev();
+Name_Map name_map_ee46252[] = {
+ NSPAIR(_ZN7ee46252C1Ev),
+ NSPAIR(_ZN7ee46252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee46252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46252[];
+extern void _ZN7ee462523barEv();
+extern void _ZN6dd62523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee462523barEv,_ZTv0_n16_N7ee462523barEv)();
+extern void ABISELECT(_ZThn24_N7ee462523barEv,_ZThn20_N7ee462523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46252[0]),
+ (VTBL_ENTRY)&_ZN7ee462523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee462523barEv,_ZTv0_n16_N7ee462523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee46252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee46252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee46252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee46252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee46252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee46252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee46252[] = {
+ {&(_ZTV7ee46252[3]), 3,11},
+ {&(_tg__ZTV6dd6252__7ee46252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee46252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee46252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee46252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee46252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee46252[4]), 4,6},
+ {&(_ZTV7ee46252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46252[];
+extern VTBL_ENTRY _ZTV7ee46252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46252[];
+static VTBL_ENTRY alt_thunk_names1186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee462523barEv,_ZTv0_n16_N7ee462523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee462523barEv,_ZThn20_N7ee462523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46252 = { "ee46252", // class name
+ bases_ee46252, 4,
+ &(vtc_ee46252[0]), // expected_vtbl_contents
+ &(vtt_ee46252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56252 : virtual dd6252 {
+ int e;
+ virtual void bar(); // _ZN7ee562523barEv
+ ~ee56252(); // tgen
+ ee56252(); // tgen
+};
+//SIG(1 ee56252) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56252 ::bar(){vfunc_called(this, "_ZN7ee562523barEv");}
+ee56252 ::~ee56252(){ note_dtor("ee56252", this);} // tgen
+ee56252 ::ee56252(){ note_ctor("ee56252", this);} // tgen
+
+static void Test_ee56252()
+{
+ extern Class_Descriptor cd_ee56252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56252, buf);
+ ee56252 *dp, &lv = *(dp=new (buf) ee56252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(40,24), "ee56252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), ABISELECT(16,8), "ee56252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), ABISELECT(16,8), "ee56252");
+ check_base_class_offset(lv, (dd6252*), ABISELECT(16,8), "ee56252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56252.e");
+ test_class_info(&lv, &cd_ee56252);
+ dp->~ee56252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56252(Test_ee56252, "ee56252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56252C1Ev();
+extern void _ZN7ee56252D1Ev();
+Name_Map name_map_ee56252[] = {
+ NSPAIR(_ZN7ee56252C1Ev),
+ NSPAIR(_ZN7ee56252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee56252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56252[];
+extern void _ZN7ee562523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee562523barEv,_ZTv0_n16_N7ee562523barEv)();
+extern void ABISELECT(_ZThn16_N7ee562523barEv,_ZThn8_N7ee562523barEv)() __attribute__((weak));
+extern void _ZN6dd62523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee562523barEv,_ZTv0_n16_N7ee562523barEv)();
+extern void ABISELECT(_ZThn40_N7ee562523barEv,_ZThn24_N7ee562523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56252[0]),
+ (VTBL_ENTRY)&_ZN7ee562523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562523barEv,_ZTv0_n16_N7ee562523barEv),
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee562523barEv,_ZTv0_n16_N7ee562523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee56252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee56252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee56252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee56252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee56252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee56252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee56252[] = {
+ {&(_ZTV7ee56252[4]), 4,18},
+ {&(_ZTV7ee56252[10]), 10,18},
+ {&(_ZTV7ee56252[16]), 16,18},
+ {&(_tg__ZTV6dd6252__7ee56252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee56252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee56252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee56252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee56252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee56252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56252[];
+extern VTBL_ENTRY _ZTV7ee56252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56252[];
+static VTBL_ENTRY alt_thunk_names1187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee562523barEv,_ZTv0_n16_N7ee562523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee562523barEv,_ZThn24_N7ee562523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee562523barEv,_ZThn8_N7ee562523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56252 = { "ee56252", // class name
+ bases_ee56252, 4,
+ &(vtc_ee56252[0]), // expected_vtbl_contents
+ &(vtt_ee56252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56252),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66252 : dd6252 {
+ int e;
+ virtual void foo(); // _ZN7ee662523fooEv
+ virtual void bar(); // _ZN7ee662523barEv
+ ~ee66252(); // tgen
+ ee66252(); // tgen
+};
+//SIG(1 ee66252) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66252 ::foo(){vfunc_called(this, "_ZN7ee662523fooEv");}
+void ee66252 ::bar(){vfunc_called(this, "_ZN7ee662523barEv");}
+ee66252 ::~ee66252(){ note_dtor("ee66252", this);} // tgen
+ee66252 ::ee66252(){ note_ctor("ee66252", this);} // tgen
+
+static void Test_ee66252()
+{
+ extern Class_Descriptor cd_ee66252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66252, buf);
+ ee66252 *dp, &lv = *(dp=new (buf) ee66252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(24,20), "ee66252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), 0, "ee66252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), 0, "ee66252");
+ check_base_class_offset(lv, (dd6252*), 0, "ee66252");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66252.e");
+ test_class_info(&lv, &cd_ee66252);
+ dp->~ee66252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66252(Test_ee66252, "ee66252", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66252C1Ev();
+extern void _ZN7ee66252D1Ev();
+Name_Map name_map_ee66252[] = {
+ NSPAIR(_ZN7ee66252C1Ev),
+ NSPAIR(_ZN7ee66252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee66252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66252[];
+extern void _ZN7ee662523barEv();
+extern void _ZN7ee662523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee662523fooEv,_ZTv0_n12_N7ee662523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee662523fooEv,_ZThn20_N7ee662523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee662523barEv,_ZTv0_n16_N7ee662523barEv)();
+extern void ABISELECT(_ZThn24_N7ee662523barEv,_ZThn20_N7ee662523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66252[0]),
+ (VTBL_ENTRY)&_ZN7ee662523barEv,
+ (VTBL_ENTRY)&_ZN7ee662523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee662523fooEv,_ZTv0_n12_N7ee662523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee662523barEv,_ZTv0_n16_N7ee662523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee66252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee66252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee66252[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee66252[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee66252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee66252[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee66252[] = {
+ {&(_ZTV7ee66252[3]), 3,11},
+ {&(_tg__ZTV6dd6252__7ee66252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee66252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee66252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee66252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee66252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee66252[4]), 4,6},
+ {&(_ZTV7ee66252[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66252[];
+extern VTBL_ENTRY _ZTV7ee66252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66252[];
+static VTBL_ENTRY alt_thunk_names1188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn20_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn20_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn20_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee662523barEv,_ZTv0_n16_N7ee662523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee662523barEv,_ZThn20_N7ee662523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee662523fooEv,_ZTv0_n12_N7ee662523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee662523fooEv,_ZThn20_N7ee662523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66252 = { "ee66252", // class name
+ bases_ee66252, 4,
+ &(vtc_ee66252[0]), // expected_vtbl_contents
+ &(vtt_ee66252[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66252),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66252),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76252 : virtual dd6252 {
+ int e;
+ virtual void foo(); // _ZN7ee762523fooEv
+ virtual void bar(); // _ZN7ee762523barEv
+ ~ee76252(); // tgen
+ ee76252(); // tgen
+};
+//SIG(1 ee76252) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76252 ::foo(){vfunc_called(this, "_ZN7ee762523fooEv");}
+void ee76252 ::bar(){vfunc_called(this, "_ZN7ee762523barEv");}
+ee76252 ::~ee76252(){ note_dtor("ee76252", this);} // tgen
+ee76252 ::ee76252(){ note_ctor("ee76252", this);} // tgen
+
+static void Test_ee76252()
+{
+ extern Class_Descriptor cd_ee76252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76252, buf);
+ ee76252 *dp, &lv = *(dp=new (buf) ee76252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*)(dd6252*), ABISELECT(40,24), "ee76252");
+ check_base_class_offset(lv, (bb52*)(cc252*)(dd6252*), ABISELECT(16,8), "ee76252");
+ check_base_class_offset(lv, (cc252*)(dd6252*), ABISELECT(16,8), "ee76252");
+ check_base_class_offset(lv, (dd6252*), ABISELECT(16,8), "ee76252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76252.e");
+ test_class_info(&lv, &cd_ee76252);
+ dp->~ee76252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76252(Test_ee76252, "ee76252", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76252C1Ev();
+extern void _ZN7ee76252D1Ev();
+Name_Map name_map_ee76252[] = {
+ NSPAIR(_ZN7ee76252C1Ev),
+ NSPAIR(_ZN7ee76252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd6252;
+extern VTBL_ENTRY _ZTI6dd6252[];
+extern VTBL_ENTRY _ZTV6dd6252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6252[];
+static Base_Class bases_ee76252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76252[];
+extern void _ZN7ee762523fooEv();
+extern void _ZN7ee762523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee762523barEv,_ZTv0_n16_N7ee762523barEv)();
+extern void ABISELECT(_ZThn16_N7ee762523barEv,_ZThn8_N7ee762523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee762523fooEv,_ZTv0_n20_N7ee762523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee762523fooEv,_ZThn8_N7ee762523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee762523fooEv,_ZTv0_n12_N7ee762523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee762523fooEv,_ZThn24_N7ee762523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee762523barEv,_ZTv0_n16_N7ee762523barEv)();
+extern void ABISELECT(_ZThn40_N7ee762523barEv,_ZThn24_N7ee762523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76252[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76252[0]),
+ (VTBL_ENTRY)&_ZN7ee762523fooEv,
+ (VTBL_ENTRY)&_ZN7ee762523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762523barEv,_ZTv0_n16_N7ee762523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee762523fooEv,_ZTv0_n20_N7ee762523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee762523fooEv,_ZTv0_n12_N7ee762523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee762523barEv,_ZTv0_n16_N7ee762523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76252[];
+extern void _ZN6dd62523barEv();
+extern void _ZN6dd62523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6252__7ee76252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&_ZN6dd62523barEv,
+ (VTBL_ENTRY)&_ZN6dd62523fooEv,
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc2526dd6252__7ee76252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc2526dd6252__7ee76252[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc2526dd6252__7ee76252[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc2526dd6252__7ee76252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv)();
+extern void ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6252__7ee76252[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv),
+};
+static VTT_ENTRY vtt_ee76252[] = {
+ {&(_ZTV7ee76252[4]), 4,19},
+ {&(_ZTV7ee76252[11]), 11,19},
+ {&(_ZTV7ee76252[17]), 17,19},
+ {&(_tg__ZTV6dd6252__7ee76252[3]), 3,5},
+ {&(_tg__ZTV5cc2526dd6252__7ee76252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc2526dd6252__7ee76252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc2526dd6252__7ee76252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc2526dd6252__7ee76252[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6252__7ee76252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76252[];
+extern VTBL_ENTRY _ZTV7ee76252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76252[];
+static VTBL_ENTRY alt_thunk_names1189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd62523barEv,_ZTv0_n16_N6dd62523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523barEv,_ZThn16_N6dd62523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd62523fooEv,_ZTv0_n12_N6dd62523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd62523fooEv,_ZThn16_N6dd62523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc2523fooEv,_ZThn16_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee762523fooEv,_ZTv0_n12_N7ee762523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee762523fooEv,_ZThn24_N7ee762523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee762523fooEv,_ZTv0_n20_N7ee762523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762523fooEv,_ZThn8_N7ee762523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee762523barEv,_ZTv0_n16_N7ee762523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee762523barEv,_ZThn24_N7ee762523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee762523barEv,_ZThn8_N7ee762523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76252 = { "ee76252", // class name
+ bases_ee76252, 4,
+ &(vtc_ee76252[0]), // expected_vtbl_contents
+ &(vtt_ee76252[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76252),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7252 : virtual cc252 {
+ int d;
+ virtual void bar(); // _ZN6dd72523barEv
+ virtual void foo(); // _ZN6dd72523fooEv
+ ~dd7252(); // tgen
+ dd7252(); // tgen
+};
+//SIG(-1 dd7252) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7252 ::bar(){vfunc_called(this, "_ZN6dd72523barEv");}
+void dd7252 ::foo(){vfunc_called(this, "_ZN6dd72523fooEv");}
+dd7252 ::~dd7252(){ note_dtor("dd7252", this);} // tgen
+dd7252 ::dd7252(){ note_ctor("dd7252", this);} // tgen
+
+static void Test_dd7252()
+{
+ extern Class_Descriptor cd_dd7252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7252, buf);
+ dd7252 *dp, &lv = *(dp=new (buf) dd7252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,20), "dd7252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,8), "dd7252");
+ check_base_class_offset(lv, (cc252*), ABISELECT(16,8), "dd7252");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7252.d");
+ test_class_info(&lv, &cd_dd7252);
+ dp->~dd7252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7252(Test_dd7252, "dd7252", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7252C1Ev();
+extern void _ZN6dd7252D1Ev();
+Name_Map name_map_dd7252[] = {
+ NSPAIR(_ZN6dd7252C1Ev),
+ NSPAIR(_ZN6dd7252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+static Base_Class bases_dd7252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd7252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__6dd7252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__6dd7252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__6dd7252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7252[] = {
+ {&(_ZTV6dd7252[4]), 4,19},
+ {&(_ZTV6dd7252[11]), 11,19},
+ {&(_ZTV6dd7252[17]), 17,19},
+ {&(_tg__ZTV5cc252__6dd7252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__6dd7252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__6dd7252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__6dd7252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static VTBL_ENTRY alt_thunk_names1190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7252 = { "dd7252", // class name
+ bases_dd7252, 3,
+ &(vtc_dd7252[0]), // expected_vtbl_contents
+ &(vtt_dd7252[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7252),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07252 : dd7252 {
+ int e;
+ ~ee07252(); // tgen
+ ee07252(); // tgen
+};
+//SIG(1 ee07252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07252 ::~ee07252(){ note_dtor("ee07252", this);} // tgen
+ee07252 ::ee07252(){ note_ctor("ee07252", this);} // tgen
+
+static void Test_ee07252()
+{
+ extern Class_Descriptor cd_ee07252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07252, buf);
+ ee07252 *dp, &lv = *(dp=new (buf) ee07252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee07252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee07252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(16,12), "ee07252");
+ check_base_class_offset(lv, (dd7252*), 0, "ee07252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07252.e");
+ test_class_info(&lv, &cd_ee07252);
+ dp->~ee07252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07252(Test_ee07252, "ee07252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07252C1Ev();
+extern void _ZN7ee07252D1Ev();
+Name_Map name_map_ee07252[] = {
+ NSPAIR(_ZN7ee07252C1Ev),
+ NSPAIR(_ZN7ee07252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee07252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee07252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee07252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee07252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee07252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee07252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee07252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee07252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07252[] = {
+ {&(_ZTV7ee07252[4]), 4,19},
+ {&(_tg__ZTV6dd7252__7ee07252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee07252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee07252[4]), 4,6},
+ {&(_ZTV7ee07252[11]), 11,19},
+ {&(_ZTV7ee07252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee07252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee07252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee07252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee07252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07252[];
+extern VTBL_ENTRY _ZTV7ee07252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07252[];
+static VTBL_ENTRY alt_thunk_names1191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07252 = { "ee07252", // class name
+ bases_ee07252, 4,
+ &(vtc_ee07252[0]), // expected_vtbl_contents
+ &(vtt_ee07252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17252 : virtual dd7252 {
+ int e;
+ ~ee17252(); // tgen
+ ee17252(); // tgen
+};
+//SIG(1 ee17252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17252 ::~ee17252(){ note_dtor("ee17252", this);} // tgen
+ee17252 ::ee17252(){ note_ctor("ee17252", this);} // tgen
+
+static void Test_ee17252()
+{
+ extern Class_Descriptor cd_ee17252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17252, buf);
+ ee17252 *dp, &lv = *(dp=new (buf) ee17252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee17252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee17252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(32,16), "ee17252");
+ check_base_class_offset(lv, (dd7252*), ABISELECT(16,8), "ee17252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17252.e");
+ test_class_info(&lv, &cd_ee17252);
+ dp->~ee17252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17252(Test_ee17252, "ee17252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17252C1Ev();
+extern void _ZN7ee17252D1Ev();
+Name_Map name_map_ee17252[] = {
+ NSPAIR(_ZN7ee17252C1Ev),
+ NSPAIR(_ZN7ee17252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee17252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17252[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee17252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee17252[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee17252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee17252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee17252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee17252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee17252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17252[] = {
+ {&(_ZTV7ee17252[5]), 5,26},
+ {&(_ZTV7ee17252[11]), 11,26},
+ {&(_ZTV7ee17252[18]), 18,26},
+ {&(_ZTV7ee17252[24]), 24,26},
+ {&(_tg__ZTV6dd7252__7ee17252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee17252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee17252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee17252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee17252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee17252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee17252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17252[];
+extern VTBL_ENTRY _ZTV7ee17252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17252[];
+static VTBL_ENTRY alt_thunk_names1192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17252 = { "ee17252", // class name
+ bases_ee17252, 4,
+ &(vtc_ee17252[0]), // expected_vtbl_contents
+ &(vtt_ee17252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17252),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27252 : dd7252 {
+ int e;
+ virtual void foo(); // _ZN7ee272523fooEv
+ ~ee27252(); // tgen
+ ee27252(); // tgen
+};
+//SIG(1 ee27252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27252 ::foo(){vfunc_called(this, "_ZN7ee272523fooEv");}
+ee27252 ::~ee27252(){ note_dtor("ee27252", this);} // tgen
+ee27252 ::ee27252(){ note_ctor("ee27252", this);} // tgen
+
+static void Test_ee27252()
+{
+ extern Class_Descriptor cd_ee27252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27252, buf);
+ ee27252 *dp, &lv = *(dp=new (buf) ee27252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee27252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee27252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(16,12), "ee27252");
+ check_base_class_offset(lv, (dd7252*), 0, "ee27252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27252.e");
+ test_class_info(&lv, &cd_ee27252);
+ dp->~ee27252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27252(Test_ee27252, "ee27252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27252C1Ev();
+extern void _ZN7ee27252D1Ev();
+Name_Map name_map_ee27252[] = {
+ NSPAIR(_ZN7ee27252C1Ev),
+ NSPAIR(_ZN7ee27252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee27252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN7ee272523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee272523fooEv,_ZTv0_n20_N7ee272523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee272523fooEv,_ZThn12_N7ee272523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee272523fooEv,_ZTv0_n12_N7ee272523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee272523fooEv,_ZThn24_N7ee272523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN7ee272523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee272523fooEv,_ZTv0_n20_N7ee272523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee272523fooEv,_ZTv0_n12_N7ee272523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee27252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee27252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee27252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee27252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee27252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee27252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee27252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27252[] = {
+ {&(_ZTV7ee27252[4]), 4,19},
+ {&(_tg__ZTV6dd7252__7ee27252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee27252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee27252[4]), 4,6},
+ {&(_ZTV7ee27252[11]), 11,19},
+ {&(_ZTV7ee27252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee27252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee27252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee27252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee27252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27252[];
+extern VTBL_ENTRY _ZTV7ee27252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27252[];
+static VTBL_ENTRY alt_thunk_names1193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee272523fooEv,_ZTv0_n12_N7ee272523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee272523fooEv,_ZThn24_N7ee272523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee272523fooEv,_ZTv0_n20_N7ee272523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee272523fooEv,_ZThn12_N7ee272523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27252 = { "ee27252", // class name
+ bases_ee27252, 4,
+ &(vtc_ee27252[0]), // expected_vtbl_contents
+ &(vtt_ee27252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37252 : virtual dd7252 {
+ int e;
+ virtual void foo(); // _ZN7ee372523fooEv
+ ~ee37252(); // tgen
+ ee37252(); // tgen
+};
+//SIG(1 ee37252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37252 ::foo(){vfunc_called(this, "_ZN7ee372523fooEv");}
+ee37252 ::~ee37252(){ note_dtor("ee37252", this);} // tgen
+ee37252 ::ee37252(){ note_ctor("ee37252", this);} // tgen
+
+static void Test_ee37252()
+{
+ extern Class_Descriptor cd_ee37252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37252, buf);
+ ee37252 *dp, &lv = *(dp=new (buf) ee37252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee37252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee37252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(32,16), "ee37252");
+ check_base_class_offset(lv, (dd7252*), ABISELECT(16,8), "ee37252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37252.e");
+ test_class_info(&lv, &cd_ee37252);
+ dp->~ee37252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37252(Test_ee37252, "ee37252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37252C1Ev();
+extern void _ZN7ee37252D1Ev();
+Name_Map name_map_ee37252[] = {
+ NSPAIR(_ZN7ee37252C1Ev),
+ NSPAIR(_ZN7ee37252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee37252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37252[];
+extern void _ZN7ee372523fooEv();
+extern void _ZN6dd72523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee372523fooEv,_ZTv0_n24_N7ee372523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee372523fooEv,_ZThn8_N7ee372523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee372523fooEv,_ZTv0_n20_N7ee372523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee372523fooEv,_ZThn16_N7ee372523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee372523fooEv,_ZTv0_n12_N7ee372523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee372523fooEv,_ZThn28_N7ee372523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37252[0]),
+ (VTBL_ENTRY)&_ZN7ee372523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee372523fooEv,_ZTv0_n24_N7ee372523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee372523fooEv,_ZTv0_n20_N7ee372523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee372523fooEv,_ZTv0_n12_N7ee372523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee37252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee37252[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee37252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee37252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee37252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee37252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee37252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37252[] = {
+ {&(_ZTV7ee37252[5]), 5,27},
+ {&(_ZTV7ee37252[12]), 12,27},
+ {&(_ZTV7ee37252[19]), 19,27},
+ {&(_ZTV7ee37252[25]), 25,27},
+ {&(_tg__ZTV6dd7252__7ee37252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee37252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee37252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee37252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee37252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee37252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee37252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37252[];
+extern VTBL_ENTRY _ZTV7ee37252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37252[];
+static VTBL_ENTRY alt_thunk_names1194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee372523fooEv,_ZTv0_n12_N7ee372523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee372523fooEv,_ZThn28_N7ee372523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee372523fooEv,_ZTv0_n20_N7ee372523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee372523fooEv,_ZThn16_N7ee372523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee372523fooEv,_ZTv0_n24_N7ee372523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee372523fooEv,_ZThn8_N7ee372523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37252 = { "ee37252", // class name
+ bases_ee37252, 4,
+ &(vtc_ee37252[0]), // expected_vtbl_contents
+ &(vtt_ee37252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37252),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47252 : dd7252 {
+ int e;
+ virtual void bar(); // _ZN7ee472523barEv
+ ~ee47252(); // tgen
+ ee47252(); // tgen
+};
+//SIG(1 ee47252) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47252 ::bar(){vfunc_called(this, "_ZN7ee472523barEv");}
+ee47252 ::~ee47252(){ note_dtor("ee47252", this);} // tgen
+ee47252 ::ee47252(){ note_ctor("ee47252", this);} // tgen
+
+static void Test_ee47252()
+{
+ extern Class_Descriptor cd_ee47252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47252, buf);
+ ee47252 *dp, &lv = *(dp=new (buf) ee47252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee47252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee47252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(16,12), "ee47252");
+ check_base_class_offset(lv, (dd7252*), 0, "ee47252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47252.e");
+ test_class_info(&lv, &cd_ee47252);
+ dp->~ee47252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47252(Test_ee47252, "ee47252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47252C1Ev();
+extern void _ZN7ee47252D1Ev();
+Name_Map name_map_ee47252[] = {
+ NSPAIR(_ZN7ee47252C1Ev),
+ NSPAIR(_ZN7ee47252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee47252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47252[];
+extern void _ZN7ee472523barEv();
+extern void _ZN6dd72523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee472523barEv,_ZTv0_n16_N7ee472523barEv)();
+extern void ABISELECT(_ZThn16_N7ee472523barEv,_ZThn12_N7ee472523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee472523barEv,_ZTv0_n16_N7ee472523barEv)();
+extern void ABISELECT(_ZThn32_N7ee472523barEv,_ZThn24_N7ee472523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47252[0]),
+ (VTBL_ENTRY)&_ZN7ee472523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472523barEv,_ZTv0_n16_N7ee472523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee472523barEv,_ZTv0_n16_N7ee472523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee47252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee47252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee47252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee47252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee47252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee47252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee47252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47252[] = {
+ {&(_ZTV7ee47252[4]), 4,19},
+ {&(_tg__ZTV6dd7252__7ee47252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee47252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee47252[4]), 4,6},
+ {&(_ZTV7ee47252[11]), 11,19},
+ {&(_ZTV7ee47252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee47252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee47252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee47252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee47252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47252[];
+extern VTBL_ENTRY _ZTV7ee47252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47252[];
+static VTBL_ENTRY alt_thunk_names1195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee472523barEv,_ZTv0_n16_N7ee472523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee472523barEv,_ZThn24_N7ee472523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee472523barEv,_ZThn12_N7ee472523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47252 = { "ee47252", // class name
+ bases_ee47252, 4,
+ &(vtc_ee47252[0]), // expected_vtbl_contents
+ &(vtt_ee47252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57252 : virtual dd7252 {
+ int e;
+ virtual void bar(); // _ZN7ee572523barEv
+ ~ee57252(); // tgen
+ ee57252(); // tgen
+};
+//SIG(1 ee57252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57252 ::bar(){vfunc_called(this, "_ZN7ee572523barEv");}
+ee57252 ::~ee57252(){ note_dtor("ee57252", this);} // tgen
+ee57252 ::ee57252(){ note_ctor("ee57252", this);} // tgen
+
+static void Test_ee57252()
+{
+ extern Class_Descriptor cd_ee57252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57252, buf);
+ ee57252 *dp, &lv = *(dp=new (buf) ee57252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee57252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee57252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(32,16), "ee57252");
+ check_base_class_offset(lv, (dd7252*), ABISELECT(16,8), "ee57252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57252.e");
+ test_class_info(&lv, &cd_ee57252);
+ dp->~ee57252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57252(Test_ee57252, "ee57252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57252C1Ev();
+extern void _ZN7ee57252D1Ev();
+Name_Map name_map_ee57252[] = {
+ NSPAIR(_ZN7ee57252C1Ev),
+ NSPAIR(_ZN7ee57252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee57252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57252[];
+extern void _ZN7ee572523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee572523barEv,_ZTv0_n20_N7ee572523barEv)();
+extern void ABISELECT(_ZThn16_N7ee572523barEv,_ZThn8_N7ee572523barEv)() __attribute__((weak));
+extern void _ZN6dd72523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee572523barEv,_ZTv0_n16_N7ee572523barEv)();
+extern void ABISELECT(_ZThn32_N7ee572523barEv,_ZThn16_N7ee572523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee572523barEv,_ZTv0_n16_N7ee572523barEv)();
+extern void ABISELECT(_ZThn48_N7ee572523barEv,_ZThn28_N7ee572523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57252[0]),
+ (VTBL_ENTRY)&_ZN7ee572523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee572523barEv,_ZTv0_n20_N7ee572523barEv),
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572523barEv,_ZTv0_n16_N7ee572523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee572523barEv,_ZTv0_n16_N7ee572523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee57252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee57252[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee57252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee57252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee57252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee57252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee57252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57252[] = {
+ {&(_ZTV7ee57252[5]), 5,27},
+ {&(_ZTV7ee57252[12]), 12,27},
+ {&(_ZTV7ee57252[19]), 19,27},
+ {&(_ZTV7ee57252[25]), 25,27},
+ {&(_tg__ZTV6dd7252__7ee57252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee57252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee57252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee57252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee57252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee57252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee57252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57252[];
+extern VTBL_ENTRY _ZTV7ee57252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57252[];
+static VTBL_ENTRY alt_thunk_names1196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee572523barEv,_ZTv0_n16_N7ee572523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee572523barEv,_ZThn28_N7ee572523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee572523barEv,_ZThn16_N7ee572523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee572523barEv,_ZTv0_n20_N7ee572523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee572523barEv,_ZThn8_N7ee572523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57252 = { "ee57252", // class name
+ bases_ee57252, 4,
+ &(vtc_ee57252[0]), // expected_vtbl_contents
+ &(vtt_ee57252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57252),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67252 : dd7252 {
+ int e;
+ virtual void foo(); // _ZN7ee672523fooEv
+ virtual void bar(); // _ZN7ee672523barEv
+ ~ee67252(); // tgen
+ ee67252(); // tgen
+};
+//SIG(1 ee67252) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67252 ::foo(){vfunc_called(this, "_ZN7ee672523fooEv");}
+void ee67252 ::bar(){vfunc_called(this, "_ZN7ee672523barEv");}
+ee67252 ::~ee67252(){ note_dtor("ee67252", this);} // tgen
+ee67252 ::ee67252(){ note_ctor("ee67252", this);} // tgen
+
+static void Test_ee67252()
+{
+ extern Class_Descriptor cd_ee67252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67252, buf);
+ ee67252 *dp, &lv = *(dp=new (buf) ee67252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(32,24), "ee67252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(16,12), "ee67252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(16,12), "ee67252");
+ check_base_class_offset(lv, (dd7252*), 0, "ee67252");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67252.e");
+ test_class_info(&lv, &cd_ee67252);
+ dp->~ee67252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67252(Test_ee67252, "ee67252", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67252C1Ev();
+extern void _ZN7ee67252D1Ev();
+Name_Map name_map_ee67252[] = {
+ NSPAIR(_ZN7ee67252C1Ev),
+ NSPAIR(_ZN7ee67252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee67252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67252[];
+extern void _ZN7ee672523barEv();
+extern void _ZN7ee672523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee672523barEv,_ZTv0_n16_N7ee672523barEv)();
+extern void ABISELECT(_ZThn16_N7ee672523barEv,_ZThn12_N7ee672523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee672523fooEv,_ZTv0_n20_N7ee672523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee672523fooEv,_ZThn12_N7ee672523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee672523fooEv,_ZTv0_n12_N7ee672523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee672523fooEv,_ZThn24_N7ee672523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee672523barEv,_ZTv0_n16_N7ee672523barEv)();
+extern void ABISELECT(_ZThn32_N7ee672523barEv,_ZThn24_N7ee672523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67252[0]),
+ (VTBL_ENTRY)&_ZN7ee672523barEv,
+ (VTBL_ENTRY)&_ZN7ee672523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672523barEv,_ZTv0_n16_N7ee672523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee672523fooEv,_ZTv0_n20_N7ee672523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee672523fooEv,_ZTv0_n12_N7ee672523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee672523barEv,_ZTv0_n16_N7ee672523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee67252[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee67252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee67252[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee67252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee67252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee67252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee67252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67252[] = {
+ {&(_ZTV7ee67252[4]), 4,19},
+ {&(_tg__ZTV6dd7252__7ee67252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee67252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee67252[4]), 4,6},
+ {&(_ZTV7ee67252[11]), 11,19},
+ {&(_ZTV7ee67252[17]), 17,19},
+ {&(_tg__ZTV5cc252__7ee67252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee67252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee67252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee67252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67252[];
+extern VTBL_ENTRY _ZTV7ee67252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67252[];
+static VTBL_ENTRY alt_thunk_names1197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn24_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn12_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn24_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn12_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee672523fooEv,_ZTv0_n12_N7ee672523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee672523fooEv,_ZThn24_N7ee672523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee672523fooEv,_ZTv0_n20_N7ee672523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672523fooEv,_ZThn12_N7ee672523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee672523barEv,_ZTv0_n16_N7ee672523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee672523barEv,_ZThn24_N7ee672523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee672523barEv,_ZThn12_N7ee672523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67252 = { "ee67252", // class name
+ bases_ee67252, 4,
+ &(vtc_ee67252[0]), // expected_vtbl_contents
+ &(vtt_ee67252[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67252),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67252),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67252),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77252 : virtual dd7252 {
+ int e;
+ virtual void foo(); // _ZN7ee772523fooEv
+ virtual void bar(); // _ZN7ee772523barEv
+ ~ee77252(); // tgen
+ ee77252(); // tgen
+};
+//SIG(1 ee77252) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77252 ::foo(){vfunc_called(this, "_ZN7ee772523fooEv");}
+void ee77252 ::bar(){vfunc_called(this, "_ZN7ee772523barEv");}
+ee77252 ::~ee77252(){ note_dtor("ee77252", this);} // tgen
+ee77252 ::ee77252(){ note_ctor("ee77252", this);} // tgen
+
+static void Test_ee77252()
+{
+ extern Class_Descriptor cd_ee77252;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77252, buf);
+ ee77252 *dp, &lv = *(dp=new (buf) ee77252());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77252)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77252)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc252*), ABISELECT(48,28), "ee77252");
+ check_base_class_offset(lv, (bb52*)(cc252*), ABISELECT(32,16), "ee77252");
+ check_base_class_offset(lv, (cc252*)(dd7252*), ABISELECT(32,16), "ee77252");
+ check_base_class_offset(lv, (dd7252*), ABISELECT(16,8), "ee77252");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77252.e");
+ test_class_info(&lv, &cd_ee77252);
+ dp->~ee77252();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77252(Test_ee77252, "ee77252", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77252C1Ev();
+extern void _ZN7ee77252D1Ev();
+Name_Map name_map_ee77252[] = {
+ NSPAIR(_ZN7ee77252C1Ev),
+ NSPAIR(_ZN7ee77252D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc252;
+extern VTBL_ENTRY _ZTI5cc252[];
+extern VTBL_ENTRY _ZTV5cc252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc252[];
+extern Class_Descriptor cd_dd7252;
+extern VTBL_ENTRY _ZTI6dd7252[];
+extern VTBL_ENTRY _ZTV6dd7252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7252[];
+static Base_Class bases_ee77252[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc252, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7252, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77252[];
+extern void _ZN7ee772523fooEv();
+extern void _ZN7ee772523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee772523barEv,_ZTv0_n20_N7ee772523barEv)();
+extern void ABISELECT(_ZThn16_N7ee772523barEv,_ZThn8_N7ee772523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee772523fooEv,_ZTv0_n24_N7ee772523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee772523fooEv,_ZThn8_N7ee772523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772523barEv,_ZTv0_n16_N7ee772523barEv)();
+extern void ABISELECT(_ZThn32_N7ee772523barEv,_ZThn16_N7ee772523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee772523fooEv,_ZTv0_n20_N7ee772523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee772523fooEv,_ZThn16_N7ee772523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee772523fooEv,_ZTv0_n12_N7ee772523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee772523fooEv,_ZThn28_N7ee772523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee772523barEv,_ZTv0_n16_N7ee772523barEv)();
+extern void ABISELECT(_ZThn48_N7ee772523barEv,_ZThn28_N7ee772523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77252[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77252[0]),
+ (VTBL_ENTRY)&_ZN7ee772523fooEv,
+ (VTBL_ENTRY)&_ZN7ee772523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772523barEv,_ZTv0_n20_N7ee772523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee772523fooEv,_ZTv0_n24_N7ee772523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772523barEv,_ZTv0_n16_N7ee772523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee772523fooEv,_ZTv0_n20_N7ee772523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee772523fooEv,_ZTv0_n12_N7ee772523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee772523barEv,_ZTv0_n16_N7ee772523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77252[];
+extern void _ZN6dd72523barEv();
+extern void _ZN6dd72523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7252__7ee77252[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&_ZN6dd72523barEv,
+ (VTBL_ENTRY)&_ZN6dd72523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc252__6dd7252__7ee77252[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv)();
+extern void ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7252__7ee77252[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv),
+};
+extern void _ZN4bb523barEv();
+extern void _ZN5cc2523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc252__7ee77252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ (VTBL_ENTRY)&_ZN5cc2523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc252__7ee77252[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc252__7ee77252[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc252__7ee77252[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc252[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77252[] = {
+ {&(_ZTV7ee77252[5]), 5,28},
+ {&(_ZTV7ee77252[13]), 13,28},
+ {&(_ZTV7ee77252[20]), 20,28},
+ {&(_ZTV7ee77252[26]), 26,28},
+ {&(_tg__ZTV6dd7252__7ee77252[4]), 4,6},
+ {&(_tg__ZTV5cc252__6dd7252__7ee77252[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7252__7ee77252[4]), 4,6},
+ {&(_tg__ZTV5cc252__7ee77252[3]), 3,5},
+ {&(_tg__ZTV4bb525cc252__7ee77252[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc252__7ee77252[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc252__7ee77252[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77252[];
+extern VTBL_ENTRY _ZTV7ee77252[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77252[];
+static VTBL_ENTRY alt_thunk_names1198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc2523fooEv,_ZTv0_n12_N5cc2523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc2523fooEv,_ZThn12_N5cc2523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd72523fooEv,_ZTv0_n12_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523fooEv,_ZThn20_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd72523fooEv,_ZTv0_n20_N6dd72523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523fooEv,_ZThn8_N6dd72523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd72523barEv,_ZTv0_n16_N6dd72523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd72523barEv,_ZThn20_N6dd72523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd72523barEv,_ZThn8_N6dd72523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee772523fooEv,_ZTv0_n12_N7ee772523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee772523fooEv,_ZThn28_N7ee772523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772523fooEv,_ZTv0_n20_N7ee772523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772523fooEv,_ZThn16_N7ee772523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee772523barEv,_ZTv0_n16_N7ee772523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee772523barEv,_ZThn28_N7ee772523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee772523barEv,_ZThn16_N7ee772523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee772523fooEv,_ZTv0_n24_N7ee772523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772523fooEv,_ZThn8_N7ee772523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee772523barEv,_ZTv0_n20_N7ee772523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee772523barEv,_ZThn8_N7ee772523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77252 = { "ee77252", // class name
+ bases_ee77252, 4,
+ &(vtc_ee77252[0]), // expected_vtbl_contents
+ &(vtt_ee77252[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77252),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77252),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77252),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc352 : virtual bb52 {
+ int c;
+ virtual void foo(); // _ZN5cc3523fooEv
+ ~cc352(); // tgen
+ cc352(); // tgen
+};
+//SIG(-1 cc352) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void cc352 ::foo(){vfunc_called(this, "_ZN5cc3523fooEv");}
+cc352 ::~cc352(){ note_dtor("cc352", this);} // tgen
+cc352 ::cc352(){ note_ctor("cc352", this);} // tgen
+
+static void Test_cc352()
+{
+ extern Class_Descriptor cd_cc352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc352, buf);
+ cc352 *dp, &lv = *(dp=new (buf) cc352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,16), "cc352");
+ check_base_class_offset(lv, (bb52*), ABISELECT(16,8), "cc352");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc352.c");
+ test_class_info(&lv, &cd_cc352);
+ dp->~cc352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc352(Test_cc352, "cc352", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc352C1Ev();
+extern void _ZN5cc352D1Ev();
+Name_Map name_map_cc352[] = {
+ NSPAIR(_ZN5cc352C1Ev),
+ NSPAIR(_ZN5cc352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc352[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc352[] = {
+ {&(_ZTV5cc352[4]), 4,16},
+ {&(_ZTV5cc352[9]), 9,16},
+ {&(_ZTV5cc352[14]), 14,16},
+ {&(_tg__ZTV4bb52__5cc352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static VTBL_ENTRY alt_thunk_names1199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc352 = { "cc352", // class name
+ bases_cc352, 2,
+ &(vtc_cc352[0]), // expected_vtbl_contents
+ &(vtt_cc352[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc352),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0352 : cc352 {
+ int d;
+ ~dd0352(); // tgen
+ dd0352(); // tgen
+};
+//SIG(-1 dd0352) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd0352 ::~dd0352(){ note_dtor("dd0352", this);} // tgen
+dd0352 ::dd0352(){ note_ctor("dd0352", this);} // tgen
+
+static void Test_dd0352()
+{
+ extern Class_Descriptor cd_dd0352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0352, buf);
+ dd0352 *dp, &lv = *(dp=new (buf) dd0352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd0352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(16,12), "dd0352");
+ check_base_class_offset(lv, (cc352*), 0, "dd0352");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0352.d");
+ test_class_info(&lv, &cd_dd0352);
+ dp->~dd0352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0352(Test_dd0352, "dd0352", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0352C1Ev();
+extern void _ZN6dd0352D1Ev();
+Name_Map name_map_dd0352[] = {
+ NSPAIR(_ZN6dd0352C1Ev),
+ NSPAIR(_ZN6dd0352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd0352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd0352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd0352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd0352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd0352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0352[] = {
+ {&(_ZTV6dd0352[4]), 4,16},
+ {&(_tg__ZTV5cc352__6dd0352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd0352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd0352[4]), 4,6},
+ {&(_ZTV6dd0352[9]), 9,16},
+ {&(_ZTV6dd0352[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd0352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd0352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static VTBL_ENTRY alt_thunk_names1200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0352 = { "dd0352", // class name
+ bases_dd0352, 3,
+ &(vtc_dd0352[0]), // expected_vtbl_contents
+ &(vtt_dd0352[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0352),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00352 : dd0352 {
+ int e;
+ ~ee00352(); // tgen
+ ee00352(); // tgen
+};
+//SIG(1 ee00352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee00352 ::~ee00352(){ note_dtor("ee00352", this);} // tgen
+ee00352 ::ee00352(){ note_ctor("ee00352", this);} // tgen
+
+static void Test_ee00352()
+{
+ extern Class_Descriptor cd_ee00352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00352, buf);
+ ee00352 *dp, &lv = *(dp=new (buf) ee00352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee00352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(24,16), "ee00352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), 0, "ee00352");
+ check_base_class_offset(lv, (dd0352*), 0, "ee00352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00352.e");
+ test_class_info(&lv, &cd_ee00352);
+ dp->~ee00352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00352(Test_ee00352, "ee00352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00352C1Ev();
+extern void _ZN7ee00352D1Ev();
+Name_Map name_map_ee00352[] = {
+ NSPAIR(_ZN7ee00352C1Ev),
+ NSPAIR(_ZN7ee00352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee00352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee00352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee00352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee00352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee00352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee00352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee00352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee00352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee00352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00352[] = {
+ {&(_ZTV7ee00352[4]), 4,16},
+ {&(_tg__ZTV6dd0352__7ee00352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee00352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee00352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee00352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee00352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee00352[4]), 4,6},
+ {&(_ZTV7ee00352[9]), 9,16},
+ {&(_ZTV7ee00352[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee00352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee00352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee00352[];
+extern VTBL_ENTRY _ZTV7ee00352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00352[];
+static VTBL_ENTRY alt_thunk_names1201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00352 = { "ee00352", // class name
+ bases_ee00352, 4,
+ &(vtc_ee00352[0]), // expected_vtbl_contents
+ &(vtt_ee00352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10352 : virtual dd0352 {
+ int e;
+ ~ee10352(); // tgen
+ ee10352(); // tgen
+};
+//SIG(1 ee10352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee10352 ::~ee10352(){ note_dtor("ee10352", this);} // tgen
+ee10352 ::ee10352(){ note_ctor("ee10352", this);} // tgen
+
+static void Test_ee10352()
+{
+ extern Class_Descriptor cd_ee10352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10352, buf);
+ ee10352 *dp, &lv = *(dp=new (buf) ee10352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee10352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(32,20), "ee10352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), ABISELECT(16,8), "ee10352");
+ check_base_class_offset(lv, (dd0352*), ABISELECT(16,8), "ee10352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10352.e");
+ test_class_info(&lv, &cd_ee10352);
+ dp->~ee10352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10352(Test_ee10352, "ee10352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10352C1Ev();
+extern void _ZN7ee10352D1Ev();
+Name_Map name_map_ee10352[] = {
+ NSPAIR(_ZN7ee10352C1Ev),
+ NSPAIR(_ZN7ee10352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee10352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10352[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee10352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee10352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee10352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee10352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee10352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee10352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee10352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee10352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10352[] = {
+ {&(_ZTV7ee10352[5]), 5,22},
+ {&(_ZTV7ee10352[10]), 10,22},
+ {&(_ZTV7ee10352[15]), 15,22},
+ {&(_ZTV7ee10352[20]), 20,22},
+ {&(_tg__ZTV6dd0352__7ee10352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee10352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee10352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee10352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee10352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee10352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee10352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee10352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10352[];
+extern VTBL_ENTRY _ZTV7ee10352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10352[];
+static VTBL_ENTRY alt_thunk_names1202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10352 = { "ee10352", // class name
+ bases_ee10352, 4,
+ &(vtc_ee10352[0]), // expected_vtbl_contents
+ &(vtt_ee10352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10352),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20352 : dd0352 {
+ int e;
+ virtual void foo(); // _ZN7ee203523fooEv
+ ~ee20352(); // tgen
+ ee20352(); // tgen
+};
+//SIG(1 ee20352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee20352 ::foo(){vfunc_called(this, "_ZN7ee203523fooEv");}
+ee20352 ::~ee20352(){ note_dtor("ee20352", this);} // tgen
+ee20352 ::ee20352(){ note_ctor("ee20352", this);} // tgen
+
+static void Test_ee20352()
+{
+ extern Class_Descriptor cd_ee20352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20352, buf);
+ ee20352 *dp, &lv = *(dp=new (buf) ee20352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee20352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(24,16), "ee20352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), 0, "ee20352");
+ check_base_class_offset(lv, (dd0352*), 0, "ee20352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20352.e");
+ test_class_info(&lv, &cd_ee20352);
+ dp->~ee20352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20352(Test_ee20352, "ee20352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20352C1Ev();
+extern void _ZN7ee20352D1Ev();
+Name_Map name_map_ee20352[] = {
+ NSPAIR(_ZN7ee20352C1Ev),
+ NSPAIR(_ZN7ee20352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee20352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20352[];
+extern void _ZN7ee203523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee203523fooEv,_ZTv0_n12_N7ee203523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee203523fooEv,_ZThn24_N7ee203523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20352[0]),
+ (VTBL_ENTRY)&_ZN7ee203523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee203523fooEv,_ZTv0_n12_N7ee203523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee20352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee20352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee20352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee20352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee20352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee20352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee20352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee20352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20352[] = {
+ {&(_ZTV7ee20352[4]), 4,16},
+ {&(_tg__ZTV6dd0352__7ee20352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee20352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee20352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee20352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee20352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee20352[4]), 4,6},
+ {&(_ZTV7ee20352[9]), 9,16},
+ {&(_ZTV7ee20352[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee20352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee20352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee20352[];
+extern VTBL_ENTRY _ZTV7ee20352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20352[];
+static VTBL_ENTRY alt_thunk_names1203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee203523fooEv,_ZTv0_n12_N7ee203523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee203523fooEv,_ZThn24_N7ee203523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20352 = { "ee20352", // class name
+ bases_ee20352, 4,
+ &(vtc_ee20352[0]), // expected_vtbl_contents
+ &(vtt_ee20352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30352 : virtual dd0352 {
+ int e;
+ virtual void foo(); // _ZN7ee303523fooEv
+ ~ee30352(); // tgen
+ ee30352(); // tgen
+};
+//SIG(1 ee30352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee30352 ::foo(){vfunc_called(this, "_ZN7ee303523fooEv");}
+ee30352 ::~ee30352(){ note_dtor("ee30352", this);} // tgen
+ee30352 ::ee30352(){ note_ctor("ee30352", this);} // tgen
+
+static void Test_ee30352()
+{
+ extern Class_Descriptor cd_ee30352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30352, buf);
+ ee30352 *dp, &lv = *(dp=new (buf) ee30352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee30352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(32,20), "ee30352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), ABISELECT(16,8), "ee30352");
+ check_base_class_offset(lv, (dd0352*), ABISELECT(16,8), "ee30352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30352.e");
+ test_class_info(&lv, &cd_ee30352);
+ dp->~ee30352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30352(Test_ee30352, "ee30352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30352C1Ev();
+extern void _ZN7ee30352D1Ev();
+Name_Map name_map_ee30352[] = {
+ NSPAIR(_ZN7ee30352C1Ev),
+ NSPAIR(_ZN7ee30352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee30352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30352[];
+extern void _ZN7ee303523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee303523fooEv,_ZTv0_n20_N7ee303523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee303523fooEv,_ZThn8_N7ee303523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee303523fooEv,_ZTv0_n12_N7ee303523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee303523fooEv,_ZThn28_N7ee303523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30352[0]),
+ (VTBL_ENTRY)&_ZN7ee303523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee303523fooEv,_ZTv0_n20_N7ee303523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee303523fooEv,_ZTv0_n12_N7ee303523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee30352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee30352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee30352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee30352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee30352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee30352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee30352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee30352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30352[] = {
+ {&(_ZTV7ee30352[5]), 5,23},
+ {&(_ZTV7ee30352[11]), 11,23},
+ {&(_ZTV7ee30352[16]), 16,23},
+ {&(_ZTV7ee30352[21]), 21,23},
+ {&(_tg__ZTV6dd0352__7ee30352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee30352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee30352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee30352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee30352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee30352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee30352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee30352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30352[];
+extern VTBL_ENTRY _ZTV7ee30352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30352[];
+static VTBL_ENTRY alt_thunk_names1204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee303523fooEv,_ZTv0_n12_N7ee303523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee303523fooEv,_ZThn28_N7ee303523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee303523fooEv,_ZTv0_n20_N7ee303523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee303523fooEv,_ZThn8_N7ee303523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30352 = { "ee30352", // class name
+ bases_ee30352, 4,
+ &(vtc_ee30352[0]), // expected_vtbl_contents
+ &(vtt_ee30352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40352 : dd0352 {
+ int e;
+ virtual void bar(); // _ZN7ee403523barEv
+ ~ee40352(); // tgen
+ ee40352(); // tgen
+};
+//SIG(1 ee40352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee40352 ::bar(){vfunc_called(this, "_ZN7ee403523barEv");}
+ee40352 ::~ee40352(){ note_dtor("ee40352", this);} // tgen
+ee40352 ::ee40352(){ note_ctor("ee40352", this);} // tgen
+
+static void Test_ee40352()
+{
+ extern Class_Descriptor cd_ee40352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40352, buf);
+ ee40352 *dp, &lv = *(dp=new (buf) ee40352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee40352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(24,16), "ee40352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), 0, "ee40352");
+ check_base_class_offset(lv, (dd0352*), 0, "ee40352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40352.e");
+ test_class_info(&lv, &cd_ee40352);
+ dp->~ee40352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40352(Test_ee40352, "ee40352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40352C1Ev();
+extern void _ZN7ee40352D1Ev();
+Name_Map name_map_ee40352[] = {
+ NSPAIR(_ZN7ee40352C1Ev),
+ NSPAIR(_ZN7ee40352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee40352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN7ee403523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee403523barEv,_ZTv0_n16_N7ee403523barEv)();
+extern void ABISELECT(_ZThn24_N7ee403523barEv,_ZThn16_N7ee403523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee403523barEv,_ZTv0_n16_N7ee403523barEv)();
+extern void ABISELECT(_ZThn40_N7ee403523barEv,_ZThn24_N7ee403523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN7ee403523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403523barEv,_ZTv0_n16_N7ee403523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee403523barEv,_ZTv0_n16_N7ee403523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee40352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee40352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee40352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee40352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee40352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee40352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee40352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee40352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40352[] = {
+ {&(_ZTV7ee40352[4]), 4,17},
+ {&(_tg__ZTV6dd0352__7ee40352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee40352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee40352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee40352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee40352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee40352[4]), 4,6},
+ {&(_ZTV7ee40352[10]), 10,17},
+ {&(_ZTV7ee40352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee40352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee40352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee40352[];
+extern VTBL_ENTRY _ZTV7ee40352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40352[];
+static VTBL_ENTRY alt_thunk_names1205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee403523barEv,_ZTv0_n16_N7ee403523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee403523barEv,_ZThn24_N7ee403523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee403523barEv,_ZThn16_N7ee403523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40352 = { "ee40352", // class name
+ bases_ee40352, 4,
+ &(vtc_ee40352[0]), // expected_vtbl_contents
+ &(vtt_ee40352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50352 : virtual dd0352 {
+ int e;
+ virtual void bar(); // _ZN7ee503523barEv
+ ~ee50352(); // tgen
+ ee50352(); // tgen
+};
+//SIG(1 ee50352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee50352 ::bar(){vfunc_called(this, "_ZN7ee503523barEv");}
+ee50352 ::~ee50352(){ note_dtor("ee50352", this);} // tgen
+ee50352 ::ee50352(){ note_ctor("ee50352", this);} // tgen
+
+static void Test_ee50352()
+{
+ extern Class_Descriptor cd_ee50352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50352, buf);
+ ee50352 *dp, &lv = *(dp=new (buf) ee50352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee50352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(32,20), "ee50352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), ABISELECT(16,8), "ee50352");
+ check_base_class_offset(lv, (dd0352*), ABISELECT(16,8), "ee50352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50352.e");
+ test_class_info(&lv, &cd_ee50352);
+ dp->~ee50352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50352(Test_ee50352, "ee50352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50352C1Ev();
+extern void _ZN7ee50352D1Ev();
+Name_Map name_map_ee50352[] = {
+ NSPAIR(_ZN7ee50352C1Ev),
+ NSPAIR(_ZN7ee50352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee50352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50352[];
+extern void _ZN7ee503523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee503523barEv,_ZTv0_n16_N7ee503523barEv)();
+extern void ABISELECT(_ZThn32_N7ee503523barEv,_ZThn20_N7ee503523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee503523barEv,_ZTv0_n16_N7ee503523barEv)();
+extern void ABISELECT(_ZThn48_N7ee503523barEv,_ZThn28_N7ee503523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50352[0]),
+ (VTBL_ENTRY)&_ZN7ee503523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503523barEv,_ZTv0_n16_N7ee503523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee503523barEv,_ZTv0_n16_N7ee503523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee50352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee50352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee50352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee50352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee50352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee50352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee50352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee50352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50352[] = {
+ {&(_ZTV7ee50352[5]), 5,23},
+ {&(_ZTV7ee50352[11]), 11,23},
+ {&(_ZTV7ee50352[16]), 16,23},
+ {&(_ZTV7ee50352[21]), 21,23},
+ {&(_tg__ZTV6dd0352__7ee50352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee50352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee50352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee50352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee50352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee50352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee50352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee50352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50352[];
+extern VTBL_ENTRY _ZTV7ee50352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50352[];
+static VTBL_ENTRY alt_thunk_names1206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee503523barEv,_ZTv0_n16_N7ee503523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee503523barEv,_ZThn28_N7ee503523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee503523barEv,_ZThn20_N7ee503523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50352 = { "ee50352", // class name
+ bases_ee50352, 4,
+ &(vtc_ee50352[0]), // expected_vtbl_contents
+ &(vtt_ee50352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60352 : dd0352 {
+ int e;
+ virtual void foo(); // _ZN7ee603523fooEv
+ virtual void bar(); // _ZN7ee603523barEv
+ ~ee60352(); // tgen
+ ee60352(); // tgen
+};
+//SIG(1 ee60352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee60352 ::foo(){vfunc_called(this, "_ZN7ee603523fooEv");}
+void ee60352 ::bar(){vfunc_called(this, "_ZN7ee603523barEv");}
+ee60352 ::~ee60352(){ note_dtor("ee60352", this);} // tgen
+ee60352 ::ee60352(){ note_ctor("ee60352", this);} // tgen
+
+static void Test_ee60352()
+{
+ extern Class_Descriptor cd_ee60352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60352, buf);
+ ee60352 *dp, &lv = *(dp=new (buf) ee60352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee60352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(24,16), "ee60352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), 0, "ee60352");
+ check_base_class_offset(lv, (dd0352*), 0, "ee60352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60352.e");
+ test_class_info(&lv, &cd_ee60352);
+ dp->~ee60352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60352(Test_ee60352, "ee60352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60352C1Ev();
+extern void _ZN7ee60352D1Ev();
+Name_Map name_map_ee60352[] = {
+ NSPAIR(_ZN7ee60352C1Ev),
+ NSPAIR(_ZN7ee60352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee60352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60352[];
+extern void _ZN7ee603523fooEv();
+extern void _ZN7ee603523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee603523barEv,_ZTv0_n16_N7ee603523barEv)();
+extern void ABISELECT(_ZThn24_N7ee603523barEv,_ZThn16_N7ee603523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee603523fooEv,_ZTv0_n12_N7ee603523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee603523fooEv,_ZThn24_N7ee603523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee603523barEv,_ZTv0_n16_N7ee603523barEv)();
+extern void ABISELECT(_ZThn40_N7ee603523barEv,_ZThn24_N7ee603523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60352[0]),
+ (VTBL_ENTRY)&_ZN7ee603523fooEv,
+ (VTBL_ENTRY)&_ZN7ee603523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603523barEv,_ZTv0_n16_N7ee603523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee603523fooEv,_ZTv0_n12_N7ee603523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee603523barEv,_ZTv0_n16_N7ee603523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee60352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee60352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee60352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee60352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee60352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee60352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee60352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee60352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60352[] = {
+ {&(_ZTV7ee60352[4]), 4,17},
+ {&(_tg__ZTV6dd0352__7ee60352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee60352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee60352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee60352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee60352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee60352[4]), 4,6},
+ {&(_ZTV7ee60352[10]), 10,17},
+ {&(_ZTV7ee60352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee60352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee60352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee60352[];
+extern VTBL_ENTRY _ZTV7ee60352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60352[];
+static VTBL_ENTRY alt_thunk_names1207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee603523fooEv,_ZTv0_n12_N7ee603523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee603523fooEv,_ZThn24_N7ee603523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee603523barEv,_ZTv0_n16_N7ee603523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee603523barEv,_ZThn24_N7ee603523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee603523barEv,_ZThn16_N7ee603523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60352 = { "ee60352", // class name
+ bases_ee60352, 4,
+ &(vtc_ee60352[0]), // expected_vtbl_contents
+ &(vtt_ee60352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70352 : virtual dd0352 {
+ int e;
+ virtual void foo(); // _ZN7ee703523fooEv
+ virtual void bar(); // _ZN7ee703523barEv
+ ~ee70352(); // tgen
+ ee70352(); // tgen
+};
+//SIG(1 ee70352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee70352 ::foo(){vfunc_called(this, "_ZN7ee703523fooEv");}
+void ee70352 ::bar(){vfunc_called(this, "_ZN7ee703523barEv");}
+ee70352 ::~ee70352(){ note_dtor("ee70352", this);} // tgen
+ee70352 ::ee70352(){ note_ctor("ee70352", this);} // tgen
+
+static void Test_ee70352()
+{
+ extern Class_Descriptor cd_ee70352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70352, buf);
+ ee70352 *dp, &lv = *(dp=new (buf) ee70352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee70352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd0352*), ABISELECT(32,20), "ee70352");
+ check_base_class_offset(lv, (cc352*)(dd0352*), ABISELECT(16,8), "ee70352");
+ check_base_class_offset(lv, (dd0352*), ABISELECT(16,8), "ee70352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70352.e");
+ test_class_info(&lv, &cd_ee70352);
+ dp->~ee70352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70352(Test_ee70352, "ee70352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70352C1Ev();
+extern void _ZN7ee70352D1Ev();
+Name_Map name_map_ee70352[] = {
+ NSPAIR(_ZN7ee70352C1Ev),
+ NSPAIR(_ZN7ee70352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd0352;
+extern VTBL_ENTRY _ZTI6dd0352[];
+extern VTBL_ENTRY _ZTV6dd0352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0352[];
+static Base_Class bases_ee70352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0352, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70352[];
+extern void _ZN7ee703523fooEv();
+extern void _ZN7ee703523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee703523fooEv,_ZTv0_n20_N7ee703523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee703523fooEv,_ZThn8_N7ee703523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703523barEv,_ZTv0_n16_N7ee703523barEv)();
+extern void ABISELECT(_ZThn32_N7ee703523barEv,_ZThn20_N7ee703523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee703523fooEv,_ZTv0_n12_N7ee703523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee703523fooEv,_ZThn28_N7ee703523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee703523barEv,_ZTv0_n16_N7ee703523barEv)();
+extern void ABISELECT(_ZThn48_N7ee703523barEv,_ZThn28_N7ee703523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70352[0]),
+ (VTBL_ENTRY)&_ZN7ee703523fooEv,
+ (VTBL_ENTRY)&_ZN7ee703523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee703523fooEv,_ZTv0_n20_N7ee703523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703523barEv,_ZTv0_n16_N7ee703523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee703523fooEv,_ZTv0_n12_N7ee703523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee703523barEv,_ZTv0_n16_N7ee703523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0352__7ee70352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd0352__7ee70352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd0352__7ee70352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd0352__7ee70352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0352__7ee70352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0352__7ee70352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee70352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee70352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70352[] = {
+ {&(_ZTV7ee70352[5]), 5,24},
+ {&(_ZTV7ee70352[12]), 12,24},
+ {&(_ZTV7ee70352[17]), 17,24},
+ {&(_ZTV7ee70352[22]), 22,24},
+ {&(_tg__ZTV6dd0352__7ee70352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd0352__7ee70352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd0352__7ee70352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd0352__7ee70352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0352__7ee70352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0352__7ee70352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee70352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee70352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70352[];
+extern VTBL_ENTRY _ZTV7ee70352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70352[];
+static VTBL_ENTRY alt_thunk_names1208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee703523fooEv,_ZTv0_n12_N7ee703523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee703523fooEv,_ZThn28_N7ee703523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee703523barEv,_ZTv0_n16_N7ee703523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee703523barEv,_ZThn28_N7ee703523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee703523barEv,_ZThn20_N7ee703523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee703523fooEv,_ZTv0_n20_N7ee703523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee703523fooEv,_ZThn8_N7ee703523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70352 = { "ee70352", // class name
+ bases_ee70352, 4,
+ &(vtc_ee70352[0]), // expected_vtbl_contents
+ &(vtt_ee70352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1352 : virtual cc352 {
+ int d;
+ ~dd1352(); // tgen
+ dd1352(); // tgen
+};
+//SIG(-1 dd1352) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+dd1352 ::~dd1352(){ note_dtor("dd1352", this);} // tgen
+dd1352 ::dd1352(){ note_ctor("dd1352", this);} // tgen
+
+static void Test_dd1352()
+{
+ extern Class_Descriptor cd_dd1352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1352, buf);
+ dd1352 *dp, &lv = *(dp=new (buf) dd1352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd1352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,16), "dd1352");
+ check_base_class_offset(lv, (cc352*), ABISELECT(16,8), "dd1352");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1352.d");
+ test_class_info(&lv, &cd_dd1352);
+ dp->~dd1352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1352(Test_dd1352, "dd1352", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1352C1Ev();
+extern void _ZN6dd1352D1Ev();
+Name_Map name_map_dd1352[] = {
+ NSPAIR(_ZN6dd1352C1Ev),
+ NSPAIR(_ZN6dd1352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd1352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd1352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd1352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd1352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd1352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1352[] = {
+ {&(_ZTV6dd1352[5]), 5,22},
+ {&(_ZTV6dd1352[10]), 10,22},
+ {&(_ZTV6dd1352[15]), 15,22},
+ {&(_ZTV6dd1352[20]), 20,22},
+ {&(_tg__ZTV5cc352__6dd1352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd1352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd1352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd1352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd1352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static VTBL_ENTRY alt_thunk_names1209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1352 = { "dd1352", // class name
+ bases_dd1352, 3,
+ &(vtc_dd1352[0]), // expected_vtbl_contents
+ &(vtt_dd1352[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1352),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1352),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01352 : dd1352 {
+ int e;
+ ~ee01352(); // tgen
+ ee01352(); // tgen
+};
+//SIG(1 ee01352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee01352 ::~ee01352(){ note_dtor("ee01352", this);} // tgen
+ee01352 ::ee01352(){ note_ctor("ee01352", this);} // tgen
+
+static void Test_ee01352()
+{
+ extern Class_Descriptor cd_ee01352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01352, buf);
+ ee01352 *dp, &lv = *(dp=new (buf) ee01352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee01352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee01352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(16,12), "ee01352");
+ check_base_class_offset(lv, (dd1352*), 0, "ee01352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01352.e");
+ test_class_info(&lv, &cd_ee01352);
+ dp->~ee01352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01352(Test_ee01352, "ee01352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01352C1Ev();
+extern void _ZN7ee01352D1Ev();
+Name_Map name_map_ee01352[] = {
+ NSPAIR(_ZN7ee01352C1Ev),
+ NSPAIR(_ZN7ee01352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee01352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01352[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee01352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee01352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee01352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee01352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee01352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee01352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee01352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee01352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee01352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01352[] = {
+ {&(_ZTV7ee01352[5]), 5,22},
+ {&(_tg__ZTV6dd1352__7ee01352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee01352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee01352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee01352[4]), 4,6},
+ {&(_ZTV7ee01352[10]), 10,22},
+ {&(_ZTV7ee01352[15]), 15,22},
+ {&(_ZTV7ee01352[20]), 20,22},
+ {&(_tg__ZTV5cc352__7ee01352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee01352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee01352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee01352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee01352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01352[];
+extern VTBL_ENTRY _ZTV7ee01352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01352[];
+static VTBL_ENTRY alt_thunk_names1210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01352 = { "ee01352", // class name
+ bases_ee01352, 4,
+ &(vtc_ee01352[0]), // expected_vtbl_contents
+ &(vtt_ee01352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01352),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11352 : virtual dd1352 {
+ int e;
+ ~ee11352(); // tgen
+ ee11352(); // tgen
+};
+//SIG(1 ee11352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} Fi}
+
+
+ee11352 ::~ee11352(){ note_dtor("ee11352", this);} // tgen
+ee11352 ::ee11352(){ note_ctor("ee11352", this);} // tgen
+
+static void Test_ee11352()
+{
+ extern Class_Descriptor cd_ee11352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11352, buf);
+ ee11352 *dp, &lv = *(dp=new (buf) ee11352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee11352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee11352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(32,16), "ee11352");
+ check_base_class_offset(lv, (dd1352*), ABISELECT(16,8), "ee11352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11352.e");
+ test_class_info(&lv, &cd_ee11352);
+ dp->~ee11352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11352(Test_ee11352, "ee11352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11352C1Ev();
+extern void _ZN7ee11352D1Ev();
+Name_Map name_map_ee11352[] = {
+ NSPAIR(_ZN7ee11352C1Ev),
+ NSPAIR(_ZN7ee11352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee11352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11352[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11352[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee11352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee11352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee11352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee11352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee11352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee11352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee11352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee11352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee11352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11352[] = {
+ {&(_ZTV7ee11352[6]), 6,28},
+ {&(_ZTV7ee11352[11]), 11,28},
+ {&(_ZTV7ee11352[16]), 16,28},
+ {&(_ZTV7ee11352[21]), 21,28},
+ {&(_ZTV7ee11352[26]), 26,28},
+ {&(_tg__ZTV6dd1352__7ee11352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee11352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee11352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee11352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee11352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee11352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee11352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee11352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee11352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11352[];
+extern VTBL_ENTRY _ZTV7ee11352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11352[];
+static VTBL_ENTRY alt_thunk_names1211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11352 = { "ee11352", // class name
+ bases_ee11352, 4,
+ &(vtc_ee11352[0]), // expected_vtbl_contents
+ &(vtt_ee11352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11352),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21352 : dd1352 {
+ int e;
+ virtual void foo(); // _ZN7ee213523fooEv
+ ~ee21352(); // tgen
+ ee21352(); // tgen
+};
+//SIG(1 ee21352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee21352 ::foo(){vfunc_called(this, "_ZN7ee213523fooEv");}
+ee21352 ::~ee21352(){ note_dtor("ee21352", this);} // tgen
+ee21352 ::ee21352(){ note_ctor("ee21352", this);} // tgen
+
+static void Test_ee21352()
+{
+ extern Class_Descriptor cd_ee21352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21352, buf);
+ ee21352 *dp, &lv = *(dp=new (buf) ee21352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee21352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee21352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(16,12), "ee21352");
+ check_base_class_offset(lv, (dd1352*), 0, "ee21352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21352.e");
+ test_class_info(&lv, &cd_ee21352);
+ dp->~ee21352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21352(Test_ee21352, "ee21352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21352C1Ev();
+extern void _ZN7ee21352D1Ev();
+Name_Map name_map_ee21352[] = {
+ NSPAIR(_ZN7ee21352C1Ev),
+ NSPAIR(_ZN7ee21352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee21352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21352[];
+extern void _ZN7ee213523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee213523fooEv,_ZTv0_n20_N7ee213523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee213523fooEv,_ZThn12_N7ee213523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee213523fooEv,_ZTv0_n12_N7ee213523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee213523fooEv,_ZThn28_N7ee213523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21352[0]),
+ (VTBL_ENTRY)&_ZN7ee213523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee213523fooEv,_ZTv0_n20_N7ee213523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee213523fooEv,_ZTv0_n12_N7ee213523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee21352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee21352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee21352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee21352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee21352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee21352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee21352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee21352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee21352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21352[] = {
+ {&(_ZTV7ee21352[5]), 5,23},
+ {&(_tg__ZTV6dd1352__7ee21352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee21352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee21352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee21352[4]), 4,6},
+ {&(_ZTV7ee21352[11]), 11,23},
+ {&(_ZTV7ee21352[16]), 16,23},
+ {&(_ZTV7ee21352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee21352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee21352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee21352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee21352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee21352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21352[];
+extern VTBL_ENTRY _ZTV7ee21352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21352[];
+static VTBL_ENTRY alt_thunk_names1212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee213523fooEv,_ZTv0_n12_N7ee213523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee213523fooEv,_ZThn28_N7ee213523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee213523fooEv,_ZTv0_n20_N7ee213523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee213523fooEv,_ZThn12_N7ee213523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21352 = { "ee21352", // class name
+ bases_ee21352, 4,
+ &(vtc_ee21352[0]), // expected_vtbl_contents
+ &(vtt_ee21352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31352 : virtual dd1352 {
+ int e;
+ virtual void foo(); // _ZN7ee313523fooEv
+ ~ee31352(); // tgen
+ ee31352(); // tgen
+};
+//SIG(1 ee31352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee31352 ::foo(){vfunc_called(this, "_ZN7ee313523fooEv");}
+ee31352 ::~ee31352(){ note_dtor("ee31352", this);} // tgen
+ee31352 ::ee31352(){ note_ctor("ee31352", this);} // tgen
+
+static void Test_ee31352()
+{
+ extern Class_Descriptor cd_ee31352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31352, buf);
+ ee31352 *dp, &lv = *(dp=new (buf) ee31352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee31352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee31352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(32,16), "ee31352");
+ check_base_class_offset(lv, (dd1352*), ABISELECT(16,8), "ee31352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31352.e");
+ test_class_info(&lv, &cd_ee31352);
+ dp->~ee31352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31352(Test_ee31352, "ee31352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31352C1Ev();
+extern void _ZN7ee31352D1Ev();
+Name_Map name_map_ee31352[] = {
+ NSPAIR(_ZN7ee31352C1Ev),
+ NSPAIR(_ZN7ee31352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee31352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31352[];
+extern void _ZN7ee313523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee313523fooEv,_ZTv0_n20_N7ee313523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee313523fooEv,_ZThn16_N7ee313523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee313523fooEv,_ZTv0_n12_N7ee313523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee313523fooEv,_ZThn32_N7ee313523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31352[0]),
+ (VTBL_ENTRY)&_ZN7ee313523fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31352[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee313523fooEv,_ZTv0_n20_N7ee313523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee313523fooEv,_ZTv0_n12_N7ee313523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee31352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee31352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee31352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee31352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee31352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee31352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee31352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee31352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee31352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31352[] = {
+ {&(_ZTV7ee31352[6]), 6,29},
+ {&(_ZTV7ee31352[12]), 12,29},
+ {&(_ZTV7ee31352[17]), 17,29},
+ {&(_ZTV7ee31352[22]), 22,29},
+ {&(_ZTV7ee31352[27]), 27,29},
+ {&(_tg__ZTV6dd1352__7ee31352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee31352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee31352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee31352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee31352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee31352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee31352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee31352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee31352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31352[];
+extern VTBL_ENTRY _ZTV7ee31352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31352[];
+static VTBL_ENTRY alt_thunk_names1213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee313523fooEv,_ZTv0_n12_N7ee313523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee313523fooEv,_ZThn32_N7ee313523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee313523fooEv,_ZTv0_n20_N7ee313523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee313523fooEv,_ZThn16_N7ee313523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31352 = { "ee31352", // class name
+ bases_ee31352, 4,
+ &(vtc_ee31352[0]), // expected_vtbl_contents
+ &(vtt_ee31352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31352),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41352 : dd1352 {
+ int e;
+ virtual void bar(); // _ZN7ee413523barEv
+ ~ee41352(); // tgen
+ ee41352(); // tgen
+};
+//SIG(1 ee41352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee41352 ::bar(){vfunc_called(this, "_ZN7ee413523barEv");}
+ee41352 ::~ee41352(){ note_dtor("ee41352", this);} // tgen
+ee41352 ::ee41352(){ note_ctor("ee41352", this);} // tgen
+
+static void Test_ee41352()
+{
+ extern Class_Descriptor cd_ee41352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41352, buf);
+ ee41352 *dp, &lv = *(dp=new (buf) ee41352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee41352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee41352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(16,12), "ee41352");
+ check_base_class_offset(lv, (dd1352*), 0, "ee41352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41352.e");
+ test_class_info(&lv, &cd_ee41352);
+ dp->~ee41352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41352(Test_ee41352, "ee41352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41352C1Ev();
+extern void _ZN7ee41352D1Ev();
+Name_Map name_map_ee41352[] = {
+ NSPAIR(_ZN7ee41352C1Ev),
+ NSPAIR(_ZN7ee41352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee41352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41352[];
+extern void _ZN7ee413523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee413523barEv,_ZTv0_n16_N7ee413523barEv)();
+extern void ABISELECT(_ZThn32_N7ee413523barEv,_ZThn20_N7ee413523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee413523barEv,_ZTv0_n16_N7ee413523barEv)();
+extern void ABISELECT(_ZThn48_N7ee413523barEv,_ZThn28_N7ee413523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41352[0]),
+ (VTBL_ENTRY)&_ZN7ee413523barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413523barEv,_ZTv0_n16_N7ee413523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee413523barEv,_ZTv0_n16_N7ee413523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee41352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee41352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee41352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee41352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee41352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee41352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee41352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee41352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee41352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41352[] = {
+ {&(_ZTV7ee41352[5]), 5,23},
+ {&(_tg__ZTV6dd1352__7ee41352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee41352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee41352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee41352[4]), 4,6},
+ {&(_ZTV7ee41352[11]), 11,23},
+ {&(_ZTV7ee41352[16]), 16,23},
+ {&(_ZTV7ee41352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee41352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee41352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee41352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee41352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee41352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41352[];
+extern VTBL_ENTRY _ZTV7ee41352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41352[];
+static VTBL_ENTRY alt_thunk_names1214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee413523barEv,_ZTv0_n16_N7ee413523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee413523barEv,_ZThn28_N7ee413523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee413523barEv,_ZThn20_N7ee413523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41352 = { "ee41352", // class name
+ bases_ee41352, 4,
+ &(vtc_ee41352[0]), // expected_vtbl_contents
+ &(vtt_ee41352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51352 : virtual dd1352 {
+ int e;
+ virtual void bar(); // _ZN7ee513523barEv
+ ~ee51352(); // tgen
+ ee51352(); // tgen
+};
+//SIG(1 ee51352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee51352 ::bar(){vfunc_called(this, "_ZN7ee513523barEv");}
+ee51352 ::~ee51352(){ note_dtor("ee51352", this);} // tgen
+ee51352 ::ee51352(){ note_ctor("ee51352", this);} // tgen
+
+static void Test_ee51352()
+{
+ extern Class_Descriptor cd_ee51352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51352, buf);
+ ee51352 *dp, &lv = *(dp=new (buf) ee51352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee51352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee51352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(32,16), "ee51352");
+ check_base_class_offset(lv, (dd1352*), ABISELECT(16,8), "ee51352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51352.e");
+ test_class_info(&lv, &cd_ee51352);
+ dp->~ee51352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51352(Test_ee51352, "ee51352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51352C1Ev();
+extern void _ZN7ee51352D1Ev();
+Name_Map name_map_ee51352[] = {
+ NSPAIR(_ZN7ee51352C1Ev),
+ NSPAIR(_ZN7ee51352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee51352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51352[];
+extern void _ZN7ee513523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee513523barEv,_ZTv0_n16_N7ee513523barEv)();
+extern void ABISELECT(_ZThn48_N7ee513523barEv,_ZThn24_N7ee513523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee513523barEv,_ZTv0_n16_N7ee513523barEv)();
+extern void ABISELECT(_ZThn64_N7ee513523barEv,_ZThn32_N7ee513523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51352[0]),
+ (VTBL_ENTRY)&_ZN7ee513523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51352[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513523barEv,_ZTv0_n16_N7ee513523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee513523barEv,_ZTv0_n16_N7ee513523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee51352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee51352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee51352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee51352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee51352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee51352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee51352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee51352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee51352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51352[] = {
+ {&(_ZTV7ee51352[6]), 6,29},
+ {&(_ZTV7ee51352[12]), 12,29},
+ {&(_ZTV7ee51352[17]), 17,29},
+ {&(_ZTV7ee51352[22]), 22,29},
+ {&(_ZTV7ee51352[27]), 27,29},
+ {&(_tg__ZTV6dd1352__7ee51352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee51352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee51352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee51352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee51352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee51352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee51352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee51352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee51352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51352[];
+extern VTBL_ENTRY _ZTV7ee51352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51352[];
+static VTBL_ENTRY alt_thunk_names1215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee513523barEv,_ZTv0_n16_N7ee513523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee513523barEv,_ZThn32_N7ee513523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee513523barEv,_ZThn24_N7ee513523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51352 = { "ee51352", // class name
+ bases_ee51352, 4,
+ &(vtc_ee51352[0]), // expected_vtbl_contents
+ &(vtt_ee51352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51352),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61352 : dd1352 {
+ int e;
+ virtual void foo(); // _ZN7ee613523fooEv
+ virtual void bar(); // _ZN7ee613523barEv
+ ~ee61352(); // tgen
+ ee61352(); // tgen
+};
+//SIG(1 ee61352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee61352 ::foo(){vfunc_called(this, "_ZN7ee613523fooEv");}
+void ee61352 ::bar(){vfunc_called(this, "_ZN7ee613523barEv");}
+ee61352 ::~ee61352(){ note_dtor("ee61352", this);} // tgen
+ee61352 ::ee61352(){ note_ctor("ee61352", this);} // tgen
+
+static void Test_ee61352()
+{
+ extern Class_Descriptor cd_ee61352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61352, buf);
+ ee61352 *dp, &lv = *(dp=new (buf) ee61352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee61352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee61352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(16,12), "ee61352");
+ check_base_class_offset(lv, (dd1352*), 0, "ee61352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61352.e");
+ test_class_info(&lv, &cd_ee61352);
+ dp->~ee61352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61352(Test_ee61352, "ee61352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61352C1Ev();
+extern void _ZN7ee61352D1Ev();
+Name_Map name_map_ee61352[] = {
+ NSPAIR(_ZN7ee61352C1Ev),
+ NSPAIR(_ZN7ee61352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee61352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61352[];
+extern void _ZN7ee613523fooEv();
+extern void _ZN7ee613523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee613523fooEv,_ZTv0_n20_N7ee613523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee613523fooEv,_ZThn12_N7ee613523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613523barEv,_ZTv0_n16_N7ee613523barEv)();
+extern void ABISELECT(_ZThn32_N7ee613523barEv,_ZThn20_N7ee613523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee613523fooEv,_ZTv0_n12_N7ee613523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee613523fooEv,_ZThn28_N7ee613523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee613523barEv,_ZTv0_n16_N7ee613523barEv)();
+extern void ABISELECT(_ZThn48_N7ee613523barEv,_ZThn28_N7ee613523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61352[0]),
+ (VTBL_ENTRY)&_ZN7ee613523fooEv,
+ (VTBL_ENTRY)&_ZN7ee613523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee613523fooEv,_ZTv0_n20_N7ee613523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613523barEv,_ZTv0_n16_N7ee613523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee613523fooEv,_ZTv0_n12_N7ee613523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee613523barEv,_ZTv0_n16_N7ee613523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee61352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee61352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee61352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee61352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee61352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee61352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee61352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee61352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee61352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61352[] = {
+ {&(_ZTV7ee61352[5]), 5,24},
+ {&(_tg__ZTV6dd1352__7ee61352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee61352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee61352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee61352[4]), 4,6},
+ {&(_ZTV7ee61352[12]), 12,24},
+ {&(_ZTV7ee61352[17]), 17,24},
+ {&(_ZTV7ee61352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee61352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee61352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee61352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee61352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee61352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61352[];
+extern VTBL_ENTRY _ZTV7ee61352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61352[];
+static VTBL_ENTRY alt_thunk_names1216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee613523fooEv,_ZTv0_n12_N7ee613523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee613523fooEv,_ZThn28_N7ee613523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee613523barEv,_ZTv0_n16_N7ee613523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee613523barEv,_ZThn28_N7ee613523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee613523barEv,_ZThn20_N7ee613523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee613523fooEv,_ZTv0_n20_N7ee613523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee613523fooEv,_ZThn12_N7ee613523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61352 = { "ee61352", // class name
+ bases_ee61352, 4,
+ &(vtc_ee61352[0]), // expected_vtbl_contents
+ &(vtt_ee61352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71352 : virtual dd1352 {
+ int e;
+ virtual void foo(); // _ZN7ee713523fooEv
+ virtual void bar(); // _ZN7ee713523barEv
+ ~ee71352(); // tgen
+ ee71352(); // tgen
+};
+//SIG(1 ee71352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} Fi} v1 v2 Fi}
+
+
+void ee71352 ::foo(){vfunc_called(this, "_ZN7ee713523fooEv");}
+void ee71352 ::bar(){vfunc_called(this, "_ZN7ee713523barEv");}
+ee71352 ::~ee71352(){ note_dtor("ee71352", this);} // tgen
+ee71352 ::ee71352(){ note_ctor("ee71352", this);} // tgen
+
+static void Test_ee71352()
+{
+ extern Class_Descriptor cd_ee71352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71352, buf);
+ ee71352 *dp, &lv = *(dp=new (buf) ee71352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee71352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee71352");
+ check_base_class_offset(lv, (cc352*)(dd1352*), ABISELECT(32,16), "ee71352");
+ check_base_class_offset(lv, (dd1352*), ABISELECT(16,8), "ee71352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71352.e");
+ test_class_info(&lv, &cd_ee71352);
+ dp->~ee71352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71352(Test_ee71352, "ee71352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71352C1Ev();
+extern void _ZN7ee71352D1Ev();
+Name_Map name_map_ee71352[] = {
+ NSPAIR(_ZN7ee71352C1Ev),
+ NSPAIR(_ZN7ee71352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd1352;
+extern VTBL_ENTRY _ZTI6dd1352[];
+extern VTBL_ENTRY _ZTV6dd1352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1352[];
+static Base_Class bases_ee71352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1352, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71352[];
+extern void _ZN7ee713523fooEv();
+extern void _ZN7ee713523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee713523fooEv,_ZTv0_n20_N7ee713523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee713523fooEv,_ZThn16_N7ee713523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713523barEv,_ZTv0_n16_N7ee713523barEv)();
+extern void ABISELECT(_ZThn48_N7ee713523barEv,_ZThn24_N7ee713523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee713523fooEv,_ZTv0_n12_N7ee713523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee713523fooEv,_ZThn32_N7ee713523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee713523barEv,_ZTv0_n16_N7ee713523barEv)();
+extern void ABISELECT(_ZThn64_N7ee713523barEv,_ZThn32_N7ee713523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71352[0]),
+ (VTBL_ENTRY)&_ZN7ee713523fooEv,
+ (VTBL_ENTRY)&_ZN7ee713523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71352[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee713523fooEv,_ZTv0_n20_N7ee713523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713523barEv,_ZTv0_n16_N7ee713523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee713523fooEv,_ZTv0_n12_N7ee713523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee713523barEv,_ZTv0_n16_N7ee713523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71352[];
+static VTBL_ENTRY _tg__ZTV6dd1352__7ee71352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd1352__7ee71352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1352__7ee71352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1352__7ee71352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee71352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee71352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee71352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee71352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee71352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71352[] = {
+ {&(_ZTV7ee71352[6]), 6,30},
+ {&(_ZTV7ee71352[13]), 13,30},
+ {&(_ZTV7ee71352[18]), 18,30},
+ {&(_ZTV7ee71352[23]), 23,30},
+ {&(_ZTV7ee71352[28]), 28,30},
+ {&(_tg__ZTV6dd1352__7ee71352[5]), 5,5},
+ {&(_tg__ZTV5cc352__6dd1352__7ee71352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1352__7ee71352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1352__7ee71352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee71352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee71352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee71352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee71352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee71352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71352[];
+extern VTBL_ENTRY _ZTV7ee71352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71352[];
+static VTBL_ENTRY alt_thunk_names1217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee713523fooEv,_ZTv0_n12_N7ee713523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee713523fooEv,_ZThn32_N7ee713523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee713523barEv,_ZTv0_n16_N7ee713523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee713523barEv,_ZThn32_N7ee713523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee713523barEv,_ZThn24_N7ee713523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee713523fooEv,_ZTv0_n20_N7ee713523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee713523fooEv,_ZThn16_N7ee713523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71352 = { "ee71352", // class name
+ bases_ee71352, 4,
+ &(vtc_ee71352[0]), // expected_vtbl_contents
+ &(vtt_ee71352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71352),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2352 : cc352 {
+ int d;
+ virtual void foo(); // _ZN6dd23523fooEv
+ ~dd2352(); // tgen
+ dd2352(); // tgen
+};
+//SIG(-1 dd2352) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd2352 ::foo(){vfunc_called(this, "_ZN6dd23523fooEv");}
+dd2352 ::~dd2352(){ note_dtor("dd2352", this);} // tgen
+dd2352 ::dd2352(){ note_ctor("dd2352", this);} // tgen
+
+static void Test_dd2352()
+{
+ extern Class_Descriptor cd_dd2352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2352, buf);
+ dd2352 *dp, &lv = *(dp=new (buf) dd2352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd2352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(16,12), "dd2352");
+ check_base_class_offset(lv, (cc352*), 0, "dd2352");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2352.d");
+ test_class_info(&lv, &cd_dd2352);
+ dp->~dd2352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2352(Test_dd2352, "dd2352", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2352C1Ev();
+extern void _ZN6dd2352D1Ev();
+Name_Map name_map_dd2352[] = {
+ NSPAIR(_ZN6dd2352C1Ev),
+ NSPAIR(_ZN6dd2352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd2352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern void _ZN6dd23523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd2352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd2352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd2352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd2352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2352[] = {
+ {&(_ZTV6dd2352[4]), 4,16},
+ {&(_tg__ZTV5cc352__6dd2352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd2352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd2352[4]), 4,6},
+ {&(_ZTV6dd2352[9]), 9,16},
+ {&(_ZTV6dd2352[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd2352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd2352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static VTBL_ENTRY alt_thunk_names1218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2352 = { "dd2352", // class name
+ bases_dd2352, 3,
+ &(vtc_dd2352[0]), // expected_vtbl_contents
+ &(vtt_dd2352[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2352),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02352 : dd2352 {
+ int e;
+ ~ee02352(); // tgen
+ ee02352(); // tgen
+};
+//SIG(1 ee02352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee02352 ::~ee02352(){ note_dtor("ee02352", this);} // tgen
+ee02352 ::ee02352(){ note_ctor("ee02352", this);} // tgen
+
+static void Test_ee02352()
+{
+ extern Class_Descriptor cd_ee02352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02352, buf);
+ ee02352 *dp, &lv = *(dp=new (buf) ee02352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee02352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(24,16), "ee02352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), 0, "ee02352");
+ check_base_class_offset(lv, (dd2352*), 0, "ee02352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02352.e");
+ test_class_info(&lv, &cd_ee02352);
+ dp->~ee02352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02352(Test_ee02352, "ee02352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02352C1Ev();
+extern void _ZN7ee02352D1Ev();
+Name_Map name_map_ee02352[] = {
+ NSPAIR(_ZN7ee02352C1Ev),
+ NSPAIR(_ZN7ee02352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee02352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02352[];
+extern void _ZN6dd23523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee02352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee02352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee02352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee02352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee02352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee02352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee02352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee02352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02352[] = {
+ {&(_ZTV7ee02352[4]), 4,16},
+ {&(_tg__ZTV6dd2352__7ee02352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee02352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee02352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee02352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee02352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee02352[4]), 4,6},
+ {&(_ZTV7ee02352[9]), 9,16},
+ {&(_ZTV7ee02352[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee02352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee02352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee02352[];
+extern VTBL_ENTRY _ZTV7ee02352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02352[];
+static VTBL_ENTRY alt_thunk_names1219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02352 = { "ee02352", // class name
+ bases_ee02352, 4,
+ &(vtc_ee02352[0]), // expected_vtbl_contents
+ &(vtt_ee02352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12352 : virtual dd2352 {
+ int e;
+ ~ee12352(); // tgen
+ ee12352(); // tgen
+};
+//SIG(1 ee12352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee12352 ::~ee12352(){ note_dtor("ee12352", this);} // tgen
+ee12352 ::ee12352(){ note_ctor("ee12352", this);} // tgen
+
+static void Test_ee12352()
+{
+ extern Class_Descriptor cd_ee12352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12352, buf);
+ ee12352 *dp, &lv = *(dp=new (buf) ee12352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee12352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(32,20), "ee12352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), ABISELECT(16,8), "ee12352");
+ check_base_class_offset(lv, (dd2352*), ABISELECT(16,8), "ee12352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12352.e");
+ test_class_info(&lv, &cd_ee12352);
+ dp->~ee12352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12352(Test_ee12352, "ee12352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12352C1Ev();
+extern void _ZN7ee12352D1Ev();
+Name_Map name_map_ee12352[] = {
+ NSPAIR(_ZN7ee12352C1Ev),
+ NSPAIR(_ZN7ee12352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee12352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12352[];
+extern void _ZN6dd23523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12352[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee12352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee12352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee12352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee12352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee12352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee12352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee12352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee12352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12352[] = {
+ {&(_ZTV7ee12352[5]), 5,22},
+ {&(_ZTV7ee12352[10]), 10,22},
+ {&(_ZTV7ee12352[15]), 15,22},
+ {&(_ZTV7ee12352[20]), 20,22},
+ {&(_tg__ZTV6dd2352__7ee12352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee12352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee12352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee12352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee12352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee12352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee12352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee12352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12352[];
+extern VTBL_ENTRY _ZTV7ee12352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12352[];
+static VTBL_ENTRY alt_thunk_names1220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12352 = { "ee12352", // class name
+ bases_ee12352, 4,
+ &(vtc_ee12352[0]), // expected_vtbl_contents
+ &(vtt_ee12352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12352),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22352 : dd2352 {
+ int e;
+ virtual void foo(); // _ZN7ee223523fooEv
+ ~ee22352(); // tgen
+ ee22352(); // tgen
+};
+//SIG(1 ee22352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee22352 ::foo(){vfunc_called(this, "_ZN7ee223523fooEv");}
+ee22352 ::~ee22352(){ note_dtor("ee22352", this);} // tgen
+ee22352 ::ee22352(){ note_ctor("ee22352", this);} // tgen
+
+static void Test_ee22352()
+{
+ extern Class_Descriptor cd_ee22352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22352, buf);
+ ee22352 *dp, &lv = *(dp=new (buf) ee22352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee22352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(24,16), "ee22352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), 0, "ee22352");
+ check_base_class_offset(lv, (dd2352*), 0, "ee22352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22352.e");
+ test_class_info(&lv, &cd_ee22352);
+ dp->~ee22352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22352(Test_ee22352, "ee22352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22352C1Ev();
+extern void _ZN7ee22352D1Ev();
+Name_Map name_map_ee22352[] = {
+ NSPAIR(_ZN7ee22352C1Ev),
+ NSPAIR(_ZN7ee22352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee22352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22352[];
+extern void _ZN7ee223523fooEv();
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee223523fooEv,_ZTv0_n12_N7ee223523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee223523fooEv,_ZThn24_N7ee223523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22352[0]),
+ (VTBL_ENTRY)&_ZN7ee223523fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee223523fooEv,_ZTv0_n12_N7ee223523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee22352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee22352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee22352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee22352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee22352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee22352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee22352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee22352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22352[] = {
+ {&(_ZTV7ee22352[4]), 4,16},
+ {&(_tg__ZTV6dd2352__7ee22352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee22352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee22352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee22352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee22352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee22352[4]), 4,6},
+ {&(_ZTV7ee22352[9]), 9,16},
+ {&(_ZTV7ee22352[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee22352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee22352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee22352[];
+extern VTBL_ENTRY _ZTV7ee22352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22352[];
+static VTBL_ENTRY alt_thunk_names1221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee223523fooEv,_ZTv0_n12_N7ee223523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee223523fooEv,_ZThn24_N7ee223523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22352 = { "ee22352", // class name
+ bases_ee22352, 4,
+ &(vtc_ee22352[0]), // expected_vtbl_contents
+ &(vtt_ee22352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22352),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32352 : virtual dd2352 {
+ int e;
+ virtual void foo(); // _ZN7ee323523fooEv
+ ~ee32352(); // tgen
+ ee32352(); // tgen
+};
+//SIG(1 ee32352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee32352 ::foo(){vfunc_called(this, "_ZN7ee323523fooEv");}
+ee32352 ::~ee32352(){ note_dtor("ee32352", this);} // tgen
+ee32352 ::ee32352(){ note_ctor("ee32352", this);} // tgen
+
+static void Test_ee32352()
+{
+ extern Class_Descriptor cd_ee32352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32352, buf);
+ ee32352 *dp, &lv = *(dp=new (buf) ee32352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee32352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(32,20), "ee32352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), ABISELECT(16,8), "ee32352");
+ check_base_class_offset(lv, (dd2352*), ABISELECT(16,8), "ee32352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32352.e");
+ test_class_info(&lv, &cd_ee32352);
+ dp->~ee32352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32352(Test_ee32352, "ee32352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32352C1Ev();
+extern void _ZN7ee32352D1Ev();
+Name_Map name_map_ee32352[] = {
+ NSPAIR(_ZN7ee32352C1Ev),
+ NSPAIR(_ZN7ee32352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee32352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32352[];
+extern void _ZN7ee323523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee323523fooEv,_ZTv0_n20_N7ee323523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee323523fooEv,_ZThn8_N7ee323523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee323523fooEv,_ZTv0_n12_N7ee323523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee323523fooEv,_ZThn28_N7ee323523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32352[0]),
+ (VTBL_ENTRY)&_ZN7ee323523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee323523fooEv,_ZTv0_n20_N7ee323523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee323523fooEv,_ZTv0_n12_N7ee323523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee32352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee32352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee32352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee32352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee32352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee32352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee32352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee32352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32352[] = {
+ {&(_ZTV7ee32352[5]), 5,23},
+ {&(_ZTV7ee32352[11]), 11,23},
+ {&(_ZTV7ee32352[16]), 16,23},
+ {&(_ZTV7ee32352[21]), 21,23},
+ {&(_tg__ZTV6dd2352__7ee32352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee32352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee32352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee32352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee32352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee32352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee32352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee32352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32352[];
+extern VTBL_ENTRY _ZTV7ee32352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32352[];
+static VTBL_ENTRY alt_thunk_names1222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee323523fooEv,_ZTv0_n12_N7ee323523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee323523fooEv,_ZThn28_N7ee323523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee323523fooEv,_ZTv0_n20_N7ee323523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee323523fooEv,_ZThn8_N7ee323523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32352 = { "ee32352", // class name
+ bases_ee32352, 4,
+ &(vtc_ee32352[0]), // expected_vtbl_contents
+ &(vtt_ee32352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42352 : dd2352 {
+ int e;
+ virtual void bar(); // _ZN7ee423523barEv
+ ~ee42352(); // tgen
+ ee42352(); // tgen
+};
+//SIG(1 ee42352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee42352 ::bar(){vfunc_called(this, "_ZN7ee423523barEv");}
+ee42352 ::~ee42352(){ note_dtor("ee42352", this);} // tgen
+ee42352 ::ee42352(){ note_ctor("ee42352", this);} // tgen
+
+static void Test_ee42352()
+{
+ extern Class_Descriptor cd_ee42352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42352, buf);
+ ee42352 *dp, &lv = *(dp=new (buf) ee42352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee42352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(24,16), "ee42352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), 0, "ee42352");
+ check_base_class_offset(lv, (dd2352*), 0, "ee42352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42352.e");
+ test_class_info(&lv, &cd_ee42352);
+ dp->~ee42352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42352(Test_ee42352, "ee42352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42352C1Ev();
+extern void _ZN7ee42352D1Ev();
+Name_Map name_map_ee42352[] = {
+ NSPAIR(_ZN7ee42352C1Ev),
+ NSPAIR(_ZN7ee42352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee42352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42352[];
+extern void _ZN6dd23523fooEv();
+extern void _ZN7ee423523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee423523barEv,_ZTv0_n16_N7ee423523barEv)();
+extern void ABISELECT(_ZThn24_N7ee423523barEv,_ZThn16_N7ee423523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee423523barEv,_ZTv0_n16_N7ee423523barEv)();
+extern void ABISELECT(_ZThn40_N7ee423523barEv,_ZThn24_N7ee423523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+ (VTBL_ENTRY)&_ZN7ee423523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423523barEv,_ZTv0_n16_N7ee423523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee423523barEv,_ZTv0_n16_N7ee423523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee42352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee42352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee42352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee42352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee42352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee42352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee42352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee42352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42352[] = {
+ {&(_ZTV7ee42352[4]), 4,17},
+ {&(_tg__ZTV6dd2352__7ee42352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee42352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee42352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee42352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee42352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee42352[4]), 4,6},
+ {&(_ZTV7ee42352[10]), 10,17},
+ {&(_ZTV7ee42352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee42352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee42352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee42352[];
+extern VTBL_ENTRY _ZTV7ee42352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42352[];
+static VTBL_ENTRY alt_thunk_names1223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee423523barEv,_ZTv0_n16_N7ee423523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee423523barEv,_ZThn24_N7ee423523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee423523barEv,_ZThn16_N7ee423523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42352 = { "ee42352", // class name
+ bases_ee42352, 4,
+ &(vtc_ee42352[0]), // expected_vtbl_contents
+ &(vtt_ee42352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52352 : virtual dd2352 {
+ int e;
+ virtual void bar(); // _ZN7ee523523barEv
+ ~ee52352(); // tgen
+ ee52352(); // tgen
+};
+//SIG(1 ee52352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee52352 ::bar(){vfunc_called(this, "_ZN7ee523523barEv");}
+ee52352 ::~ee52352(){ note_dtor("ee52352", this);} // tgen
+ee52352 ::ee52352(){ note_ctor("ee52352", this);} // tgen
+
+static void Test_ee52352()
+{
+ extern Class_Descriptor cd_ee52352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52352, buf);
+ ee52352 *dp, &lv = *(dp=new (buf) ee52352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee52352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(32,20), "ee52352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), ABISELECT(16,8), "ee52352");
+ check_base_class_offset(lv, (dd2352*), ABISELECT(16,8), "ee52352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52352.e");
+ test_class_info(&lv, &cd_ee52352);
+ dp->~ee52352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52352(Test_ee52352, "ee52352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52352C1Ev();
+extern void _ZN7ee52352D1Ev();
+Name_Map name_map_ee52352[] = {
+ NSPAIR(_ZN7ee52352C1Ev),
+ NSPAIR(_ZN7ee52352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee52352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52352[];
+extern void _ZN7ee523523barEv();
+extern void _ZN6dd23523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee523523barEv,_ZTv0_n16_N7ee523523barEv)();
+extern void ABISELECT(_ZThn32_N7ee523523barEv,_ZThn20_N7ee523523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee523523barEv,_ZTv0_n16_N7ee523523barEv)();
+extern void ABISELECT(_ZThn48_N7ee523523barEv,_ZThn28_N7ee523523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52352[0]),
+ (VTBL_ENTRY)&_ZN7ee523523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523523barEv,_ZTv0_n16_N7ee523523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee523523barEv,_ZTv0_n16_N7ee523523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee52352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee52352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee52352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee52352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee52352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee52352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee52352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee52352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52352[] = {
+ {&(_ZTV7ee52352[5]), 5,23},
+ {&(_ZTV7ee52352[11]), 11,23},
+ {&(_ZTV7ee52352[16]), 16,23},
+ {&(_ZTV7ee52352[21]), 21,23},
+ {&(_tg__ZTV6dd2352__7ee52352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee52352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee52352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee52352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee52352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee52352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee52352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee52352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52352[];
+extern VTBL_ENTRY _ZTV7ee52352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52352[];
+static VTBL_ENTRY alt_thunk_names1224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee523523barEv,_ZTv0_n16_N7ee523523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee523523barEv,_ZThn28_N7ee523523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee523523barEv,_ZThn20_N7ee523523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52352 = { "ee52352", // class name
+ bases_ee52352, 4,
+ &(vtc_ee52352[0]), // expected_vtbl_contents
+ &(vtt_ee52352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62352 : dd2352 {
+ int e;
+ virtual void foo(); // _ZN7ee623523fooEv
+ virtual void bar(); // _ZN7ee623523barEv
+ ~ee62352(); // tgen
+ ee62352(); // tgen
+};
+//SIG(1 ee62352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62352 ::foo(){vfunc_called(this, "_ZN7ee623523fooEv");}
+void ee62352 ::bar(){vfunc_called(this, "_ZN7ee623523barEv");}
+ee62352 ::~ee62352(){ note_dtor("ee62352", this);} // tgen
+ee62352 ::ee62352(){ note_ctor("ee62352", this);} // tgen
+
+static void Test_ee62352()
+{
+ extern Class_Descriptor cd_ee62352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62352, buf);
+ ee62352 *dp, &lv = *(dp=new (buf) ee62352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee62352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(24,16), "ee62352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), 0, "ee62352");
+ check_base_class_offset(lv, (dd2352*), 0, "ee62352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62352.e");
+ test_class_info(&lv, &cd_ee62352);
+ dp->~ee62352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62352(Test_ee62352, "ee62352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62352C1Ev();
+extern void _ZN7ee62352D1Ev();
+Name_Map name_map_ee62352[] = {
+ NSPAIR(_ZN7ee62352C1Ev),
+ NSPAIR(_ZN7ee62352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee62352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62352[];
+extern void _ZN7ee623523fooEv();
+extern void _ZN7ee623523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee623523barEv,_ZTv0_n16_N7ee623523barEv)();
+extern void ABISELECT(_ZThn24_N7ee623523barEv,_ZThn16_N7ee623523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee623523fooEv,_ZTv0_n12_N7ee623523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee623523fooEv,_ZThn24_N7ee623523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee623523barEv,_ZTv0_n16_N7ee623523barEv)();
+extern void ABISELECT(_ZThn40_N7ee623523barEv,_ZThn24_N7ee623523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62352[0]),
+ (VTBL_ENTRY)&_ZN7ee623523fooEv,
+ (VTBL_ENTRY)&_ZN7ee623523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623523barEv,_ZTv0_n16_N7ee623523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee623523fooEv,_ZTv0_n12_N7ee623523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee623523barEv,_ZTv0_n16_N7ee623523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee62352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee62352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee62352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee62352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee62352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee62352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee62352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee62352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62352[] = {
+ {&(_ZTV7ee62352[4]), 4,17},
+ {&(_tg__ZTV6dd2352__7ee62352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee62352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee62352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee62352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee62352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee62352[4]), 4,6},
+ {&(_ZTV7ee62352[10]), 10,17},
+ {&(_ZTV7ee62352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee62352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee62352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee62352[];
+extern VTBL_ENTRY _ZTV7ee62352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62352[];
+static VTBL_ENTRY alt_thunk_names1225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd23523fooEv,_ZThn24_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee623523fooEv,_ZTv0_n12_N7ee623523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee623523fooEv,_ZThn24_N7ee623523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee623523barEv,_ZTv0_n16_N7ee623523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee623523barEv,_ZThn24_N7ee623523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee623523barEv,_ZThn16_N7ee623523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62352 = { "ee62352", // class name
+ bases_ee62352, 4,
+ &(vtc_ee62352[0]), // expected_vtbl_contents
+ &(vtt_ee62352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72352 : virtual dd2352 {
+ int e;
+ virtual void foo(); // _ZN7ee723523fooEv
+ virtual void bar(); // _ZN7ee723523barEv
+ ~ee72352(); // tgen
+ ee72352(); // tgen
+};
+//SIG(1 ee72352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72352 ::foo(){vfunc_called(this, "_ZN7ee723523fooEv");}
+void ee72352 ::bar(){vfunc_called(this, "_ZN7ee723523barEv");}
+ee72352 ::~ee72352(){ note_dtor("ee72352", this);} // tgen
+ee72352 ::ee72352(){ note_ctor("ee72352", this);} // tgen
+
+static void Test_ee72352()
+{
+ extern Class_Descriptor cd_ee72352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72352, buf);
+ ee72352 *dp, &lv = *(dp=new (buf) ee72352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee72352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd2352*), ABISELECT(32,20), "ee72352");
+ check_base_class_offset(lv, (cc352*)(dd2352*), ABISELECT(16,8), "ee72352");
+ check_base_class_offset(lv, (dd2352*), ABISELECT(16,8), "ee72352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72352.e");
+ test_class_info(&lv, &cd_ee72352);
+ dp->~ee72352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72352(Test_ee72352, "ee72352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72352C1Ev();
+extern void _ZN7ee72352D1Ev();
+Name_Map name_map_ee72352[] = {
+ NSPAIR(_ZN7ee72352C1Ev),
+ NSPAIR(_ZN7ee72352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd2352;
+extern VTBL_ENTRY _ZTI6dd2352[];
+extern VTBL_ENTRY _ZTV6dd2352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2352[];
+static Base_Class bases_ee72352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2352, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72352[];
+extern void _ZN7ee723523fooEv();
+extern void _ZN7ee723523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee723523fooEv,_ZTv0_n20_N7ee723523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee723523fooEv,_ZThn8_N7ee723523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723523barEv,_ZTv0_n16_N7ee723523barEv)();
+extern void ABISELECT(_ZThn32_N7ee723523barEv,_ZThn20_N7ee723523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee723523fooEv,_ZTv0_n12_N7ee723523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee723523fooEv,_ZThn28_N7ee723523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee723523barEv,_ZTv0_n16_N7ee723523barEv)();
+extern void ABISELECT(_ZThn48_N7ee723523barEv,_ZThn28_N7ee723523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72352[0]),
+ (VTBL_ENTRY)&_ZN7ee723523fooEv,
+ (VTBL_ENTRY)&_ZN7ee723523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee723523fooEv,_ZTv0_n20_N7ee723523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723523barEv,_ZTv0_n16_N7ee723523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee723523fooEv,_ZTv0_n12_N7ee723523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee723523barEv,_ZTv0_n16_N7ee723523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72352[];
+extern void _ZN6dd23523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2352__7ee72352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN6dd23523fooEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd2352__7ee72352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd2352__7ee72352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd2352__7ee72352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2352__7ee72352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2352__7ee72352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee72352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee72352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72352[] = {
+ {&(_ZTV7ee72352[5]), 5,24},
+ {&(_ZTV7ee72352[12]), 12,24},
+ {&(_ZTV7ee72352[17]), 17,24},
+ {&(_ZTV7ee72352[22]), 22,24},
+ {&(_tg__ZTV6dd2352__7ee72352[4]), 4,5},
+ {&(_tg__ZTV5cc3526dd2352__7ee72352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd2352__7ee72352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd2352__7ee72352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2352__7ee72352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2352__7ee72352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee72352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee72352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72352[];
+extern VTBL_ENTRY _ZTV7ee72352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72352[];
+static VTBL_ENTRY alt_thunk_names1226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd23523fooEv,_ZTv0_n12_N6dd23523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd23523fooEv,_ZThn20_N6dd23523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee723523fooEv,_ZTv0_n12_N7ee723523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee723523fooEv,_ZThn28_N7ee723523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee723523barEv,_ZTv0_n16_N7ee723523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee723523barEv,_ZThn28_N7ee723523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee723523barEv,_ZThn20_N7ee723523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee723523fooEv,_ZTv0_n20_N7ee723523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee723523fooEv,_ZThn8_N7ee723523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72352 = { "ee72352", // class name
+ bases_ee72352, 4,
+ &(vtc_ee72352[0]), // expected_vtbl_contents
+ &(vtt_ee72352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3352 : virtual cc352 {
+ int d;
+ virtual void foo(); // _ZN6dd33523fooEv
+ ~dd3352(); // tgen
+ dd3352(); // tgen
+};
+//SIG(-1 dd3352) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void dd3352 ::foo(){vfunc_called(this, "_ZN6dd33523fooEv");}
+dd3352 ::~dd3352(){ note_dtor("dd3352", this);} // tgen
+dd3352 ::dd3352(){ note_ctor("dd3352", this);} // tgen
+
+static void Test_dd3352()
+{
+ extern Class_Descriptor cd_dd3352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3352, buf);
+ dd3352 *dp, &lv = *(dp=new (buf) dd3352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd3352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,16), "dd3352");
+ check_base_class_offset(lv, (cc352*), ABISELECT(16,8), "dd3352");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3352.d");
+ test_class_info(&lv, &cd_dd3352);
+ dp->~dd3352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3352(Test_dd3352, "dd3352", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3352C1Ev();
+extern void _ZN6dd3352D1Ev();
+Name_Map name_map_dd3352[] = {
+ NSPAIR(_ZN6dd3352C1Ev),
+ NSPAIR(_ZN6dd3352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd3352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd3352[];
+extern void _ZN6dd33523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd3352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd3352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd3352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3352[] = {
+ {&(_ZTV6dd3352[5]), 5,23},
+ {&(_ZTV6dd3352[11]), 11,23},
+ {&(_ZTV6dd3352[16]), 16,23},
+ {&(_ZTV6dd3352[21]), 21,23},
+ {&(_tg__ZTV5cc352__6dd3352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd3352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd3352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd3352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd3352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static VTBL_ENTRY alt_thunk_names1227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3352 = { "dd3352", // class name
+ bases_dd3352, 3,
+ &(vtc_dd3352[0]), // expected_vtbl_contents
+ &(vtt_dd3352[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3352),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03352 : dd3352 {
+ int e;
+ ~ee03352(); // tgen
+ ee03352(); // tgen
+};
+//SIG(1 ee03352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee03352 ::~ee03352(){ note_dtor("ee03352", this);} // tgen
+ee03352 ::ee03352(){ note_ctor("ee03352", this);} // tgen
+
+static void Test_ee03352()
+{
+ extern Class_Descriptor cd_ee03352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03352, buf);
+ ee03352 *dp, &lv = *(dp=new (buf) ee03352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee03352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee03352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(16,12), "ee03352");
+ check_base_class_offset(lv, (dd3352*), 0, "ee03352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03352.e");
+ test_class_info(&lv, &cd_ee03352);
+ dp->~ee03352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03352(Test_ee03352, "ee03352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03352C1Ev();
+extern void _ZN7ee03352D1Ev();
+Name_Map name_map_ee03352[] = {
+ NSPAIR(_ZN7ee03352C1Ev),
+ NSPAIR(_ZN7ee03352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee03352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03352[];
+extern void _ZN6dd33523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee03352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee03352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee03352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee03352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee03352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee03352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee03352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee03352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee03352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03352[] = {
+ {&(_ZTV7ee03352[5]), 5,23},
+ {&(_tg__ZTV6dd3352__7ee03352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee03352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee03352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee03352[4]), 4,6},
+ {&(_ZTV7ee03352[11]), 11,23},
+ {&(_ZTV7ee03352[16]), 16,23},
+ {&(_ZTV7ee03352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee03352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee03352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee03352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee03352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee03352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03352[];
+extern VTBL_ENTRY _ZTV7ee03352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03352[];
+static VTBL_ENTRY alt_thunk_names1228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03352 = { "ee03352", // class name
+ bases_ee03352, 4,
+ &(vtc_ee03352[0]), // expected_vtbl_contents
+ &(vtt_ee03352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13352 : virtual dd3352 {
+ int e;
+ ~ee13352(); // tgen
+ ee13352(); // tgen
+};
+//SIG(1 ee13352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee13352 ::~ee13352(){ note_dtor("ee13352", this);} // tgen
+ee13352 ::ee13352(){ note_ctor("ee13352", this);} // tgen
+
+static void Test_ee13352()
+{
+ extern Class_Descriptor cd_ee13352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13352, buf);
+ ee13352 *dp, &lv = *(dp=new (buf) ee13352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee13352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee13352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(32,16), "ee13352");
+ check_base_class_offset(lv, (dd3352*), ABISELECT(16,8), "ee13352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13352.e");
+ test_class_info(&lv, &cd_ee13352);
+ dp->~ee13352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13352(Test_ee13352, "ee13352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13352C1Ev();
+extern void _ZN7ee13352D1Ev();
+Name_Map name_map_ee13352[] = {
+ NSPAIR(_ZN7ee13352C1Ev),
+ NSPAIR(_ZN7ee13352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee13352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13352[];
+extern void _ZN6dd33523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13352[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee13352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee13352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee13352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee13352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee13352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee13352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee13352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee13352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee13352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13352[] = {
+ {&(_ZTV7ee13352[6]), 6,30},
+ {&(_ZTV7ee13352[12]), 12,30},
+ {&(_ZTV7ee13352[18]), 18,30},
+ {&(_ZTV7ee13352[23]), 23,30},
+ {&(_ZTV7ee13352[28]), 28,30},
+ {&(_tg__ZTV6dd3352__7ee13352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee13352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee13352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee13352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee13352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee13352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee13352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee13352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee13352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13352[];
+extern VTBL_ENTRY _ZTV7ee13352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13352[];
+static VTBL_ENTRY alt_thunk_names1229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13352 = { "ee13352", // class name
+ bases_ee13352, 4,
+ &(vtc_ee13352[0]), // expected_vtbl_contents
+ &(vtt_ee13352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13352),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23352 : dd3352 {
+ int e;
+ virtual void foo(); // _ZN7ee233523fooEv
+ ~ee23352(); // tgen
+ ee23352(); // tgen
+};
+//SIG(1 ee23352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee23352 ::foo(){vfunc_called(this, "_ZN7ee233523fooEv");}
+ee23352 ::~ee23352(){ note_dtor("ee23352", this);} // tgen
+ee23352 ::ee23352(){ note_ctor("ee23352", this);} // tgen
+
+static void Test_ee23352()
+{
+ extern Class_Descriptor cd_ee23352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23352, buf);
+ ee23352 *dp, &lv = *(dp=new (buf) ee23352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee23352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee23352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(16,12), "ee23352");
+ check_base_class_offset(lv, (dd3352*), 0, "ee23352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23352.e");
+ test_class_info(&lv, &cd_ee23352);
+ dp->~ee23352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23352(Test_ee23352, "ee23352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23352C1Ev();
+extern void _ZN7ee23352D1Ev();
+Name_Map name_map_ee23352[] = {
+ NSPAIR(_ZN7ee23352C1Ev),
+ NSPAIR(_ZN7ee23352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee23352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23352[];
+extern void _ZN7ee233523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee233523fooEv,_ZTv0_n20_N7ee233523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee233523fooEv,_ZThn12_N7ee233523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee233523fooEv,_ZTv0_n12_N7ee233523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee233523fooEv,_ZThn28_N7ee233523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23352[0]),
+ (VTBL_ENTRY)&_ZN7ee233523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee233523fooEv,_ZTv0_n20_N7ee233523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee233523fooEv,_ZTv0_n12_N7ee233523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee23352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee23352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee23352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee23352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee23352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee23352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee23352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee23352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee23352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23352[] = {
+ {&(_ZTV7ee23352[5]), 5,23},
+ {&(_tg__ZTV6dd3352__7ee23352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee23352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee23352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee23352[4]), 4,6},
+ {&(_ZTV7ee23352[11]), 11,23},
+ {&(_ZTV7ee23352[16]), 16,23},
+ {&(_ZTV7ee23352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee23352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee23352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee23352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee23352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee23352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23352[];
+extern VTBL_ENTRY _ZTV7ee23352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23352[];
+static VTBL_ENTRY alt_thunk_names1230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee233523fooEv,_ZTv0_n12_N7ee233523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee233523fooEv,_ZThn28_N7ee233523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee233523fooEv,_ZTv0_n20_N7ee233523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee233523fooEv,_ZThn12_N7ee233523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23352 = { "ee23352", // class name
+ bases_ee23352, 4,
+ &(vtc_ee23352[0]), // expected_vtbl_contents
+ &(vtt_ee23352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33352 : virtual dd3352 {
+ int e;
+ virtual void foo(); // _ZN7ee333523fooEv
+ ~ee33352(); // tgen
+ ee33352(); // tgen
+};
+//SIG(1 ee33352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee33352 ::foo(){vfunc_called(this, "_ZN7ee333523fooEv");}
+ee33352 ::~ee33352(){ note_dtor("ee33352", this);} // tgen
+ee33352 ::ee33352(){ note_ctor("ee33352", this);} // tgen
+
+static void Test_ee33352()
+{
+ extern Class_Descriptor cd_ee33352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33352, buf);
+ ee33352 *dp, &lv = *(dp=new (buf) ee33352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee33352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee33352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(32,16), "ee33352");
+ check_base_class_offset(lv, (dd3352*), ABISELECT(16,8), "ee33352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33352.e");
+ test_class_info(&lv, &cd_ee33352);
+ dp->~ee33352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33352(Test_ee33352, "ee33352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33352C1Ev();
+extern void _ZN7ee33352D1Ev();
+Name_Map name_map_ee33352[] = {
+ NSPAIR(_ZN7ee33352C1Ev),
+ NSPAIR(_ZN7ee33352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee33352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33352[];
+extern void _ZN7ee333523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee333523fooEv,_ZTv0_n24_N7ee333523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee333523fooEv,_ZThn8_N7ee333523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee333523fooEv,_ZTv0_n20_N7ee333523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee333523fooEv,_ZThn16_N7ee333523fooEv)() __attribute__((weak));
+extern void _ZN4bb523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee333523fooEv,_ZTv0_n12_N7ee333523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee333523fooEv,_ZThn32_N7ee333523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33352[0]),
+ (VTBL_ENTRY)&_ZN7ee333523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee333523fooEv,_ZTv0_n24_N7ee333523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee333523fooEv,_ZTv0_n20_N7ee333523fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee333523fooEv,_ZTv0_n12_N7ee333523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee33352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee33352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee33352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee33352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee33352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee33352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee33352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee33352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee33352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33352[] = {
+ {&(_ZTV7ee33352[6]), 6,31},
+ {&(_ZTV7ee33352[13]), 13,31},
+ {&(_ZTV7ee33352[19]), 19,31},
+ {&(_ZTV7ee33352[24]), 24,31},
+ {&(_ZTV7ee33352[29]), 29,31},
+ {&(_tg__ZTV6dd3352__7ee33352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee33352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee33352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee33352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee33352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee33352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee33352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee33352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee33352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33352[];
+extern VTBL_ENTRY _ZTV7ee33352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33352[];
+static VTBL_ENTRY alt_thunk_names1231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee333523fooEv,_ZTv0_n12_N7ee333523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee333523fooEv,_ZThn32_N7ee333523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee333523fooEv,_ZTv0_n20_N7ee333523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee333523fooEv,_ZThn16_N7ee333523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee333523fooEv,_ZTv0_n24_N7ee333523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee333523fooEv,_ZThn8_N7ee333523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33352 = { "ee33352", // class name
+ bases_ee33352, 4,
+ &(vtc_ee33352[0]), // expected_vtbl_contents
+ &(vtt_ee33352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33352),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43352 : dd3352 {
+ int e;
+ virtual void bar(); // _ZN7ee433523barEv
+ ~ee43352(); // tgen
+ ee43352(); // tgen
+};
+//SIG(1 ee43352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee43352 ::bar(){vfunc_called(this, "_ZN7ee433523barEv");}
+ee43352 ::~ee43352(){ note_dtor("ee43352", this);} // tgen
+ee43352 ::ee43352(){ note_ctor("ee43352", this);} // tgen
+
+static void Test_ee43352()
+{
+ extern Class_Descriptor cd_ee43352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43352, buf);
+ ee43352 *dp, &lv = *(dp=new (buf) ee43352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee43352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee43352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(16,12), "ee43352");
+ check_base_class_offset(lv, (dd3352*), 0, "ee43352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43352.e");
+ test_class_info(&lv, &cd_ee43352);
+ dp->~ee43352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43352(Test_ee43352, "ee43352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43352C1Ev();
+extern void _ZN7ee43352D1Ev();
+Name_Map name_map_ee43352[] = {
+ NSPAIR(_ZN7ee43352C1Ev),
+ NSPAIR(_ZN7ee43352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee43352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43352[];
+extern void _ZN6dd33523fooEv();
+extern void _ZN7ee433523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433523barEv,_ZTv0_n16_N7ee433523barEv)();
+extern void ABISELECT(_ZThn32_N7ee433523barEv,_ZThn20_N7ee433523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee433523barEv,_ZTv0_n16_N7ee433523barEv)();
+extern void ABISELECT(_ZThn48_N7ee433523barEv,_ZThn28_N7ee433523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+ (VTBL_ENTRY)&_ZN7ee433523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433523barEv,_ZTv0_n16_N7ee433523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee433523barEv,_ZTv0_n16_N7ee433523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee43352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee43352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee43352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee43352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee43352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee43352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee43352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee43352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee43352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43352[] = {
+ {&(_ZTV7ee43352[5]), 5,24},
+ {&(_tg__ZTV6dd3352__7ee43352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee43352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee43352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee43352[4]), 4,6},
+ {&(_ZTV7ee43352[12]), 12,24},
+ {&(_ZTV7ee43352[17]), 17,24},
+ {&(_ZTV7ee43352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee43352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee43352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee43352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee43352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee43352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43352[];
+extern VTBL_ENTRY _ZTV7ee43352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43352[];
+static VTBL_ENTRY alt_thunk_names1232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee433523barEv,_ZTv0_n16_N7ee433523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee433523barEv,_ZThn28_N7ee433523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee433523barEv,_ZThn20_N7ee433523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43352 = { "ee43352", // class name
+ bases_ee43352, 4,
+ &(vtc_ee43352[0]), // expected_vtbl_contents
+ &(vtt_ee43352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53352 : virtual dd3352 {
+ int e;
+ virtual void bar(); // _ZN7ee533523barEv
+ ~ee53352(); // tgen
+ ee53352(); // tgen
+};
+//SIG(1 ee53352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee53352 ::bar(){vfunc_called(this, "_ZN7ee533523barEv");}
+ee53352 ::~ee53352(){ note_dtor("ee53352", this);} // tgen
+ee53352 ::ee53352(){ note_ctor("ee53352", this);} // tgen
+
+static void Test_ee53352()
+{
+ extern Class_Descriptor cd_ee53352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53352, buf);
+ ee53352 *dp, &lv = *(dp=new (buf) ee53352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee53352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee53352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(32,16), "ee53352");
+ check_base_class_offset(lv, (dd3352*), ABISELECT(16,8), "ee53352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53352.e");
+ test_class_info(&lv, &cd_ee53352);
+ dp->~ee53352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53352(Test_ee53352, "ee53352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53352C1Ev();
+extern void _ZN7ee53352D1Ev();
+Name_Map name_map_ee53352[] = {
+ NSPAIR(_ZN7ee53352C1Ev),
+ NSPAIR(_ZN7ee53352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee53352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53352[];
+extern void _ZN7ee533523barEv();
+extern void _ZN6dd33523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533523barEv,_ZTv0_n16_N7ee533523barEv)();
+extern void ABISELECT(_ZThn48_N7ee533523barEv,_ZThn24_N7ee533523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee533523barEv,_ZTv0_n16_N7ee533523barEv)();
+extern void ABISELECT(_ZThn64_N7ee533523barEv,_ZThn32_N7ee533523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53352[0]),
+ (VTBL_ENTRY)&_ZN7ee533523barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533523barEv,_ZTv0_n16_N7ee533523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee533523barEv,_ZTv0_n16_N7ee533523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee53352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee53352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee53352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee53352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee53352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee53352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee53352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee53352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee53352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53352[] = {
+ {&(_ZTV7ee53352[6]), 6,31},
+ {&(_ZTV7ee53352[13]), 13,31},
+ {&(_ZTV7ee53352[19]), 19,31},
+ {&(_ZTV7ee53352[24]), 24,31},
+ {&(_ZTV7ee53352[29]), 29,31},
+ {&(_tg__ZTV6dd3352__7ee53352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee53352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee53352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee53352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee53352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee53352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee53352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee53352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee53352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53352[];
+extern VTBL_ENTRY _ZTV7ee53352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53352[];
+static VTBL_ENTRY alt_thunk_names1233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee533523barEv,_ZTv0_n16_N7ee533523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee533523barEv,_ZThn32_N7ee533523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee533523barEv,_ZThn24_N7ee533523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53352 = { "ee53352", // class name
+ bases_ee53352, 4,
+ &(vtc_ee53352[0]), // expected_vtbl_contents
+ &(vtt_ee53352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53352),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63352 : dd3352 {
+ int e;
+ virtual void foo(); // _ZN7ee633523fooEv
+ virtual void bar(); // _ZN7ee633523barEv
+ ~ee63352(); // tgen
+ ee63352(); // tgen
+};
+//SIG(1 ee63352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63352 ::foo(){vfunc_called(this, "_ZN7ee633523fooEv");}
+void ee63352 ::bar(){vfunc_called(this, "_ZN7ee633523barEv");}
+ee63352 ::~ee63352(){ note_dtor("ee63352", this);} // tgen
+ee63352 ::ee63352(){ note_ctor("ee63352", this);} // tgen
+
+static void Test_ee63352()
+{
+ extern Class_Descriptor cd_ee63352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63352, buf);
+ ee63352 *dp, &lv = *(dp=new (buf) ee63352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee63352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee63352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(16,12), "ee63352");
+ check_base_class_offset(lv, (dd3352*), 0, "ee63352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63352.e");
+ test_class_info(&lv, &cd_ee63352);
+ dp->~ee63352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63352(Test_ee63352, "ee63352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63352C1Ev();
+extern void _ZN7ee63352D1Ev();
+Name_Map name_map_ee63352[] = {
+ NSPAIR(_ZN7ee63352C1Ev),
+ NSPAIR(_ZN7ee63352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee63352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63352[];
+extern void _ZN7ee633523fooEv();
+extern void _ZN7ee633523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee633523fooEv,_ZTv0_n20_N7ee633523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee633523fooEv,_ZThn12_N7ee633523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633523barEv,_ZTv0_n16_N7ee633523barEv)();
+extern void ABISELECT(_ZThn32_N7ee633523barEv,_ZThn20_N7ee633523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee633523fooEv,_ZTv0_n12_N7ee633523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee633523fooEv,_ZThn28_N7ee633523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee633523barEv,_ZTv0_n16_N7ee633523barEv)();
+extern void ABISELECT(_ZThn48_N7ee633523barEv,_ZThn28_N7ee633523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63352[0]),
+ (VTBL_ENTRY)&_ZN7ee633523fooEv,
+ (VTBL_ENTRY)&_ZN7ee633523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee633523fooEv,_ZTv0_n20_N7ee633523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633523barEv,_ZTv0_n16_N7ee633523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee633523fooEv,_ZTv0_n12_N7ee633523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee633523barEv,_ZTv0_n16_N7ee633523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee63352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee63352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee63352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee63352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee63352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee63352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee63352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee63352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee63352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63352[] = {
+ {&(_ZTV7ee63352[5]), 5,24},
+ {&(_tg__ZTV6dd3352__7ee63352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee63352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee63352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee63352[4]), 4,6},
+ {&(_ZTV7ee63352[12]), 12,24},
+ {&(_ZTV7ee63352[17]), 17,24},
+ {&(_ZTV7ee63352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee63352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee63352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee63352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee63352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee63352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63352[];
+extern VTBL_ENTRY _ZTV7ee63352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63352[];
+static VTBL_ENTRY alt_thunk_names1234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn28_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn12_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee633523fooEv,_ZTv0_n12_N7ee633523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee633523fooEv,_ZThn28_N7ee633523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee633523barEv,_ZTv0_n16_N7ee633523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee633523barEv,_ZThn28_N7ee633523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee633523barEv,_ZThn20_N7ee633523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee633523fooEv,_ZTv0_n20_N7ee633523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee633523fooEv,_ZThn12_N7ee633523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63352 = { "ee63352", // class name
+ bases_ee63352, 4,
+ &(vtc_ee63352[0]), // expected_vtbl_contents
+ &(vtt_ee63352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73352 : virtual dd3352 {
+ int e;
+ virtual void foo(); // _ZN7ee733523fooEv
+ virtual void bar(); // _ZN7ee733523barEv
+ ~ee73352(); // tgen
+ ee73352(); // tgen
+};
+//SIG(1 ee73352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73352 ::foo(){vfunc_called(this, "_ZN7ee733523fooEv");}
+void ee73352 ::bar(){vfunc_called(this, "_ZN7ee733523barEv");}
+ee73352 ::~ee73352(){ note_dtor("ee73352", this);} // tgen
+ee73352 ::ee73352(){ note_ctor("ee73352", this);} // tgen
+
+static void Test_ee73352()
+{
+ extern Class_Descriptor cd_ee73352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73352, buf);
+ ee73352 *dp, &lv = *(dp=new (buf) ee73352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee73352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee73352");
+ check_base_class_offset(lv, (cc352*)(dd3352*), ABISELECT(32,16), "ee73352");
+ check_base_class_offset(lv, (dd3352*), ABISELECT(16,8), "ee73352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73352.e");
+ test_class_info(&lv, &cd_ee73352);
+ dp->~ee73352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73352(Test_ee73352, "ee73352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73352C1Ev();
+extern void _ZN7ee73352D1Ev();
+Name_Map name_map_ee73352[] = {
+ NSPAIR(_ZN7ee73352C1Ev),
+ NSPAIR(_ZN7ee73352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd3352;
+extern VTBL_ENTRY _ZTI6dd3352[];
+extern VTBL_ENTRY _ZTV6dd3352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3352[];
+static Base_Class bases_ee73352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3352, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73352[];
+extern void _ZN7ee733523fooEv();
+extern void _ZN7ee733523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee733523fooEv,_ZTv0_n24_N7ee733523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee733523fooEv,_ZThn8_N7ee733523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee733523fooEv,_ZTv0_n20_N7ee733523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee733523fooEv,_ZThn16_N7ee733523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733523barEv,_ZTv0_n16_N7ee733523barEv)();
+extern void ABISELECT(_ZThn48_N7ee733523barEv,_ZThn24_N7ee733523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee733523fooEv,_ZTv0_n12_N7ee733523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee733523fooEv,_ZThn32_N7ee733523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee733523barEv,_ZTv0_n16_N7ee733523barEv)();
+extern void ABISELECT(_ZThn64_N7ee733523barEv,_ZThn32_N7ee733523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73352[0]),
+ (VTBL_ENTRY)&_ZN7ee733523fooEv,
+ (VTBL_ENTRY)&_ZN7ee733523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee733523fooEv,_ZTv0_n24_N7ee733523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee733523fooEv,_ZTv0_n20_N7ee733523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733523barEv,_ZTv0_n16_N7ee733523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee733523fooEv,_ZTv0_n12_N7ee733523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee733523barEv,_ZTv0_n16_N7ee733523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73352[];
+extern void _ZN6dd33523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3352__7ee73352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN6dd33523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd3352__7ee73352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3352__7ee73352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3352__7ee73352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee73352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee73352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee73352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee73352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee73352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73352[] = {
+ {&(_ZTV7ee73352[6]), 6,32},
+ {&(_ZTV7ee73352[14]), 14,32},
+ {&(_ZTV7ee73352[20]), 20,32},
+ {&(_ZTV7ee73352[25]), 25,32},
+ {&(_ZTV7ee73352[30]), 30,32},
+ {&(_tg__ZTV6dd3352__7ee73352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd3352__7ee73352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3352__7ee73352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3352__7ee73352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee73352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee73352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee73352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee73352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee73352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73352[];
+extern VTBL_ENTRY _ZTV7ee73352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73352[];
+static VTBL_ENTRY alt_thunk_names1235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd33523fooEv,_ZTv0_n12_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd33523fooEv,_ZThn24_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd33523fooEv,_ZTv0_n20_N6dd33523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd33523fooEv,_ZThn8_N6dd33523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee733523fooEv,_ZTv0_n12_N7ee733523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee733523fooEv,_ZThn32_N7ee733523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee733523barEv,_ZTv0_n16_N7ee733523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee733523barEv,_ZThn32_N7ee733523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee733523barEv,_ZThn24_N7ee733523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee733523fooEv,_ZTv0_n20_N7ee733523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee733523fooEv,_ZThn16_N7ee733523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee733523fooEv,_ZTv0_n24_N7ee733523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee733523fooEv,_ZThn8_N7ee733523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73352 = { "ee73352", // class name
+ bases_ee73352, 4,
+ &(vtc_ee73352[0]), // expected_vtbl_contents
+ &(vtt_ee73352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73352),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4352 : cc352 {
+ int d;
+ virtual void bar(); // _ZN6dd43523barEv
+ ~dd4352(); // tgen
+ dd4352(); // tgen
+};
+//SIG(-1 dd4352) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd4352 ::bar(){vfunc_called(this, "_ZN6dd43523barEv");}
+dd4352 ::~dd4352(){ note_dtor("dd4352", this);} // tgen
+dd4352 ::dd4352(){ note_ctor("dd4352", this);} // tgen
+
+static void Test_dd4352()
+{
+ extern Class_Descriptor cd_dd4352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4352, buf);
+ dd4352 *dp, &lv = *(dp=new (buf) dd4352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd4352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(16,12), "dd4352");
+ check_base_class_offset(lv, (cc352*), 0, "dd4352");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4352.d");
+ test_class_info(&lv, &cd_dd4352);
+ dp->~dd4352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4352(Test_dd4352, "dd4352", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4352C1Ev();
+extern void _ZN6dd4352D1Ev();
+Name_Map name_map_dd4352[] = {
+ NSPAIR(_ZN6dd4352C1Ev),
+ NSPAIR(_ZN6dd4352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd4352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd4352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd4352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd4352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd4352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4352[] = {
+ {&(_ZTV6dd4352[4]), 4,17},
+ {&(_tg__ZTV5cc352__6dd4352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd4352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd4352[4]), 4,6},
+ {&(_ZTV6dd4352[10]), 10,17},
+ {&(_ZTV6dd4352[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd4352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd4352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static VTBL_ENTRY alt_thunk_names1236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4352 = { "dd4352", // class name
+ bases_dd4352, 3,
+ &(vtc_dd4352[0]), // expected_vtbl_contents
+ &(vtt_dd4352[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4352),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04352 : dd4352 {
+ int e;
+ ~ee04352(); // tgen
+ ee04352(); // tgen
+};
+//SIG(1 ee04352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee04352 ::~ee04352(){ note_dtor("ee04352", this);} // tgen
+ee04352 ::ee04352(){ note_ctor("ee04352", this);} // tgen
+
+static void Test_ee04352()
+{
+ extern Class_Descriptor cd_ee04352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04352, buf);
+ ee04352 *dp, &lv = *(dp=new (buf) ee04352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee04352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(24,16), "ee04352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), 0, "ee04352");
+ check_base_class_offset(lv, (dd4352*), 0, "ee04352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04352.e");
+ test_class_info(&lv, &cd_ee04352);
+ dp->~ee04352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04352(Test_ee04352, "ee04352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04352C1Ev();
+extern void _ZN7ee04352D1Ev();
+Name_Map name_map_ee04352[] = {
+ NSPAIR(_ZN7ee04352C1Ev),
+ NSPAIR(_ZN7ee04352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee04352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee04352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee04352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee04352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee04352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee04352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee04352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee04352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee04352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee04352[] = {
+ {&(_ZTV7ee04352[4]), 4,17},
+ {&(_tg__ZTV6dd4352__7ee04352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee04352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee04352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee04352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee04352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee04352[4]), 4,6},
+ {&(_ZTV7ee04352[10]), 10,17},
+ {&(_ZTV7ee04352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee04352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee04352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee04352[];
+extern VTBL_ENTRY _ZTV7ee04352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04352[];
+static VTBL_ENTRY alt_thunk_names1237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04352 = { "ee04352", // class name
+ bases_ee04352, 4,
+ &(vtc_ee04352[0]), // expected_vtbl_contents
+ &(vtt_ee04352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14352 : virtual dd4352 {
+ int e;
+ ~ee14352(); // tgen
+ ee14352(); // tgen
+};
+//SIG(1 ee14352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee14352 ::~ee14352(){ note_dtor("ee14352", this);} // tgen
+ee14352 ::ee14352(){ note_ctor("ee14352", this);} // tgen
+
+static void Test_ee14352()
+{
+ extern Class_Descriptor cd_ee14352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14352, buf);
+ ee14352 *dp, &lv = *(dp=new (buf) ee14352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee14352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(32,20), "ee14352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), ABISELECT(16,8), "ee14352");
+ check_base_class_offset(lv, (dd4352*), ABISELECT(16,8), "ee14352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14352.e");
+ test_class_info(&lv, &cd_ee14352);
+ dp->~ee14352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14352(Test_ee14352, "ee14352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14352C1Ev();
+extern void _ZN7ee14352D1Ev();
+Name_Map name_map_ee14352[] = {
+ NSPAIR(_ZN7ee14352C1Ev),
+ NSPAIR(_ZN7ee14352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee14352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14352[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee14352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee14352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee14352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee14352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee14352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee14352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee14352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee14352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee14352[] = {
+ {&(_ZTV7ee14352[5]), 5,24},
+ {&(_ZTV7ee14352[11]), 11,24},
+ {&(_ZTV7ee14352[17]), 17,24},
+ {&(_ZTV7ee14352[22]), 22,24},
+ {&(_tg__ZTV6dd4352__7ee14352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee14352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee14352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee14352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee14352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee14352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee14352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee14352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14352[];
+extern VTBL_ENTRY _ZTV7ee14352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14352[];
+static VTBL_ENTRY alt_thunk_names1238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14352 = { "ee14352", // class name
+ bases_ee14352, 4,
+ &(vtc_ee14352[0]), // expected_vtbl_contents
+ &(vtt_ee14352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24352 : dd4352 {
+ int e;
+ virtual void foo(); // _ZN7ee243523fooEv
+ ~ee24352(); // tgen
+ ee24352(); // tgen
+};
+//SIG(1 ee24352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee24352 ::foo(){vfunc_called(this, "_ZN7ee243523fooEv");}
+ee24352 ::~ee24352(){ note_dtor("ee24352", this);} // tgen
+ee24352 ::ee24352(){ note_ctor("ee24352", this);} // tgen
+
+static void Test_ee24352()
+{
+ extern Class_Descriptor cd_ee24352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24352, buf);
+ ee24352 *dp, &lv = *(dp=new (buf) ee24352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee24352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(24,16), "ee24352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), 0, "ee24352");
+ check_base_class_offset(lv, (dd4352*), 0, "ee24352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24352.e");
+ test_class_info(&lv, &cd_ee24352);
+ dp->~ee24352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24352(Test_ee24352, "ee24352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24352C1Ev();
+extern void _ZN7ee24352D1Ev();
+Name_Map name_map_ee24352[] = {
+ NSPAIR(_ZN7ee24352C1Ev),
+ NSPAIR(_ZN7ee24352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee24352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24352[];
+extern void _ZN7ee243523fooEv();
+extern void _ZN6dd43523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee243523fooEv,_ZTv0_n12_N7ee243523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee243523fooEv,_ZThn24_N7ee243523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24352[0]),
+ (VTBL_ENTRY)&_ZN7ee243523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee243523fooEv,_ZTv0_n12_N7ee243523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee24352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee24352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee24352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee24352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee24352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee24352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee24352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee24352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee24352[] = {
+ {&(_ZTV7ee24352[4]), 4,17},
+ {&(_tg__ZTV6dd4352__7ee24352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee24352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee24352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee24352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee24352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee24352[4]), 4,6},
+ {&(_ZTV7ee24352[10]), 10,17},
+ {&(_ZTV7ee24352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee24352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee24352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee24352[];
+extern VTBL_ENTRY _ZTV7ee24352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24352[];
+static VTBL_ENTRY alt_thunk_names1239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee243523fooEv,_ZTv0_n12_N7ee243523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee243523fooEv,_ZThn24_N7ee243523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24352 = { "ee24352", // class name
+ bases_ee24352, 4,
+ &(vtc_ee24352[0]), // expected_vtbl_contents
+ &(vtt_ee24352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34352 : virtual dd4352 {
+ int e;
+ virtual void foo(); // _ZN7ee343523fooEv
+ ~ee34352(); // tgen
+ ee34352(); // tgen
+};
+//SIG(1 ee34352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee34352 ::foo(){vfunc_called(this, "_ZN7ee343523fooEv");}
+ee34352 ::~ee34352(){ note_dtor("ee34352", this);} // tgen
+ee34352 ::ee34352(){ note_ctor("ee34352", this);} // tgen
+
+static void Test_ee34352()
+{
+ extern Class_Descriptor cd_ee34352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34352, buf);
+ ee34352 *dp, &lv = *(dp=new (buf) ee34352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee34352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(32,20), "ee34352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), ABISELECT(16,8), "ee34352");
+ check_base_class_offset(lv, (dd4352*), ABISELECT(16,8), "ee34352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34352.e");
+ test_class_info(&lv, &cd_ee34352);
+ dp->~ee34352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34352(Test_ee34352, "ee34352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34352C1Ev();
+extern void _ZN7ee34352D1Ev();
+Name_Map name_map_ee34352[] = {
+ NSPAIR(_ZN7ee34352C1Ev),
+ NSPAIR(_ZN7ee34352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee34352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34352[];
+extern void _ZN7ee343523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee343523fooEv,_ZTv0_n20_N7ee343523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee343523fooEv,_ZThn8_N7ee343523fooEv)() __attribute__((weak));
+extern void _ZN6dd43523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee343523fooEv,_ZTv0_n12_N7ee343523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee343523fooEv,_ZThn28_N7ee343523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34352[0]),
+ (VTBL_ENTRY)&_ZN7ee343523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee343523fooEv,_ZTv0_n20_N7ee343523fooEv),
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee343523fooEv,_ZTv0_n12_N7ee343523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee34352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee34352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee34352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee34352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee34352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee34352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee34352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee34352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee34352[] = {
+ {&(_ZTV7ee34352[5]), 5,25},
+ {&(_ZTV7ee34352[12]), 12,25},
+ {&(_ZTV7ee34352[18]), 18,25},
+ {&(_ZTV7ee34352[23]), 23,25},
+ {&(_tg__ZTV6dd4352__7ee34352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee34352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee34352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee34352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee34352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee34352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee34352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee34352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34352[];
+extern VTBL_ENTRY _ZTV7ee34352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34352[];
+static VTBL_ENTRY alt_thunk_names1240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee343523fooEv,_ZTv0_n12_N7ee343523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee343523fooEv,_ZThn28_N7ee343523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee343523fooEv,_ZTv0_n20_N7ee343523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee343523fooEv,_ZThn8_N7ee343523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34352 = { "ee34352", // class name
+ bases_ee34352, 4,
+ &(vtc_ee34352[0]), // expected_vtbl_contents
+ &(vtt_ee34352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34352),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44352 : dd4352 {
+ int e;
+ virtual void bar(); // _ZN7ee443523barEv
+ ~ee44352(); // tgen
+ ee44352(); // tgen
+};
+//SIG(1 ee44352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee44352 ::bar(){vfunc_called(this, "_ZN7ee443523barEv");}
+ee44352 ::~ee44352(){ note_dtor("ee44352", this);} // tgen
+ee44352 ::ee44352(){ note_ctor("ee44352", this);} // tgen
+
+static void Test_ee44352()
+{
+ extern Class_Descriptor cd_ee44352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44352, buf);
+ ee44352 *dp, &lv = *(dp=new (buf) ee44352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee44352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(24,16), "ee44352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), 0, "ee44352");
+ check_base_class_offset(lv, (dd4352*), 0, "ee44352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44352.e");
+ test_class_info(&lv, &cd_ee44352);
+ dp->~ee44352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44352(Test_ee44352, "ee44352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44352C1Ev();
+extern void _ZN7ee44352D1Ev();
+Name_Map name_map_ee44352[] = {
+ NSPAIR(_ZN7ee44352C1Ev),
+ NSPAIR(_ZN7ee44352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee44352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN7ee443523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee443523barEv,_ZTv0_n16_N7ee443523barEv)();
+extern void ABISELECT(_ZThn24_N7ee443523barEv,_ZThn16_N7ee443523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee443523barEv,_ZTv0_n16_N7ee443523barEv)();
+extern void ABISELECT(_ZThn40_N7ee443523barEv,_ZThn24_N7ee443523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN7ee443523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443523barEv,_ZTv0_n16_N7ee443523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee443523barEv,_ZTv0_n16_N7ee443523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee44352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee44352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee44352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee44352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee44352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee44352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee44352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee44352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee44352[] = {
+ {&(_ZTV7ee44352[4]), 4,17},
+ {&(_tg__ZTV6dd4352__7ee44352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee44352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee44352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee44352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee44352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee44352[4]), 4,6},
+ {&(_ZTV7ee44352[10]), 10,17},
+ {&(_ZTV7ee44352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee44352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee44352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee44352[];
+extern VTBL_ENTRY _ZTV7ee44352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44352[];
+static VTBL_ENTRY alt_thunk_names1241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee443523barEv,_ZTv0_n16_N7ee443523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee443523barEv,_ZThn24_N7ee443523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee443523barEv,_ZThn16_N7ee443523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44352 = { "ee44352", // class name
+ bases_ee44352, 4,
+ &(vtc_ee44352[0]), // expected_vtbl_contents
+ &(vtt_ee44352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54352 : virtual dd4352 {
+ int e;
+ virtual void bar(); // _ZN7ee543523barEv
+ ~ee54352(); // tgen
+ ee54352(); // tgen
+};
+//SIG(1 ee54352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee54352 ::bar(){vfunc_called(this, "_ZN7ee543523barEv");}
+ee54352 ::~ee54352(){ note_dtor("ee54352", this);} // tgen
+ee54352 ::ee54352(){ note_ctor("ee54352", this);} // tgen
+
+static void Test_ee54352()
+{
+ extern Class_Descriptor cd_ee54352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54352, buf);
+ ee54352 *dp, &lv = *(dp=new (buf) ee54352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee54352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(32,20), "ee54352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), ABISELECT(16,8), "ee54352");
+ check_base_class_offset(lv, (dd4352*), ABISELECT(16,8), "ee54352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54352.e");
+ test_class_info(&lv, &cd_ee54352);
+ dp->~ee54352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54352(Test_ee54352, "ee54352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54352C1Ev();
+extern void _ZN7ee54352D1Ev();
+Name_Map name_map_ee54352[] = {
+ NSPAIR(_ZN7ee54352C1Ev),
+ NSPAIR(_ZN7ee54352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee54352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54352[];
+extern void _ZN7ee543523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee543523barEv,_ZTv0_n24_N7ee543523barEv)();
+extern void ABISELECT(_ZThn16_N7ee543523barEv,_ZThn8_N7ee543523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543523barEv,_ZTv0_n16_N7ee543523barEv)();
+extern void ABISELECT(_ZThn32_N7ee543523barEv,_ZThn20_N7ee543523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee543523barEv,_ZTv0_n16_N7ee543523barEv)();
+extern void ABISELECT(_ZThn48_N7ee543523barEv,_ZThn28_N7ee543523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54352[0]),
+ (VTBL_ENTRY)&_ZN7ee543523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee543523barEv,_ZTv0_n24_N7ee543523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543523barEv,_ZTv0_n16_N7ee543523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee543523barEv,_ZTv0_n16_N7ee543523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee54352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee54352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee54352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee54352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee54352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee54352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee54352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee54352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee54352[] = {
+ {&(_ZTV7ee54352[5]), 5,25},
+ {&(_ZTV7ee54352[12]), 12,25},
+ {&(_ZTV7ee54352[18]), 18,25},
+ {&(_ZTV7ee54352[23]), 23,25},
+ {&(_tg__ZTV6dd4352__7ee54352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee54352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee54352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee54352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee54352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee54352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee54352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee54352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54352[];
+extern VTBL_ENTRY _ZTV7ee54352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54352[];
+static VTBL_ENTRY alt_thunk_names1242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee543523barEv,_ZTv0_n16_N7ee543523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee543523barEv,_ZThn28_N7ee543523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee543523barEv,_ZThn20_N7ee543523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee543523barEv,_ZTv0_n24_N7ee543523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee543523barEv,_ZThn8_N7ee543523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54352 = { "ee54352", // class name
+ bases_ee54352, 4,
+ &(vtc_ee54352[0]), // expected_vtbl_contents
+ &(vtt_ee54352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54352),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64352 : dd4352 {
+ int e;
+ virtual void foo(); // _ZN7ee643523fooEv
+ virtual void bar(); // _ZN7ee643523barEv
+ ~ee64352(); // tgen
+ ee64352(); // tgen
+};
+//SIG(1 ee64352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64352 ::foo(){vfunc_called(this, "_ZN7ee643523fooEv");}
+void ee64352 ::bar(){vfunc_called(this, "_ZN7ee643523barEv");}
+ee64352 ::~ee64352(){ note_dtor("ee64352", this);} // tgen
+ee64352 ::ee64352(){ note_ctor("ee64352", this);} // tgen
+
+static void Test_ee64352()
+{
+ extern Class_Descriptor cd_ee64352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64352, buf);
+ ee64352 *dp, &lv = *(dp=new (buf) ee64352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee64352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(24,16), "ee64352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), 0, "ee64352");
+ check_base_class_offset(lv, (dd4352*), 0, "ee64352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64352.e");
+ test_class_info(&lv, &cd_ee64352);
+ dp->~ee64352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64352(Test_ee64352, "ee64352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64352C1Ev();
+extern void _ZN7ee64352D1Ev();
+Name_Map name_map_ee64352[] = {
+ NSPAIR(_ZN7ee64352C1Ev),
+ NSPAIR(_ZN7ee64352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee64352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64352[];
+extern void _ZN7ee643523fooEv();
+extern void _ZN7ee643523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee643523barEv,_ZTv0_n16_N7ee643523barEv)();
+extern void ABISELECT(_ZThn24_N7ee643523barEv,_ZThn16_N7ee643523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee643523fooEv,_ZTv0_n12_N7ee643523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee643523fooEv,_ZThn24_N7ee643523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee643523barEv,_ZTv0_n16_N7ee643523barEv)();
+extern void ABISELECT(_ZThn40_N7ee643523barEv,_ZThn24_N7ee643523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64352[0]),
+ (VTBL_ENTRY)&_ZN7ee643523fooEv,
+ (VTBL_ENTRY)&_ZN7ee643523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643523barEv,_ZTv0_n16_N7ee643523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee643523fooEv,_ZTv0_n12_N7ee643523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee643523barEv,_ZTv0_n16_N7ee643523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee64352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee64352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee64352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee64352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee64352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee64352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee64352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee64352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee64352[] = {
+ {&(_ZTV7ee64352[4]), 4,17},
+ {&(_tg__ZTV6dd4352__7ee64352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee64352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee64352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee64352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee64352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee64352[4]), 4,6},
+ {&(_ZTV7ee64352[10]), 10,17},
+ {&(_ZTV7ee64352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee64352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee64352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee64352[];
+extern VTBL_ENTRY _ZTV7ee64352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64352[];
+static VTBL_ENTRY alt_thunk_names1243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd43523barEv,_ZThn24_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd43523barEv,_ZThn16_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee643523fooEv,_ZTv0_n12_N7ee643523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee643523fooEv,_ZThn24_N7ee643523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee643523barEv,_ZTv0_n16_N7ee643523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee643523barEv,_ZThn24_N7ee643523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee643523barEv,_ZThn16_N7ee643523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64352 = { "ee64352", // class name
+ bases_ee64352, 4,
+ &(vtc_ee64352[0]), // expected_vtbl_contents
+ &(vtt_ee64352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74352 : virtual dd4352 {
+ int e;
+ virtual void foo(); // _ZN7ee743523fooEv
+ virtual void bar(); // _ZN7ee743523barEv
+ ~ee74352(); // tgen
+ ee74352(); // tgen
+};
+//SIG(1 ee74352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74352 ::foo(){vfunc_called(this, "_ZN7ee743523fooEv");}
+void ee74352 ::bar(){vfunc_called(this, "_ZN7ee743523barEv");}
+ee74352 ::~ee74352(){ note_dtor("ee74352", this);} // tgen
+ee74352 ::ee74352(){ note_ctor("ee74352", this);} // tgen
+
+static void Test_ee74352()
+{
+ extern Class_Descriptor cd_ee74352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74352, buf);
+ ee74352 *dp, &lv = *(dp=new (buf) ee74352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee74352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd4352*), ABISELECT(32,20), "ee74352");
+ check_base_class_offset(lv, (cc352*)(dd4352*), ABISELECT(16,8), "ee74352");
+ check_base_class_offset(lv, (dd4352*), ABISELECT(16,8), "ee74352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74352.e");
+ test_class_info(&lv, &cd_ee74352);
+ dp->~ee74352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74352(Test_ee74352, "ee74352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74352C1Ev();
+extern void _ZN7ee74352D1Ev();
+Name_Map name_map_ee74352[] = {
+ NSPAIR(_ZN7ee74352C1Ev),
+ NSPAIR(_ZN7ee74352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd4352;
+extern VTBL_ENTRY _ZTI6dd4352[];
+extern VTBL_ENTRY _ZTV6dd4352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4352[];
+static Base_Class bases_ee74352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74352[];
+extern void _ZN7ee743523fooEv();
+extern void _ZN7ee743523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee743523fooEv,_ZTv0_n20_N7ee743523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee743523fooEv,_ZThn8_N7ee743523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee743523barEv,_ZTv0_n24_N7ee743523barEv)();
+extern void ABISELECT(_ZThn16_N7ee743523barEv,_ZThn8_N7ee743523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743523barEv,_ZTv0_n16_N7ee743523barEv)();
+extern void ABISELECT(_ZThn32_N7ee743523barEv,_ZThn20_N7ee743523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee743523fooEv,_ZTv0_n12_N7ee743523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee743523fooEv,_ZThn28_N7ee743523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee743523barEv,_ZTv0_n16_N7ee743523barEv)();
+extern void ABISELECT(_ZThn48_N7ee743523barEv,_ZThn28_N7ee743523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74352[0]),
+ (VTBL_ENTRY)&_ZN7ee743523fooEv,
+ (VTBL_ENTRY)&_ZN7ee743523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee743523fooEv,_ZTv0_n20_N7ee743523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee743523barEv,_ZTv0_n24_N7ee743523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743523barEv,_ZTv0_n16_N7ee743523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee743523fooEv,_ZTv0_n12_N7ee743523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee743523barEv,_ZTv0_n16_N7ee743523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74352[];
+extern void _ZN5cc3523fooEv();
+extern void _ZN6dd43523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4352__7ee74352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ (VTBL_ENTRY)&_ZN6dd43523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd4352__7ee74352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd4352__7ee74352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd4352__7ee74352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4352__7ee74352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv)();
+extern void ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4352__7ee74352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee74352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee74352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee74352[] = {
+ {&(_ZTV7ee74352[5]), 5,26},
+ {&(_ZTV7ee74352[13]), 13,26},
+ {&(_ZTV7ee74352[19]), 19,26},
+ {&(_ZTV7ee74352[24]), 24,26},
+ {&(_tg__ZTV6dd4352__7ee74352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd4352__7ee74352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd4352__7ee74352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd4352__7ee74352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4352__7ee74352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4352__7ee74352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee74352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee74352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74352[];
+extern VTBL_ENTRY _ZTV7ee74352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74352[];
+static VTBL_ENTRY alt_thunk_names1244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd43523barEv,_ZTv0_n16_N6dd43523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd43523barEv,_ZThn20_N6dd43523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd43523barEv,_ZThn12_N6dd43523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee743523fooEv,_ZTv0_n12_N7ee743523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee743523fooEv,_ZThn28_N7ee743523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee743523barEv,_ZTv0_n16_N7ee743523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee743523barEv,_ZThn28_N7ee743523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee743523barEv,_ZThn20_N7ee743523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee743523barEv,_ZTv0_n24_N7ee743523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743523barEv,_ZThn8_N7ee743523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee743523fooEv,_ZTv0_n20_N7ee743523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee743523fooEv,_ZThn8_N7ee743523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74352 = { "ee74352", // class name
+ bases_ee74352, 4,
+ &(vtc_ee74352[0]), // expected_vtbl_contents
+ &(vtt_ee74352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74352),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5352 : virtual cc352 {
+ int d;
+ virtual void bar(); // _ZN6dd53523barEv
+ ~dd5352(); // tgen
+ dd5352(); // tgen
+};
+//SIG(-1 dd5352) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void dd5352 ::bar(){vfunc_called(this, "_ZN6dd53523barEv");}
+dd5352 ::~dd5352(){ note_dtor("dd5352", this);} // tgen
+dd5352 ::dd5352(){ note_ctor("dd5352", this);} // tgen
+
+static void Test_dd5352()
+{
+ extern Class_Descriptor cd_dd5352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5352, buf);
+ dd5352 *dp, &lv = *(dp=new (buf) dd5352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd5352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,16), "dd5352");
+ check_base_class_offset(lv, (cc352*), ABISELECT(16,8), "dd5352");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5352.d");
+ test_class_info(&lv, &cd_dd5352);
+ dp->~dd5352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5352(Test_dd5352, "dd5352", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5352C1Ev();
+extern void _ZN6dd5352D1Ev();
+Name_Map name_map_dd5352[] = {
+ NSPAIR(_ZN6dd5352C1Ev),
+ NSPAIR(_ZN6dd5352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd5352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd5352[];
+extern void _ZN6dd53523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd5352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd5352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd5352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5352[] = {
+ {&(_ZTV6dd5352[5]), 5,23},
+ {&(_ZTV6dd5352[11]), 11,23},
+ {&(_ZTV6dd5352[16]), 16,23},
+ {&(_ZTV6dd5352[21]), 21,23},
+ {&(_tg__ZTV5cc352__6dd5352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd5352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd5352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd5352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd5352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static VTBL_ENTRY alt_thunk_names1245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5352 = { "dd5352", // class name
+ bases_dd5352, 3,
+ &(vtc_dd5352[0]), // expected_vtbl_contents
+ &(vtt_dd5352[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5352),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05352 : dd5352 {
+ int e;
+ ~ee05352(); // tgen
+ ee05352(); // tgen
+};
+//SIG(1 ee05352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee05352 ::~ee05352(){ note_dtor("ee05352", this);} // tgen
+ee05352 ::ee05352(){ note_ctor("ee05352", this);} // tgen
+
+static void Test_ee05352()
+{
+ extern Class_Descriptor cd_ee05352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05352, buf);
+ ee05352 *dp, &lv = *(dp=new (buf) ee05352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee05352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee05352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(16,12), "ee05352");
+ check_base_class_offset(lv, (dd5352*), 0, "ee05352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05352.e");
+ test_class_info(&lv, &cd_ee05352);
+ dp->~ee05352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05352(Test_ee05352, "ee05352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05352C1Ev();
+extern void _ZN7ee05352D1Ev();
+Name_Map name_map_ee05352[] = {
+ NSPAIR(_ZN7ee05352C1Ev),
+ NSPAIR(_ZN7ee05352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee05352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05352[];
+extern void _ZN6dd53523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee05352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee05352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee05352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee05352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee05352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee05352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee05352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee05352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee05352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05352[] = {
+ {&(_ZTV7ee05352[5]), 5,23},
+ {&(_tg__ZTV6dd5352__7ee05352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee05352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee05352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee05352[4]), 4,6},
+ {&(_ZTV7ee05352[11]), 11,23},
+ {&(_ZTV7ee05352[16]), 16,23},
+ {&(_ZTV7ee05352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee05352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee05352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee05352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee05352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee05352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05352[];
+extern VTBL_ENTRY _ZTV7ee05352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05352[];
+static VTBL_ENTRY alt_thunk_names1246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05352 = { "ee05352", // class name
+ bases_ee05352, 4,
+ &(vtc_ee05352[0]), // expected_vtbl_contents
+ &(vtt_ee05352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15352 : virtual dd5352 {
+ int e;
+ ~ee15352(); // tgen
+ ee15352(); // tgen
+};
+//SIG(1 ee15352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee15352 ::~ee15352(){ note_dtor("ee15352", this);} // tgen
+ee15352 ::ee15352(){ note_ctor("ee15352", this);} // tgen
+
+static void Test_ee15352()
+{
+ extern Class_Descriptor cd_ee15352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15352, buf);
+ ee15352 *dp, &lv = *(dp=new (buf) ee15352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee15352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee15352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(32,16), "ee15352");
+ check_base_class_offset(lv, (dd5352*), ABISELECT(16,8), "ee15352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15352.e");
+ test_class_info(&lv, &cd_ee15352);
+ dp->~ee15352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15352(Test_ee15352, "ee15352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15352C1Ev();
+extern void _ZN7ee15352D1Ev();
+Name_Map name_map_ee15352[] = {
+ NSPAIR(_ZN7ee15352C1Ev),
+ NSPAIR(_ZN7ee15352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee15352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15352[];
+extern void _ZN6dd53523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15352[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee15352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee15352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee15352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee15352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee15352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee15352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee15352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee15352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee15352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15352[] = {
+ {&(_ZTV7ee15352[6]), 6,30},
+ {&(_ZTV7ee15352[12]), 12,30},
+ {&(_ZTV7ee15352[18]), 18,30},
+ {&(_ZTV7ee15352[23]), 23,30},
+ {&(_ZTV7ee15352[28]), 28,30},
+ {&(_tg__ZTV6dd5352__7ee15352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee15352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee15352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee15352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee15352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee15352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee15352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee15352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee15352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15352[];
+extern VTBL_ENTRY _ZTV7ee15352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15352[];
+static VTBL_ENTRY alt_thunk_names1247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15352 = { "ee15352", // class name
+ bases_ee15352, 4,
+ &(vtc_ee15352[0]), // expected_vtbl_contents
+ &(vtt_ee15352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15352),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25352 : dd5352 {
+ int e;
+ virtual void foo(); // _ZN7ee253523fooEv
+ ~ee25352(); // tgen
+ ee25352(); // tgen
+};
+//SIG(1 ee25352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee25352 ::foo(){vfunc_called(this, "_ZN7ee253523fooEv");}
+ee25352 ::~ee25352(){ note_dtor("ee25352", this);} // tgen
+ee25352 ::ee25352(){ note_ctor("ee25352", this);} // tgen
+
+static void Test_ee25352()
+{
+ extern Class_Descriptor cd_ee25352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25352, buf);
+ ee25352 *dp, &lv = *(dp=new (buf) ee25352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee25352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee25352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(16,12), "ee25352");
+ check_base_class_offset(lv, (dd5352*), 0, "ee25352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25352.e");
+ test_class_info(&lv, &cd_ee25352);
+ dp->~ee25352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25352(Test_ee25352, "ee25352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25352C1Ev();
+extern void _ZN7ee25352D1Ev();
+Name_Map name_map_ee25352[] = {
+ NSPAIR(_ZN7ee25352C1Ev),
+ NSPAIR(_ZN7ee25352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee25352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25352[];
+extern void _ZN6dd53523barEv();
+extern void _ZN7ee253523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee253523fooEv,_ZTv0_n20_N7ee253523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee253523fooEv,_ZThn12_N7ee253523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee253523fooEv,_ZTv0_n12_N7ee253523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee253523fooEv,_ZThn28_N7ee253523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+ (VTBL_ENTRY)&_ZN7ee253523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee253523fooEv,_ZTv0_n20_N7ee253523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee253523fooEv,_ZTv0_n12_N7ee253523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee25352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee25352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee25352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee25352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee25352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee25352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee25352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee25352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee25352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25352[] = {
+ {&(_ZTV7ee25352[5]), 5,24},
+ {&(_tg__ZTV6dd5352__7ee25352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee25352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee25352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee25352[4]), 4,6},
+ {&(_ZTV7ee25352[12]), 12,24},
+ {&(_ZTV7ee25352[17]), 17,24},
+ {&(_ZTV7ee25352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee25352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee25352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee25352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee25352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee25352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25352[];
+extern VTBL_ENTRY _ZTV7ee25352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25352[];
+static VTBL_ENTRY alt_thunk_names1248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee253523fooEv,_ZTv0_n12_N7ee253523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee253523fooEv,_ZThn28_N7ee253523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee253523fooEv,_ZTv0_n20_N7ee253523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee253523fooEv,_ZThn12_N7ee253523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25352 = { "ee25352", // class name
+ bases_ee25352, 4,
+ &(vtc_ee25352[0]), // expected_vtbl_contents
+ &(vtt_ee25352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35352 : virtual dd5352 {
+ int e;
+ virtual void foo(); // _ZN7ee353523fooEv
+ ~ee35352(); // tgen
+ ee35352(); // tgen
+};
+//SIG(1 ee35352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee35352 ::foo(){vfunc_called(this, "_ZN7ee353523fooEv");}
+ee35352 ::~ee35352(){ note_dtor("ee35352", this);} // tgen
+ee35352 ::ee35352(){ note_ctor("ee35352", this);} // tgen
+
+static void Test_ee35352()
+{
+ extern Class_Descriptor cd_ee35352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35352, buf);
+ ee35352 *dp, &lv = *(dp=new (buf) ee35352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee35352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee35352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(32,16), "ee35352");
+ check_base_class_offset(lv, (dd5352*), ABISELECT(16,8), "ee35352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35352.e");
+ test_class_info(&lv, &cd_ee35352);
+ dp->~ee35352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35352(Test_ee35352, "ee35352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35352C1Ev();
+extern void _ZN7ee35352D1Ev();
+Name_Map name_map_ee35352[] = {
+ NSPAIR(_ZN7ee35352C1Ev),
+ NSPAIR(_ZN7ee35352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee35352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35352[];
+extern void _ZN7ee353523fooEv();
+extern void _ZN6dd53523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee353523fooEv,_ZTv0_n20_N7ee353523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee353523fooEv,_ZThn16_N7ee353523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee353523fooEv,_ZTv0_n12_N7ee353523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee353523fooEv,_ZThn32_N7ee353523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35352[0]),
+ (VTBL_ENTRY)&_ZN7ee353523fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee353523fooEv,_ZTv0_n20_N7ee353523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee353523fooEv,_ZTv0_n12_N7ee353523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee35352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee35352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee35352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee35352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee35352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee35352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee35352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee35352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee35352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35352[] = {
+ {&(_ZTV7ee35352[6]), 6,31},
+ {&(_ZTV7ee35352[13]), 13,31},
+ {&(_ZTV7ee35352[19]), 19,31},
+ {&(_ZTV7ee35352[24]), 24,31},
+ {&(_ZTV7ee35352[29]), 29,31},
+ {&(_tg__ZTV6dd5352__7ee35352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee35352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee35352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee35352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee35352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee35352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee35352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee35352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee35352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35352[];
+extern VTBL_ENTRY _ZTV7ee35352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35352[];
+static VTBL_ENTRY alt_thunk_names1249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee353523fooEv,_ZTv0_n12_N7ee353523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee353523fooEv,_ZThn32_N7ee353523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee353523fooEv,_ZTv0_n20_N7ee353523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee353523fooEv,_ZThn16_N7ee353523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35352 = { "ee35352", // class name
+ bases_ee35352, 4,
+ &(vtc_ee35352[0]), // expected_vtbl_contents
+ &(vtt_ee35352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35352),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45352 : dd5352 {
+ int e;
+ virtual void bar(); // _ZN7ee453523barEv
+ ~ee45352(); // tgen
+ ee45352(); // tgen
+};
+//SIG(1 ee45352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee45352 ::bar(){vfunc_called(this, "_ZN7ee453523barEv");}
+ee45352 ::~ee45352(){ note_dtor("ee45352", this);} // tgen
+ee45352 ::ee45352(){ note_ctor("ee45352", this);} // tgen
+
+static void Test_ee45352()
+{
+ extern Class_Descriptor cd_ee45352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45352, buf);
+ ee45352 *dp, &lv = *(dp=new (buf) ee45352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee45352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee45352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(16,12), "ee45352");
+ check_base_class_offset(lv, (dd5352*), 0, "ee45352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45352.e");
+ test_class_info(&lv, &cd_ee45352);
+ dp->~ee45352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45352(Test_ee45352, "ee45352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45352C1Ev();
+extern void _ZN7ee45352D1Ev();
+Name_Map name_map_ee45352[] = {
+ NSPAIR(_ZN7ee45352C1Ev),
+ NSPAIR(_ZN7ee45352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee45352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45352[];
+extern void _ZN7ee453523barEv();
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee453523barEv,_ZTv0_n16_N7ee453523barEv)();
+extern void ABISELECT(_ZThn32_N7ee453523barEv,_ZThn20_N7ee453523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee453523barEv,_ZTv0_n16_N7ee453523barEv)();
+extern void ABISELECT(_ZThn48_N7ee453523barEv,_ZThn28_N7ee453523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45352[0]),
+ (VTBL_ENTRY)&_ZN7ee453523barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453523barEv,_ZTv0_n16_N7ee453523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee453523barEv,_ZTv0_n16_N7ee453523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee45352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee45352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee45352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee45352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee45352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee45352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee45352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee45352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee45352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45352[] = {
+ {&(_ZTV7ee45352[5]), 5,23},
+ {&(_tg__ZTV6dd5352__7ee45352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee45352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee45352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee45352[4]), 4,6},
+ {&(_ZTV7ee45352[11]), 11,23},
+ {&(_ZTV7ee45352[16]), 16,23},
+ {&(_ZTV7ee45352[21]), 21,23},
+ {&(_tg__ZTV5cc352__7ee45352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee45352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee45352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee45352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee45352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45352[];
+extern VTBL_ENTRY _ZTV7ee45352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45352[];
+static VTBL_ENTRY alt_thunk_names1250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee453523barEv,_ZTv0_n16_N7ee453523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee453523barEv,_ZThn28_N7ee453523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee453523barEv,_ZThn20_N7ee453523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45352 = { "ee45352", // class name
+ bases_ee45352, 4,
+ &(vtc_ee45352[0]), // expected_vtbl_contents
+ &(vtt_ee45352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45352),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55352 : virtual dd5352 {
+ int e;
+ virtual void bar(); // _ZN7ee553523barEv
+ ~ee55352(); // tgen
+ ee55352(); // tgen
+};
+//SIG(1 ee55352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee55352 ::bar(){vfunc_called(this, "_ZN7ee553523barEv");}
+ee55352 ::~ee55352(){ note_dtor("ee55352", this);} // tgen
+ee55352 ::ee55352(){ note_ctor("ee55352", this);} // tgen
+
+static void Test_ee55352()
+{
+ extern Class_Descriptor cd_ee55352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55352, buf);
+ ee55352 *dp, &lv = *(dp=new (buf) ee55352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee55352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee55352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(32,16), "ee55352");
+ check_base_class_offset(lv, (dd5352*), ABISELECT(16,8), "ee55352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55352.e");
+ test_class_info(&lv, &cd_ee55352);
+ dp->~ee55352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55352(Test_ee55352, "ee55352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55352C1Ev();
+extern void _ZN7ee55352D1Ev();
+Name_Map name_map_ee55352[] = {
+ NSPAIR(_ZN7ee55352C1Ev),
+ NSPAIR(_ZN7ee55352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee55352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55352[];
+extern void _ZN7ee553523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee553523barEv,_ZTv0_n24_N7ee553523barEv)();
+extern void ABISELECT(_ZThn16_N7ee553523barEv,_ZThn8_N7ee553523barEv)() __attribute__((weak));
+extern void _ZN5cc3523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee553523barEv,_ZTv0_n16_N7ee553523barEv)();
+extern void ABISELECT(_ZThn48_N7ee553523barEv,_ZThn24_N7ee553523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee553523barEv,_ZTv0_n16_N7ee553523barEv)();
+extern void ABISELECT(_ZThn64_N7ee553523barEv,_ZThn32_N7ee553523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55352[0]),
+ (VTBL_ENTRY)&_ZN7ee553523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee553523barEv,_ZTv0_n24_N7ee553523barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553523barEv,_ZTv0_n16_N7ee553523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee553523barEv,_ZTv0_n16_N7ee553523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee55352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee55352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee55352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee55352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee55352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee55352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee55352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee55352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee55352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55352[] = {
+ {&(_ZTV7ee55352[6]), 6,31},
+ {&(_ZTV7ee55352[13]), 13,31},
+ {&(_ZTV7ee55352[19]), 19,31},
+ {&(_ZTV7ee55352[24]), 24,31},
+ {&(_ZTV7ee55352[29]), 29,31},
+ {&(_tg__ZTV6dd5352__7ee55352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee55352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee55352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee55352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee55352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee55352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee55352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee55352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee55352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55352[];
+extern VTBL_ENTRY _ZTV7ee55352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55352[];
+static VTBL_ENTRY alt_thunk_names1251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee553523barEv,_ZTv0_n16_N7ee553523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee553523barEv,_ZThn32_N7ee553523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee553523barEv,_ZThn24_N7ee553523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee553523barEv,_ZTv0_n24_N7ee553523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee553523barEv,_ZThn8_N7ee553523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55352 = { "ee55352", // class name
+ bases_ee55352, 4,
+ &(vtc_ee55352[0]), // expected_vtbl_contents
+ &(vtt_ee55352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55352),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65352 : dd5352 {
+ int e;
+ virtual void foo(); // _ZN7ee653523fooEv
+ virtual void bar(); // _ZN7ee653523barEv
+ ~ee65352(); // tgen
+ ee65352(); // tgen
+};
+//SIG(1 ee65352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65352 ::foo(){vfunc_called(this, "_ZN7ee653523fooEv");}
+void ee65352 ::bar(){vfunc_called(this, "_ZN7ee653523barEv");}
+ee65352 ::~ee65352(){ note_dtor("ee65352", this);} // tgen
+ee65352 ::ee65352(){ note_ctor("ee65352", this);} // tgen
+
+static void Test_ee65352()
+{
+ extern Class_Descriptor cd_ee65352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65352, buf);
+ ee65352 *dp, &lv = *(dp=new (buf) ee65352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee65352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee65352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(16,12), "ee65352");
+ check_base_class_offset(lv, (dd5352*), 0, "ee65352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65352.e");
+ test_class_info(&lv, &cd_ee65352);
+ dp->~ee65352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65352(Test_ee65352, "ee65352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65352C1Ev();
+extern void _ZN7ee65352D1Ev();
+Name_Map name_map_ee65352[] = {
+ NSPAIR(_ZN7ee65352C1Ev),
+ NSPAIR(_ZN7ee65352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee65352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65352[];
+extern void _ZN7ee653523barEv();
+extern void _ZN7ee653523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee653523fooEv,_ZTv0_n20_N7ee653523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee653523fooEv,_ZThn12_N7ee653523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653523barEv,_ZTv0_n16_N7ee653523barEv)();
+extern void ABISELECT(_ZThn32_N7ee653523barEv,_ZThn20_N7ee653523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee653523fooEv,_ZTv0_n12_N7ee653523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee653523fooEv,_ZThn28_N7ee653523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee653523barEv,_ZTv0_n16_N7ee653523barEv)();
+extern void ABISELECT(_ZThn48_N7ee653523barEv,_ZThn28_N7ee653523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65352[0]),
+ (VTBL_ENTRY)&_ZN7ee653523barEv,
+ (VTBL_ENTRY)&_ZN7ee653523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee653523fooEv,_ZTv0_n20_N7ee653523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653523barEv,_ZTv0_n16_N7ee653523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee653523fooEv,_ZTv0_n12_N7ee653523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee653523barEv,_ZTv0_n16_N7ee653523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee65352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee65352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee65352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee65352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee65352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee65352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee65352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee65352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee65352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65352[] = {
+ {&(_ZTV7ee65352[5]), 5,24},
+ {&(_tg__ZTV6dd5352__7ee65352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee65352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee65352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee65352[4]), 4,6},
+ {&(_ZTV7ee65352[12]), 12,24},
+ {&(_ZTV7ee65352[17]), 17,24},
+ {&(_ZTV7ee65352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee65352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee65352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee65352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee65352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee65352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65352[];
+extern VTBL_ENTRY _ZTV7ee65352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65352[];
+static VTBL_ENTRY alt_thunk_names1252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn28_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn20_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee653523fooEv,_ZTv0_n12_N7ee653523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee653523fooEv,_ZThn28_N7ee653523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee653523barEv,_ZTv0_n16_N7ee653523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee653523barEv,_ZThn28_N7ee653523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee653523barEv,_ZThn20_N7ee653523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee653523fooEv,_ZTv0_n20_N7ee653523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee653523fooEv,_ZThn12_N7ee653523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65352 = { "ee65352", // class name
+ bases_ee65352, 4,
+ &(vtc_ee65352[0]), // expected_vtbl_contents
+ &(vtt_ee65352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75352 : virtual dd5352 {
+ int e;
+ virtual void foo(); // _ZN7ee753523fooEv
+ virtual void bar(); // _ZN7ee753523barEv
+ ~ee75352(); // tgen
+ ee75352(); // tgen
+};
+//SIG(1 ee75352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75352 ::foo(){vfunc_called(this, "_ZN7ee753523fooEv");}
+void ee75352 ::bar(){vfunc_called(this, "_ZN7ee753523barEv");}
+ee75352 ::~ee75352(){ note_dtor("ee75352", this);} // tgen
+ee75352 ::ee75352(){ note_ctor("ee75352", this);} // tgen
+
+static void Test_ee75352()
+{
+ extern Class_Descriptor cd_ee75352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75352, buf);
+ ee75352 *dp, &lv = *(dp=new (buf) ee75352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee75352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee75352");
+ check_base_class_offset(lv, (cc352*)(dd5352*), ABISELECT(32,16), "ee75352");
+ check_base_class_offset(lv, (dd5352*), ABISELECT(16,8), "ee75352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75352.e");
+ test_class_info(&lv, &cd_ee75352);
+ dp->~ee75352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75352(Test_ee75352, "ee75352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75352C1Ev();
+extern void _ZN7ee75352D1Ev();
+Name_Map name_map_ee75352[] = {
+ NSPAIR(_ZN7ee75352C1Ev),
+ NSPAIR(_ZN7ee75352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd5352;
+extern VTBL_ENTRY _ZTI6dd5352[];
+extern VTBL_ENTRY _ZTV6dd5352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5352[];
+static Base_Class bases_ee75352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5352, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75352[];
+extern void _ZN7ee753523fooEv();
+extern void _ZN7ee753523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee753523barEv,_ZTv0_n24_N7ee753523barEv)();
+extern void ABISELECT(_ZThn16_N7ee753523barEv,_ZThn8_N7ee753523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee753523fooEv,_ZTv0_n20_N7ee753523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee753523fooEv,_ZThn16_N7ee753523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753523barEv,_ZTv0_n16_N7ee753523barEv)();
+extern void ABISELECT(_ZThn48_N7ee753523barEv,_ZThn24_N7ee753523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee753523fooEv,_ZTv0_n12_N7ee753523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee753523fooEv,_ZThn32_N7ee753523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee753523barEv,_ZTv0_n16_N7ee753523barEv)();
+extern void ABISELECT(_ZThn64_N7ee753523barEv,_ZThn32_N7ee753523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75352[0]),
+ (VTBL_ENTRY)&_ZN7ee753523fooEv,
+ (VTBL_ENTRY)&_ZN7ee753523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee753523barEv,_ZTv0_n24_N7ee753523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee753523fooEv,_ZTv0_n20_N7ee753523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753523barEv,_ZTv0_n16_N7ee753523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee753523fooEv,_ZTv0_n12_N7ee753523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee753523barEv,_ZTv0_n16_N7ee753523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75352[];
+extern void _ZN6dd53523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5352__7ee75352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN6dd53523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd5352__7ee75352[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5352__7ee75352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv)();
+extern void ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5352__7ee75352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee75352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee75352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee75352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee75352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee75352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75352[] = {
+ {&(_ZTV7ee75352[6]), 6,32},
+ {&(_ZTV7ee75352[14]), 14,32},
+ {&(_ZTV7ee75352[20]), 20,32},
+ {&(_ZTV7ee75352[25]), 25,32},
+ {&(_ZTV7ee75352[30]), 30,32},
+ {&(_tg__ZTV6dd5352__7ee75352[5]), 5,6},
+ {&(_tg__ZTV5cc352__6dd5352__7ee75352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5352__7ee75352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5352__7ee75352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee75352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee75352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee75352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee75352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee75352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75352[];
+extern VTBL_ENTRY _ZTV7ee75352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75352[];
+static VTBL_ENTRY alt_thunk_names1253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd53523barEv,_ZTv0_n16_N6dd53523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd53523barEv,_ZThn24_N6dd53523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd53523barEv,_ZThn16_N6dd53523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee753523fooEv,_ZTv0_n12_N7ee753523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee753523fooEv,_ZThn32_N7ee753523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee753523barEv,_ZTv0_n16_N7ee753523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee753523barEv,_ZThn32_N7ee753523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee753523barEv,_ZThn24_N7ee753523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee753523fooEv,_ZTv0_n20_N7ee753523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee753523fooEv,_ZThn16_N7ee753523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee753523barEv,_ZTv0_n24_N7ee753523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee753523barEv,_ZThn8_N7ee753523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75352 = { "ee75352", // class name
+ bases_ee75352, 4,
+ &(vtc_ee75352[0]), // expected_vtbl_contents
+ &(vtt_ee75352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75352),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6352 : cc352 {
+ int d;
+ virtual void bar(); // _ZN6dd63523barEv
+ virtual void foo(); // _ZN6dd63523fooEv
+ ~dd6352(); // tgen
+ dd6352(); // tgen
+};
+//SIG(-1 dd6352) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd6352 ::bar(){vfunc_called(this, "_ZN6dd63523barEv");}
+void dd6352 ::foo(){vfunc_called(this, "_ZN6dd63523fooEv");}
+dd6352 ::~dd6352(){ note_dtor("dd6352", this);} // tgen
+dd6352 ::dd6352(){ note_ctor("dd6352", this);} // tgen
+
+static void Test_dd6352()
+{
+ extern Class_Descriptor cd_dd6352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6352, buf);
+ dd6352 *dp, &lv = *(dp=new (buf) dd6352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd6352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(16,12), "dd6352");
+ check_base_class_offset(lv, (cc352*), 0, "dd6352");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6352.d");
+ test_class_info(&lv, &cd_dd6352);
+ dp->~dd6352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6352(Test_dd6352, "dd6352", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6352C1Ev();
+extern void _ZN6dd6352D1Ev();
+Name_Map name_map_dd6352[] = {
+ NSPAIR(_ZN6dd6352C1Ev),
+ NSPAIR(_ZN6dd6352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd6352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd6352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd6352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd6352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd6352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6352[] = {
+ {&(_ZTV6dd6352[4]), 4,17},
+ {&(_tg__ZTV5cc352__6dd6352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd6352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd6352[4]), 4,6},
+ {&(_ZTV6dd6352[10]), 10,17},
+ {&(_ZTV6dd6352[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd6352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd6352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static VTBL_ENTRY alt_thunk_names1254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6352 = { "dd6352", // class name
+ bases_dd6352, 3,
+ &(vtc_dd6352[0]), // expected_vtbl_contents
+ &(vtt_dd6352[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6352),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06352 : dd6352 {
+ int e;
+ ~ee06352(); // tgen
+ ee06352(); // tgen
+};
+//SIG(1 ee06352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee06352 ::~ee06352(){ note_dtor("ee06352", this);} // tgen
+ee06352 ::ee06352(){ note_ctor("ee06352", this);} // tgen
+
+static void Test_ee06352()
+{
+ extern Class_Descriptor cd_ee06352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06352, buf);
+ ee06352 *dp, &lv = *(dp=new (buf) ee06352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee06352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(24,16), "ee06352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), 0, "ee06352");
+ check_base_class_offset(lv, (dd6352*), 0, "ee06352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06352.e");
+ test_class_info(&lv, &cd_ee06352);
+ dp->~ee06352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06352(Test_ee06352, "ee06352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06352C1Ev();
+extern void _ZN7ee06352D1Ev();
+Name_Map name_map_ee06352[] = {
+ NSPAIR(_ZN7ee06352C1Ev),
+ NSPAIR(_ZN7ee06352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee06352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee06352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee06352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee06352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee06352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee06352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee06352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee06352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee06352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee06352[] = {
+ {&(_ZTV7ee06352[4]), 4,17},
+ {&(_tg__ZTV6dd6352__7ee06352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee06352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee06352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee06352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee06352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee06352[4]), 4,6},
+ {&(_ZTV7ee06352[10]), 10,17},
+ {&(_ZTV7ee06352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee06352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee06352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee06352[];
+extern VTBL_ENTRY _ZTV7ee06352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06352[];
+static VTBL_ENTRY alt_thunk_names1255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06352 = { "ee06352", // class name
+ bases_ee06352, 4,
+ &(vtc_ee06352[0]), // expected_vtbl_contents
+ &(vtt_ee06352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16352 : virtual dd6352 {
+ int e;
+ ~ee16352(); // tgen
+ ee16352(); // tgen
+};
+//SIG(1 ee16352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee16352 ::~ee16352(){ note_dtor("ee16352", this);} // tgen
+ee16352 ::ee16352(){ note_ctor("ee16352", this);} // tgen
+
+static void Test_ee16352()
+{
+ extern Class_Descriptor cd_ee16352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16352, buf);
+ ee16352 *dp, &lv = *(dp=new (buf) ee16352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee16352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(32,20), "ee16352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), ABISELECT(16,8), "ee16352");
+ check_base_class_offset(lv, (dd6352*), ABISELECT(16,8), "ee16352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16352.e");
+ test_class_info(&lv, &cd_ee16352);
+ dp->~ee16352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16352(Test_ee16352, "ee16352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16352C1Ev();
+extern void _ZN7ee16352D1Ev();
+Name_Map name_map_ee16352[] = {
+ NSPAIR(_ZN7ee16352C1Ev),
+ NSPAIR(_ZN7ee16352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee16352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16352[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee16352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee16352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee16352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee16352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee16352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee16352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee16352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee16352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee16352[] = {
+ {&(_ZTV7ee16352[5]), 5,24},
+ {&(_ZTV7ee16352[11]), 11,24},
+ {&(_ZTV7ee16352[17]), 17,24},
+ {&(_ZTV7ee16352[22]), 22,24},
+ {&(_tg__ZTV6dd6352__7ee16352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee16352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee16352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee16352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee16352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee16352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee16352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee16352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16352[];
+extern VTBL_ENTRY _ZTV7ee16352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16352[];
+static VTBL_ENTRY alt_thunk_names1256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16352 = { "ee16352", // class name
+ bases_ee16352, 4,
+ &(vtc_ee16352[0]), // expected_vtbl_contents
+ &(vtt_ee16352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26352 : dd6352 {
+ int e;
+ virtual void foo(); // _ZN7ee263523fooEv
+ ~ee26352(); // tgen
+ ee26352(); // tgen
+};
+//SIG(1 ee26352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26352 ::foo(){vfunc_called(this, "_ZN7ee263523fooEv");}
+ee26352 ::~ee26352(){ note_dtor("ee26352", this);} // tgen
+ee26352 ::ee26352(){ note_ctor("ee26352", this);} // tgen
+
+static void Test_ee26352()
+{
+ extern Class_Descriptor cd_ee26352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26352, buf);
+ ee26352 *dp, &lv = *(dp=new (buf) ee26352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee26352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(24,16), "ee26352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), 0, "ee26352");
+ check_base_class_offset(lv, (dd6352*), 0, "ee26352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26352.e");
+ test_class_info(&lv, &cd_ee26352);
+ dp->~ee26352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26352(Test_ee26352, "ee26352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26352C1Ev();
+extern void _ZN7ee26352D1Ev();
+Name_Map name_map_ee26352[] = {
+ NSPAIR(_ZN7ee26352C1Ev),
+ NSPAIR(_ZN7ee26352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee26352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26352[];
+extern void _ZN7ee263523fooEv();
+extern void _ZN6dd63523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee263523fooEv,_ZTv0_n12_N7ee263523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee263523fooEv,_ZThn24_N7ee263523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26352[0]),
+ (VTBL_ENTRY)&_ZN7ee263523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee263523fooEv,_ZTv0_n12_N7ee263523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee26352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee26352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee26352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee26352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee26352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee26352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee26352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee26352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee26352[] = {
+ {&(_ZTV7ee26352[4]), 4,17},
+ {&(_tg__ZTV6dd6352__7ee26352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee26352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee26352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee26352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee26352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee26352[4]), 4,6},
+ {&(_ZTV7ee26352[10]), 10,17},
+ {&(_ZTV7ee26352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee26352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee26352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee26352[];
+extern VTBL_ENTRY _ZTV7ee26352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26352[];
+static VTBL_ENTRY alt_thunk_names1257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee263523fooEv,_ZTv0_n12_N7ee263523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee263523fooEv,_ZThn24_N7ee263523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26352 = { "ee26352", // class name
+ bases_ee26352, 4,
+ &(vtc_ee26352[0]), // expected_vtbl_contents
+ &(vtt_ee26352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36352 : virtual dd6352 {
+ int e;
+ virtual void foo(); // _ZN7ee363523fooEv
+ ~ee36352(); // tgen
+ ee36352(); // tgen
+};
+//SIG(1 ee36352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36352 ::foo(){vfunc_called(this, "_ZN7ee363523fooEv");}
+ee36352 ::~ee36352(){ note_dtor("ee36352", this);} // tgen
+ee36352 ::ee36352(){ note_ctor("ee36352", this);} // tgen
+
+static void Test_ee36352()
+{
+ extern Class_Descriptor cd_ee36352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36352, buf);
+ ee36352 *dp, &lv = *(dp=new (buf) ee36352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee36352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(32,20), "ee36352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), ABISELECT(16,8), "ee36352");
+ check_base_class_offset(lv, (dd6352*), ABISELECT(16,8), "ee36352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36352.e");
+ test_class_info(&lv, &cd_ee36352);
+ dp->~ee36352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36352(Test_ee36352, "ee36352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36352C1Ev();
+extern void _ZN7ee36352D1Ev();
+Name_Map name_map_ee36352[] = {
+ NSPAIR(_ZN7ee36352C1Ev),
+ NSPAIR(_ZN7ee36352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee36352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36352[];
+extern void _ZN7ee363523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee363523fooEv,_ZTv0_n20_N7ee363523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee363523fooEv,_ZThn8_N7ee363523fooEv)() __attribute__((weak));
+extern void _ZN6dd63523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee363523fooEv,_ZTv0_n12_N7ee363523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee363523fooEv,_ZThn28_N7ee363523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36352[0]),
+ (VTBL_ENTRY)&_ZN7ee363523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee363523fooEv,_ZTv0_n20_N7ee363523fooEv),
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee363523fooEv,_ZTv0_n12_N7ee363523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee36352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee36352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee36352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee36352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee36352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee36352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee36352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee36352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee36352[] = {
+ {&(_ZTV7ee36352[5]), 5,25},
+ {&(_ZTV7ee36352[12]), 12,25},
+ {&(_ZTV7ee36352[18]), 18,25},
+ {&(_ZTV7ee36352[23]), 23,25},
+ {&(_tg__ZTV6dd6352__7ee36352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee36352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee36352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee36352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee36352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee36352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee36352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee36352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36352[];
+extern VTBL_ENTRY _ZTV7ee36352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36352[];
+static VTBL_ENTRY alt_thunk_names1258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee363523fooEv,_ZTv0_n12_N7ee363523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee363523fooEv,_ZThn28_N7ee363523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee363523fooEv,_ZTv0_n20_N7ee363523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee363523fooEv,_ZThn8_N7ee363523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36352 = { "ee36352", // class name
+ bases_ee36352, 4,
+ &(vtc_ee36352[0]), // expected_vtbl_contents
+ &(vtt_ee36352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36352),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46352 : dd6352 {
+ int e;
+ virtual void bar(); // _ZN7ee463523barEv
+ ~ee46352(); // tgen
+ ee46352(); // tgen
+};
+//SIG(1 ee46352) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46352 ::bar(){vfunc_called(this, "_ZN7ee463523barEv");}
+ee46352 ::~ee46352(){ note_dtor("ee46352", this);} // tgen
+ee46352 ::ee46352(){ note_ctor("ee46352", this);} // tgen
+
+static void Test_ee46352()
+{
+ extern Class_Descriptor cd_ee46352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46352, buf);
+ ee46352 *dp, &lv = *(dp=new (buf) ee46352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee46352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(24,16), "ee46352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), 0, "ee46352");
+ check_base_class_offset(lv, (dd6352*), 0, "ee46352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46352.e");
+ test_class_info(&lv, &cd_ee46352);
+ dp->~ee46352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46352(Test_ee46352, "ee46352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46352C1Ev();
+extern void _ZN7ee46352D1Ev();
+Name_Map name_map_ee46352[] = {
+ NSPAIR(_ZN7ee46352C1Ev),
+ NSPAIR(_ZN7ee46352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee46352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN7ee463523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee463523barEv,_ZTv0_n16_N7ee463523barEv)();
+extern void ABISELECT(_ZThn24_N7ee463523barEv,_ZThn16_N7ee463523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee463523barEv,_ZTv0_n16_N7ee463523barEv)();
+extern void ABISELECT(_ZThn40_N7ee463523barEv,_ZThn24_N7ee463523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN7ee463523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463523barEv,_ZTv0_n16_N7ee463523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee463523barEv,_ZTv0_n16_N7ee463523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee46352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee46352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee46352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee46352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee46352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee46352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee46352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee46352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee46352[] = {
+ {&(_ZTV7ee46352[4]), 4,17},
+ {&(_tg__ZTV6dd6352__7ee46352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee46352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee46352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee46352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee46352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee46352[4]), 4,6},
+ {&(_ZTV7ee46352[10]), 10,17},
+ {&(_ZTV7ee46352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee46352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee46352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee46352[];
+extern VTBL_ENTRY _ZTV7ee46352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46352[];
+static VTBL_ENTRY alt_thunk_names1259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee463523barEv,_ZTv0_n16_N7ee463523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee463523barEv,_ZThn24_N7ee463523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee463523barEv,_ZThn16_N7ee463523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46352 = { "ee46352", // class name
+ bases_ee46352, 4,
+ &(vtc_ee46352[0]), // expected_vtbl_contents
+ &(vtt_ee46352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56352 : virtual dd6352 {
+ int e;
+ virtual void bar(); // _ZN7ee563523barEv
+ ~ee56352(); // tgen
+ ee56352(); // tgen
+};
+//SIG(1 ee56352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56352 ::bar(){vfunc_called(this, "_ZN7ee563523barEv");}
+ee56352 ::~ee56352(){ note_dtor("ee56352", this);} // tgen
+ee56352 ::ee56352(){ note_ctor("ee56352", this);} // tgen
+
+static void Test_ee56352()
+{
+ extern Class_Descriptor cd_ee56352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56352, buf);
+ ee56352 *dp, &lv = *(dp=new (buf) ee56352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee56352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(32,20), "ee56352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), ABISELECT(16,8), "ee56352");
+ check_base_class_offset(lv, (dd6352*), ABISELECT(16,8), "ee56352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56352.e");
+ test_class_info(&lv, &cd_ee56352);
+ dp->~ee56352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56352(Test_ee56352, "ee56352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56352C1Ev();
+extern void _ZN7ee56352D1Ev();
+Name_Map name_map_ee56352[] = {
+ NSPAIR(_ZN7ee56352C1Ev),
+ NSPAIR(_ZN7ee56352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee56352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56352[];
+extern void _ZN7ee563523barEv();
+extern void _ZN6dd63523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee563523barEv,_ZTv0_n24_N7ee563523barEv)();
+extern void ABISELECT(_ZThn16_N7ee563523barEv,_ZThn8_N7ee563523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563523barEv,_ZTv0_n16_N7ee563523barEv)();
+extern void ABISELECT(_ZThn32_N7ee563523barEv,_ZThn20_N7ee563523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee563523barEv,_ZTv0_n16_N7ee563523barEv)();
+extern void ABISELECT(_ZThn48_N7ee563523barEv,_ZThn28_N7ee563523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56352[0]),
+ (VTBL_ENTRY)&_ZN7ee563523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee563523barEv,_ZTv0_n24_N7ee563523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563523barEv,_ZTv0_n16_N7ee563523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee563523barEv,_ZTv0_n16_N7ee563523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee56352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee56352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee56352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee56352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee56352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee56352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee56352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee56352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee56352[] = {
+ {&(_ZTV7ee56352[5]), 5,25},
+ {&(_ZTV7ee56352[12]), 12,25},
+ {&(_ZTV7ee56352[18]), 18,25},
+ {&(_ZTV7ee56352[23]), 23,25},
+ {&(_tg__ZTV6dd6352__7ee56352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee56352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee56352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee56352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee56352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee56352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee56352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee56352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56352[];
+extern VTBL_ENTRY _ZTV7ee56352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56352[];
+static VTBL_ENTRY alt_thunk_names1260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee563523barEv,_ZTv0_n16_N7ee563523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee563523barEv,_ZThn28_N7ee563523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee563523barEv,_ZThn20_N7ee563523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee563523barEv,_ZTv0_n24_N7ee563523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee563523barEv,_ZThn8_N7ee563523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56352 = { "ee56352", // class name
+ bases_ee56352, 4,
+ &(vtc_ee56352[0]), // expected_vtbl_contents
+ &(vtt_ee56352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56352),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66352 : dd6352 {
+ int e;
+ virtual void foo(); // _ZN7ee663523fooEv
+ virtual void bar(); // _ZN7ee663523barEv
+ ~ee66352(); // tgen
+ ee66352(); // tgen
+};
+//SIG(1 ee66352) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66352 ::foo(){vfunc_called(this, "_ZN7ee663523fooEv");}
+void ee66352 ::bar(){vfunc_called(this, "_ZN7ee663523barEv");}
+ee66352 ::~ee66352(){ note_dtor("ee66352", this);} // tgen
+ee66352 ::ee66352(){ note_ctor("ee66352", this);} // tgen
+
+static void Test_ee66352()
+{
+ extern Class_Descriptor cd_ee66352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66352, buf);
+ ee66352 *dp, &lv = *(dp=new (buf) ee66352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee66352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(24,16), "ee66352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), 0, "ee66352");
+ check_base_class_offset(lv, (dd6352*), 0, "ee66352");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66352.e");
+ test_class_info(&lv, &cd_ee66352);
+ dp->~ee66352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66352(Test_ee66352, "ee66352", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66352C1Ev();
+extern void _ZN7ee66352D1Ev();
+Name_Map name_map_ee66352[] = {
+ NSPAIR(_ZN7ee66352C1Ev),
+ NSPAIR(_ZN7ee66352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee66352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66352[];
+extern void _ZN7ee663523fooEv();
+extern void _ZN7ee663523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee663523barEv,_ZTv0_n16_N7ee663523barEv)();
+extern void ABISELECT(_ZThn24_N7ee663523barEv,_ZThn16_N7ee663523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee663523fooEv,_ZTv0_n12_N7ee663523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee663523fooEv,_ZThn24_N7ee663523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee663523barEv,_ZTv0_n16_N7ee663523barEv)();
+extern void ABISELECT(_ZThn40_N7ee663523barEv,_ZThn24_N7ee663523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66352[0]),
+ (VTBL_ENTRY)&_ZN7ee663523fooEv,
+ (VTBL_ENTRY)&_ZN7ee663523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663523barEv,_ZTv0_n16_N7ee663523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee663523fooEv,_ZTv0_n12_N7ee663523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee663523barEv,_ZTv0_n16_N7ee663523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee66352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee66352[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee66352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee66352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee66352[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee66352[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee66352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee66352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee66352[] = {
+ {&(_ZTV7ee66352[4]), 4,17},
+ {&(_tg__ZTV6dd6352__7ee66352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee66352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee66352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee66352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee66352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee66352[4]), 4,6},
+ {&(_ZTV7ee66352[10]), 10,17},
+ {&(_ZTV7ee66352[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee66352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee66352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee66352[];
+extern VTBL_ENTRY _ZTV7ee66352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66352[];
+static VTBL_ENTRY alt_thunk_names1261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523fooEv,_ZThn24_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd63523barEv,_ZThn24_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd63523barEv,_ZThn16_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc3523fooEv,_ZThn24_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee663523fooEv,_ZTv0_n12_N7ee663523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee663523fooEv,_ZThn24_N7ee663523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee663523barEv,_ZTv0_n16_N7ee663523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee663523barEv,_ZThn24_N7ee663523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee663523barEv,_ZThn16_N7ee663523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66352 = { "ee66352", // class name
+ bases_ee66352, 4,
+ &(vtc_ee66352[0]), // expected_vtbl_contents
+ &(vtt_ee66352[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66352),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66352),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76352 : virtual dd6352 {
+ int e;
+ virtual void foo(); // _ZN7ee763523fooEv
+ virtual void bar(); // _ZN7ee763523barEv
+ ~ee76352(); // tgen
+ ee76352(); // tgen
+};
+//SIG(1 ee76352) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76352 ::foo(){vfunc_called(this, "_ZN7ee763523fooEv");}
+void ee76352 ::bar(){vfunc_called(this, "_ZN7ee763523barEv");}
+ee76352 ::~ee76352(){ note_dtor("ee76352", this);} // tgen
+ee76352 ::ee76352(){ note_ctor("ee76352", this);} // tgen
+
+static void Test_ee76352()
+{
+ extern Class_Descriptor cd_ee76352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76352, buf);
+ ee76352 *dp, &lv = *(dp=new (buf) ee76352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee76352");
+ check_base_class_offset(lv, (bb52*)(cc352*)(dd6352*), ABISELECT(32,20), "ee76352");
+ check_base_class_offset(lv, (cc352*)(dd6352*), ABISELECT(16,8), "ee76352");
+ check_base_class_offset(lv, (dd6352*), ABISELECT(16,8), "ee76352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76352.e");
+ test_class_info(&lv, &cd_ee76352);
+ dp->~ee76352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76352(Test_ee76352, "ee76352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76352C1Ev();
+extern void _ZN7ee76352D1Ev();
+Name_Map name_map_ee76352[] = {
+ NSPAIR(_ZN7ee76352C1Ev),
+ NSPAIR(_ZN7ee76352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd6352;
+extern VTBL_ENTRY _ZTI6dd6352[];
+extern VTBL_ENTRY _ZTV6dd6352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6352[];
+static Base_Class bases_ee76352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76352[];
+extern void _ZN7ee763523fooEv();
+extern void _ZN7ee763523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee763523fooEv,_ZTv0_n20_N7ee763523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee763523fooEv,_ZThn8_N7ee763523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee763523barEv,_ZTv0_n24_N7ee763523barEv)();
+extern void ABISELECT(_ZThn16_N7ee763523barEv,_ZThn8_N7ee763523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763523barEv,_ZTv0_n16_N7ee763523barEv)();
+extern void ABISELECT(_ZThn32_N7ee763523barEv,_ZThn20_N7ee763523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee763523fooEv,_ZTv0_n12_N7ee763523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee763523fooEv,_ZThn28_N7ee763523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee763523barEv,_ZTv0_n16_N7ee763523barEv)();
+extern void ABISELECT(_ZThn48_N7ee763523barEv,_ZThn28_N7ee763523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76352[0]),
+ (VTBL_ENTRY)&_ZN7ee763523fooEv,
+ (VTBL_ENTRY)&_ZN7ee763523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee763523fooEv,_ZTv0_n20_N7ee763523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee763523barEv,_ZTv0_n24_N7ee763523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763523barEv,_ZTv0_n16_N7ee763523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee763523fooEv,_ZTv0_n12_N7ee763523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee763523barEv,_ZTv0_n16_N7ee763523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76352[];
+extern void _ZN6dd63523fooEv();
+extern void _ZN6dd63523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6352__7ee76352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&_ZN6dd63523fooEv,
+ (VTBL_ENTRY)&_ZN6dd63523barEv,
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc3526dd6352__7ee76352[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc3526dd6352__7ee76352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc3526dd6352__7ee76352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6352__7ee76352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv)();
+extern void ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6352__7ee76352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee76352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee76352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee76352[] = {
+ {&(_ZTV7ee76352[5]), 5,26},
+ {&(_ZTV7ee76352[13]), 13,26},
+ {&(_ZTV7ee76352[19]), 19,26},
+ {&(_ZTV7ee76352[24]), 24,26},
+ {&(_tg__ZTV6dd6352__7ee76352[4]), 4,6},
+ {&(_tg__ZTV5cc3526dd6352__7ee76352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc3526dd6352__7ee76352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc3526dd6352__7ee76352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6352__7ee76352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6352__7ee76352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee76352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee76352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76352[];
+extern VTBL_ENTRY _ZTV7ee76352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76352[];
+static VTBL_ENTRY alt_thunk_names1262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd63523fooEv,_ZTv0_n12_N6dd63523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523fooEv,_ZThn20_N6dd63523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd63523barEv,_ZTv0_n16_N6dd63523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd63523barEv,_ZThn20_N6dd63523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd63523barEv,_ZThn12_N6dd63523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn20_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee763523fooEv,_ZTv0_n12_N7ee763523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee763523fooEv,_ZThn28_N7ee763523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee763523barEv,_ZTv0_n16_N7ee763523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee763523barEv,_ZThn28_N7ee763523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee763523barEv,_ZThn20_N7ee763523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee763523barEv,_ZTv0_n24_N7ee763523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763523barEv,_ZThn8_N7ee763523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee763523fooEv,_ZTv0_n20_N7ee763523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee763523fooEv,_ZThn8_N7ee763523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76352 = { "ee76352", // class name
+ bases_ee76352, 4,
+ &(vtc_ee76352[0]), // expected_vtbl_contents
+ &(vtt_ee76352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76352),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76352),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7352 : virtual cc352 {
+ int d;
+ virtual void bar(); // _ZN6dd73523barEv
+ virtual void foo(); // _ZN6dd73523fooEv
+ ~dd7352(); // tgen
+ dd7352(); // tgen
+};
+//SIG(-1 dd7352) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void dd7352 ::bar(){vfunc_called(this, "_ZN6dd73523barEv");}
+void dd7352 ::foo(){vfunc_called(this, "_ZN6dd73523fooEv");}
+dd7352 ::~dd7352(){ note_dtor("dd7352", this);} // tgen
+dd7352 ::dd7352(){ note_ctor("dd7352", this);} // tgen
+
+static void Test_dd7352()
+{
+ extern Class_Descriptor cd_dd7352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7352, buf);
+ dd7352 *dp, &lv = *(dp=new (buf) dd7352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd7352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,16), "dd7352");
+ check_base_class_offset(lv, (cc352*), ABISELECT(16,8), "dd7352");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7352.d");
+ test_class_info(&lv, &cd_dd7352);
+ dp->~dd7352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7352(Test_dd7352, "dd7352", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7352C1Ev();
+extern void _ZN6dd7352D1Ev();
+Name_Map name_map_dd7352[] = {
+ NSPAIR(_ZN6dd7352C1Ev),
+ NSPAIR(_ZN6dd7352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+static Base_Class bases_dd7352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__6dd7352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__6dd7352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd7352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7352[] = {
+ {&(_ZTV6dd7352[5]), 5,24},
+ {&(_ZTV6dd7352[12]), 12,24},
+ {&(_ZTV6dd7352[17]), 17,24},
+ {&(_ZTV6dd7352[22]), 22,24},
+ {&(_tg__ZTV5cc352__6dd7352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__6dd7352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__6dd7352[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd7352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd7352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static VTBL_ENTRY alt_thunk_names1263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7352 = { "dd7352", // class name
+ bases_dd7352, 3,
+ &(vtc_dd7352[0]), // expected_vtbl_contents
+ &(vtt_dd7352[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7352),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07352 : dd7352 {
+ int e;
+ ~ee07352(); // tgen
+ ee07352(); // tgen
+};
+//SIG(1 ee07352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee07352 ::~ee07352(){ note_dtor("ee07352", this);} // tgen
+ee07352 ::ee07352(){ note_ctor("ee07352", this);} // tgen
+
+static void Test_ee07352()
+{
+ extern Class_Descriptor cd_ee07352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07352, buf);
+ ee07352 *dp, &lv = *(dp=new (buf) ee07352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee07352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee07352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(16,12), "ee07352");
+ check_base_class_offset(lv, (dd7352*), 0, "ee07352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07352.e");
+ test_class_info(&lv, &cd_ee07352);
+ dp->~ee07352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07352(Test_ee07352, "ee07352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07352C1Ev();
+extern void _ZN7ee07352D1Ev();
+Name_Map name_map_ee07352[] = {
+ NSPAIR(_ZN7ee07352C1Ev),
+ NSPAIR(_ZN7ee07352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee07352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee07352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee07352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee07352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee07352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee07352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee07352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee07352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee07352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee07352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07352[] = {
+ {&(_ZTV7ee07352[5]), 5,24},
+ {&(_tg__ZTV6dd7352__7ee07352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee07352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee07352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee07352[4]), 4,6},
+ {&(_ZTV7ee07352[12]), 12,24},
+ {&(_ZTV7ee07352[17]), 17,24},
+ {&(_ZTV7ee07352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee07352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee07352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee07352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee07352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee07352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07352[];
+extern VTBL_ENTRY _ZTV7ee07352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07352[];
+static VTBL_ENTRY alt_thunk_names1264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07352 = { "ee07352", // class name
+ bases_ee07352, 4,
+ &(vtc_ee07352[0]), // expected_vtbl_contents
+ &(vtt_ee07352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17352 : virtual dd7352 {
+ int e;
+ ~ee17352(); // tgen
+ ee17352(); // tgen
+};
+//SIG(1 ee17352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+ee17352 ::~ee17352(){ note_dtor("ee17352", this);} // tgen
+ee17352 ::ee17352(){ note_ctor("ee17352", this);} // tgen
+
+static void Test_ee17352()
+{
+ extern Class_Descriptor cd_ee17352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17352, buf);
+ ee17352 *dp, &lv = *(dp=new (buf) ee17352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee17352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee17352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(32,16), "ee17352");
+ check_base_class_offset(lv, (dd7352*), ABISELECT(16,8), "ee17352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17352.e");
+ test_class_info(&lv, &cd_ee17352);
+ dp->~ee17352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17352(Test_ee17352, "ee17352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17352C1Ev();
+extern void _ZN7ee17352D1Ev();
+Name_Map name_map_ee17352[] = {
+ NSPAIR(_ZN7ee17352C1Ev),
+ NSPAIR(_ZN7ee17352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee17352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17352[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee17352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee17352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee17352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee17352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee17352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee17352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee17352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee17352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee17352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17352[] = {
+ {&(_ZTV7ee17352[6]), 6,32},
+ {&(_ZTV7ee17352[13]), 13,32},
+ {&(_ZTV7ee17352[20]), 20,32},
+ {&(_ZTV7ee17352[25]), 25,32},
+ {&(_ZTV7ee17352[30]), 30,32},
+ {&(_tg__ZTV6dd7352__7ee17352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee17352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee17352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee17352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee17352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee17352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee17352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee17352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee17352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17352[];
+extern VTBL_ENTRY _ZTV7ee17352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17352[];
+static VTBL_ENTRY alt_thunk_names1265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17352 = { "ee17352", // class name
+ bases_ee17352, 4,
+ &(vtc_ee17352[0]), // expected_vtbl_contents
+ &(vtt_ee17352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17352),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27352 : dd7352 {
+ int e;
+ virtual void foo(); // _ZN7ee273523fooEv
+ ~ee27352(); // tgen
+ ee27352(); // tgen
+};
+//SIG(1 ee27352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27352 ::foo(){vfunc_called(this, "_ZN7ee273523fooEv");}
+ee27352 ::~ee27352(){ note_dtor("ee27352", this);} // tgen
+ee27352 ::ee27352(){ note_ctor("ee27352", this);} // tgen
+
+static void Test_ee27352()
+{
+ extern Class_Descriptor cd_ee27352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27352, buf);
+ ee27352 *dp, &lv = *(dp=new (buf) ee27352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee27352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee27352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(16,12), "ee27352");
+ check_base_class_offset(lv, (dd7352*), 0, "ee27352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27352.e");
+ test_class_info(&lv, &cd_ee27352);
+ dp->~ee27352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27352(Test_ee27352, "ee27352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27352C1Ev();
+extern void _ZN7ee27352D1Ev();
+Name_Map name_map_ee27352[] = {
+ NSPAIR(_ZN7ee27352C1Ev),
+ NSPAIR(_ZN7ee27352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee27352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN7ee273523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee273523fooEv,_ZTv0_n20_N7ee273523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee273523fooEv,_ZThn12_N7ee273523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee273523fooEv,_ZTv0_n12_N7ee273523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee273523fooEv,_ZThn28_N7ee273523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN7ee273523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee273523fooEv,_ZTv0_n20_N7ee273523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee273523fooEv,_ZTv0_n12_N7ee273523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee27352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee27352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee27352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee27352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee27352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee27352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee27352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee27352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee27352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27352[] = {
+ {&(_ZTV7ee27352[5]), 5,24},
+ {&(_tg__ZTV6dd7352__7ee27352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee27352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee27352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee27352[4]), 4,6},
+ {&(_ZTV7ee27352[12]), 12,24},
+ {&(_ZTV7ee27352[17]), 17,24},
+ {&(_ZTV7ee27352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee27352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee27352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee27352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee27352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee27352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27352[];
+extern VTBL_ENTRY _ZTV7ee27352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27352[];
+static VTBL_ENTRY alt_thunk_names1266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee273523fooEv,_ZTv0_n12_N7ee273523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee273523fooEv,_ZThn28_N7ee273523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee273523fooEv,_ZTv0_n20_N7ee273523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee273523fooEv,_ZThn12_N7ee273523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27352 = { "ee27352", // class name
+ bases_ee27352, 4,
+ &(vtc_ee27352[0]), // expected_vtbl_contents
+ &(vtt_ee27352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37352 : virtual dd7352 {
+ int e;
+ virtual void foo(); // _ZN7ee373523fooEv
+ ~ee37352(); // tgen
+ ee37352(); // tgen
+};
+//SIG(1 ee37352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37352 ::foo(){vfunc_called(this, "_ZN7ee373523fooEv");}
+ee37352 ::~ee37352(){ note_dtor("ee37352", this);} // tgen
+ee37352 ::ee37352(){ note_ctor("ee37352", this);} // tgen
+
+static void Test_ee37352()
+{
+ extern Class_Descriptor cd_ee37352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37352, buf);
+ ee37352 *dp, &lv = *(dp=new (buf) ee37352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee37352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee37352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(32,16), "ee37352");
+ check_base_class_offset(lv, (dd7352*), ABISELECT(16,8), "ee37352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37352.e");
+ test_class_info(&lv, &cd_ee37352);
+ dp->~ee37352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37352(Test_ee37352, "ee37352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37352C1Ev();
+extern void _ZN7ee37352D1Ev();
+Name_Map name_map_ee37352[] = {
+ NSPAIR(_ZN7ee37352C1Ev),
+ NSPAIR(_ZN7ee37352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee37352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37352[];
+extern void _ZN7ee373523fooEv();
+extern void _ZN6dd73523barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee373523fooEv,_ZTv0_n28_N7ee373523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee373523fooEv,_ZThn8_N7ee373523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee373523fooEv,_ZTv0_n20_N7ee373523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee373523fooEv,_ZThn16_N7ee373523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee373523fooEv,_ZTv0_n12_N7ee373523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee373523fooEv,_ZThn32_N7ee373523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37352[0]),
+ (VTBL_ENTRY)&_ZN7ee373523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee373523fooEv,_ZTv0_n28_N7ee373523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee373523fooEv,_ZTv0_n20_N7ee373523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee373523fooEv,_ZTv0_n12_N7ee373523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee37352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee37352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee37352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee37352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee37352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee37352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee37352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee37352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee37352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37352[] = {
+ {&(_ZTV7ee37352[6]), 6,33},
+ {&(_ZTV7ee37352[14]), 14,33},
+ {&(_ZTV7ee37352[21]), 21,33},
+ {&(_ZTV7ee37352[26]), 26,33},
+ {&(_ZTV7ee37352[31]), 31,33},
+ {&(_tg__ZTV6dd7352__7ee37352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee37352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee37352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee37352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee37352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee37352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee37352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee37352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee37352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37352[];
+extern VTBL_ENTRY _ZTV7ee37352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37352[];
+static VTBL_ENTRY alt_thunk_names1267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee373523fooEv,_ZTv0_n12_N7ee373523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee373523fooEv,_ZThn32_N7ee373523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee373523fooEv,_ZTv0_n20_N7ee373523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee373523fooEv,_ZThn16_N7ee373523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee373523fooEv,_ZTv0_n28_N7ee373523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee373523fooEv,_ZThn8_N7ee373523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37352 = { "ee37352", // class name
+ bases_ee37352, 4,
+ &(vtc_ee37352[0]), // expected_vtbl_contents
+ &(vtt_ee37352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37352),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47352 : dd7352 {
+ int e;
+ virtual void bar(); // _ZN7ee473523barEv
+ ~ee47352(); // tgen
+ ee47352(); // tgen
+};
+//SIG(1 ee47352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47352 ::bar(){vfunc_called(this, "_ZN7ee473523barEv");}
+ee47352 ::~ee47352(){ note_dtor("ee47352", this);} // tgen
+ee47352 ::ee47352(){ note_ctor("ee47352", this);} // tgen
+
+static void Test_ee47352()
+{
+ extern Class_Descriptor cd_ee47352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47352, buf);
+ ee47352 *dp, &lv = *(dp=new (buf) ee47352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee47352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee47352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(16,12), "ee47352");
+ check_base_class_offset(lv, (dd7352*), 0, "ee47352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47352.e");
+ test_class_info(&lv, &cd_ee47352);
+ dp->~ee47352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47352(Test_ee47352, "ee47352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47352C1Ev();
+extern void _ZN7ee47352D1Ev();
+Name_Map name_map_ee47352[] = {
+ NSPAIR(_ZN7ee47352C1Ev),
+ NSPAIR(_ZN7ee47352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee47352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47352[];
+extern void _ZN7ee473523barEv();
+extern void _ZN6dd73523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473523barEv,_ZTv0_n16_N7ee473523barEv)();
+extern void ABISELECT(_ZThn32_N7ee473523barEv,_ZThn20_N7ee473523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee473523barEv,_ZTv0_n16_N7ee473523barEv)();
+extern void ABISELECT(_ZThn48_N7ee473523barEv,_ZThn28_N7ee473523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47352[0]),
+ (VTBL_ENTRY)&_ZN7ee473523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473523barEv,_ZTv0_n16_N7ee473523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee473523barEv,_ZTv0_n16_N7ee473523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee47352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee47352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee47352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee47352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee47352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee47352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee47352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee47352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee47352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47352[] = {
+ {&(_ZTV7ee47352[5]), 5,24},
+ {&(_tg__ZTV6dd7352__7ee47352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee47352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee47352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee47352[4]), 4,6},
+ {&(_ZTV7ee47352[12]), 12,24},
+ {&(_ZTV7ee47352[17]), 17,24},
+ {&(_ZTV7ee47352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee47352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee47352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee47352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee47352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee47352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47352[];
+extern VTBL_ENTRY _ZTV7ee47352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47352[];
+static VTBL_ENTRY alt_thunk_names1268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee473523barEv,_ZTv0_n16_N7ee473523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee473523barEv,_ZThn28_N7ee473523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee473523barEv,_ZThn20_N7ee473523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47352 = { "ee47352", // class name
+ bases_ee47352, 4,
+ &(vtc_ee47352[0]), // expected_vtbl_contents
+ &(vtt_ee47352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57352 : virtual dd7352 {
+ int e;
+ virtual void bar(); // _ZN7ee573523barEv
+ ~ee57352(); // tgen
+ ee57352(); // tgen
+};
+//SIG(1 ee57352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57352 ::bar(){vfunc_called(this, "_ZN7ee573523barEv");}
+ee57352 ::~ee57352(){ note_dtor("ee57352", this);} // tgen
+ee57352 ::ee57352(){ note_ctor("ee57352", this);} // tgen
+
+static void Test_ee57352()
+{
+ extern Class_Descriptor cd_ee57352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57352, buf);
+ ee57352 *dp, &lv = *(dp=new (buf) ee57352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee57352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee57352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(32,16), "ee57352");
+ check_base_class_offset(lv, (dd7352*), ABISELECT(16,8), "ee57352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57352.e");
+ test_class_info(&lv, &cd_ee57352);
+ dp->~ee57352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57352(Test_ee57352, "ee57352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57352C1Ev();
+extern void _ZN7ee57352D1Ev();
+Name_Map name_map_ee57352[] = {
+ NSPAIR(_ZN7ee57352C1Ev),
+ NSPAIR(_ZN7ee57352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee57352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57352[];
+extern void _ZN7ee573523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee573523barEv,_ZTv0_n24_N7ee573523barEv)();
+extern void ABISELECT(_ZThn16_N7ee573523barEv,_ZThn8_N7ee573523barEv)() __attribute__((weak));
+extern void _ZN6dd73523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573523barEv,_ZTv0_n16_N7ee573523barEv)();
+extern void ABISELECT(_ZThn48_N7ee573523barEv,_ZThn24_N7ee573523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee573523barEv,_ZTv0_n16_N7ee573523barEv)();
+extern void ABISELECT(_ZThn64_N7ee573523barEv,_ZThn32_N7ee573523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57352[0]),
+ (VTBL_ENTRY)&_ZN7ee573523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee573523barEv,_ZTv0_n24_N7ee573523barEv),
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573523barEv,_ZTv0_n16_N7ee573523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee573523barEv,_ZTv0_n16_N7ee573523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee57352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee57352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee57352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee57352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee57352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee57352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee57352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee57352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee57352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57352[] = {
+ {&(_ZTV7ee57352[6]), 6,33},
+ {&(_ZTV7ee57352[14]), 14,33},
+ {&(_ZTV7ee57352[21]), 21,33},
+ {&(_ZTV7ee57352[26]), 26,33},
+ {&(_ZTV7ee57352[31]), 31,33},
+ {&(_tg__ZTV6dd7352__7ee57352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee57352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee57352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee57352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee57352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee57352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee57352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee57352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee57352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57352[];
+extern VTBL_ENTRY _ZTV7ee57352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57352[];
+static VTBL_ENTRY alt_thunk_names1269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee573523barEv,_ZTv0_n16_N7ee573523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee573523barEv,_ZThn32_N7ee573523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee573523barEv,_ZThn24_N7ee573523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee573523barEv,_ZTv0_n24_N7ee573523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee573523barEv,_ZThn8_N7ee573523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57352 = { "ee57352", // class name
+ bases_ee57352, 4,
+ &(vtc_ee57352[0]), // expected_vtbl_contents
+ &(vtt_ee57352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57352),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67352 : dd7352 {
+ int e;
+ virtual void foo(); // _ZN7ee673523fooEv
+ virtual void bar(); // _ZN7ee673523barEv
+ ~ee67352(); // tgen
+ ee67352(); // tgen
+};
+//SIG(1 ee67352) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67352 ::foo(){vfunc_called(this, "_ZN7ee673523fooEv");}
+void ee67352 ::bar(){vfunc_called(this, "_ZN7ee673523barEv");}
+ee67352 ::~ee67352(){ note_dtor("ee67352", this);} // tgen
+ee67352 ::ee67352(){ note_ctor("ee67352", this);} // tgen
+
+static void Test_ee67352()
+{
+ extern Class_Descriptor cd_ee67352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67352, buf);
+ ee67352 *dp, &lv = *(dp=new (buf) ee67352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee67352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(32,20), "ee67352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(16,12), "ee67352");
+ check_base_class_offset(lv, (dd7352*), 0, "ee67352");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67352.e");
+ test_class_info(&lv, &cd_ee67352);
+ dp->~ee67352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67352(Test_ee67352, "ee67352", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67352C1Ev();
+extern void _ZN7ee67352D1Ev();
+Name_Map name_map_ee67352[] = {
+ NSPAIR(_ZN7ee67352C1Ev),
+ NSPAIR(_ZN7ee67352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee67352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67352[];
+extern void _ZN7ee673523barEv();
+extern void _ZN7ee673523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee673523fooEv,_ZTv0_n20_N7ee673523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee673523fooEv,_ZThn12_N7ee673523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673523barEv,_ZTv0_n16_N7ee673523barEv)();
+extern void ABISELECT(_ZThn32_N7ee673523barEv,_ZThn20_N7ee673523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee673523fooEv,_ZTv0_n12_N7ee673523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee673523fooEv,_ZThn28_N7ee673523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee673523barEv,_ZTv0_n16_N7ee673523barEv)();
+extern void ABISELECT(_ZThn48_N7ee673523barEv,_ZThn28_N7ee673523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67352[0]),
+ (VTBL_ENTRY)&_ZN7ee673523barEv,
+ (VTBL_ENTRY)&_ZN7ee673523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee673523fooEv,_ZTv0_n20_N7ee673523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673523barEv,_ZTv0_n16_N7ee673523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee673523fooEv,_ZTv0_n12_N7ee673523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee673523barEv,_ZTv0_n16_N7ee673523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee67352[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee67352[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee67352[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee67352[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee67352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee67352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee67352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee67352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee67352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67352[] = {
+ {&(_ZTV7ee67352[5]), 5,24},
+ {&(_tg__ZTV6dd7352__7ee67352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee67352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee67352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee67352[4]), 4,6},
+ {&(_ZTV7ee67352[12]), 12,24},
+ {&(_ZTV7ee67352[17]), 17,24},
+ {&(_ZTV7ee67352[22]), 22,24},
+ {&(_tg__ZTV5cc352__7ee67352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee67352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee67352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee67352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee67352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67352[];
+extern VTBL_ENTRY _ZTV7ee67352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67352[];
+static VTBL_ENTRY alt_thunk_names1270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn28_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn28_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn20_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn12_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee673523fooEv,_ZTv0_n12_N7ee673523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee673523fooEv,_ZThn28_N7ee673523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee673523barEv,_ZTv0_n16_N7ee673523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee673523barEv,_ZThn28_N7ee673523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee673523barEv,_ZThn20_N7ee673523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee673523fooEv,_ZTv0_n20_N7ee673523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee673523fooEv,_ZThn12_N7ee673523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67352 = { "ee67352", // class name
+ bases_ee67352, 4,
+ &(vtc_ee67352[0]), // expected_vtbl_contents
+ &(vtt_ee67352[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67352),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67352),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67352),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77352 : virtual dd7352 {
+ int e;
+ virtual void foo(); // _ZN7ee773523fooEv
+ virtual void bar(); // _ZN7ee773523barEv
+ ~ee77352(); // tgen
+ ee77352(); // tgen
+};
+//SIG(1 ee77352) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77352 ::foo(){vfunc_called(this, "_ZN7ee773523fooEv");}
+void ee77352 ::bar(){vfunc_called(this, "_ZN7ee773523barEv");}
+ee77352 ::~ee77352(){ note_dtor("ee77352", this);} // tgen
+ee77352 ::ee77352(){ note_ctor("ee77352", this);} // tgen
+
+static void Test_ee77352()
+{
+ extern Class_Descriptor cd_ee77352;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77352, buf);
+ ee77352 *dp, &lv = *(dp=new (buf) ee77352());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77352)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77352)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee77352");
+ check_base_class_offset(lv, (bb52*)(cc352*), ABISELECT(48,24), "ee77352");
+ check_base_class_offset(lv, (cc352*)(dd7352*), ABISELECT(32,16), "ee77352");
+ check_base_class_offset(lv, (dd7352*), ABISELECT(16,8), "ee77352");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77352.e");
+ test_class_info(&lv, &cd_ee77352);
+ dp->~ee77352();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77352(Test_ee77352, "ee77352", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77352C1Ev();
+extern void _ZN7ee77352D1Ev();
+Name_Map name_map_ee77352[] = {
+ NSPAIR(_ZN7ee77352C1Ev),
+ NSPAIR(_ZN7ee77352D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc352;
+extern VTBL_ENTRY _ZTI5cc352[];
+extern VTBL_ENTRY _ZTV5cc352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc352[];
+extern Class_Descriptor cd_dd7352;
+extern VTBL_ENTRY _ZTI6dd7352[];
+extern VTBL_ENTRY _ZTV6dd7352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7352[];
+static Base_Class bases_ee77352[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc352, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7352, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77352[];
+extern void _ZN7ee773523fooEv();
+extern void _ZN7ee773523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee773523barEv,_ZTv0_n24_N7ee773523barEv)();
+extern void ABISELECT(_ZThn16_N7ee773523barEv,_ZThn8_N7ee773523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee773523fooEv,_ZTv0_n28_N7ee773523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee773523fooEv,_ZThn8_N7ee773523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee773523fooEv,_ZTv0_n20_N7ee773523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee773523fooEv,_ZThn16_N7ee773523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773523barEv,_ZTv0_n16_N7ee773523barEv)();
+extern void ABISELECT(_ZThn48_N7ee773523barEv,_ZThn24_N7ee773523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee773523fooEv,_ZTv0_n12_N7ee773523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee773523fooEv,_ZThn32_N7ee773523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee773523barEv,_ZTv0_n16_N7ee773523barEv)();
+extern void ABISELECT(_ZThn64_N7ee773523barEv,_ZThn32_N7ee773523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77352[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77352[0]),
+ (VTBL_ENTRY)&_ZN7ee773523fooEv,
+ (VTBL_ENTRY)&_ZN7ee773523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee773523barEv,_ZTv0_n24_N7ee773523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee773523fooEv,_ZTv0_n28_N7ee773523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee773523fooEv,_ZTv0_n20_N7ee773523fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773523barEv,_ZTv0_n16_N7ee773523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee773523fooEv,_ZTv0_n12_N7ee773523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee773523barEv,_ZTv0_n16_N7ee773523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77352[];
+extern void _ZN6dd73523barEv();
+extern void _ZN6dd73523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7352__7ee77352[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&_ZN6dd73523barEv,
+ (VTBL_ENTRY)&_ZN6dd73523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc352__6dd7352__7ee77352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7352__7ee77352[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv)();
+extern void ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7352__7ee77352[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv),
+};
+extern void _ZN5cc3523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc352__7ee77352[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN5cc3523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc352__7ee77352[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc352__7ee77352[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc352[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee77352[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee77352[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77352[] = {
+ {&(_ZTV7ee77352[6]), 6,34},
+ {&(_ZTV7ee77352[15]), 15,34},
+ {&(_ZTV7ee77352[22]), 22,34},
+ {&(_ZTV7ee77352[27]), 27,34},
+ {&(_ZTV7ee77352[32]), 32,34},
+ {&(_tg__ZTV6dd7352__7ee77352[5]), 5,7},
+ {&(_tg__ZTV5cc352__6dd7352__7ee77352[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7352__7ee77352[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7352__7ee77352[4]), 4,6},
+ {&(_tg__ZTV5cc352__7ee77352[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc352__7ee77352[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc352__7ee77352[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee77352[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee77352[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77352[];
+extern VTBL_ENTRY _ZTV7ee77352[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77352[];
+static VTBL_ENTRY alt_thunk_names1271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc3523fooEv,_ZTv0_n12_N5cc3523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc3523fooEv,_ZThn16_N5cc3523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd73523fooEv,_ZTv0_n12_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523fooEv,_ZThn24_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd73523barEv,_ZTv0_n16_N6dd73523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd73523barEv,_ZThn24_N6dd73523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd73523barEv,_ZThn16_N6dd73523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd73523fooEv,_ZTv0_n20_N6dd73523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd73523fooEv,_ZThn8_N6dd73523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee773523fooEv,_ZTv0_n12_N7ee773523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee773523fooEv,_ZThn32_N7ee773523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee773523barEv,_ZTv0_n16_N7ee773523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee773523barEv,_ZThn32_N7ee773523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee773523barEv,_ZThn24_N7ee773523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee773523fooEv,_ZTv0_n20_N7ee773523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee773523fooEv,_ZThn16_N7ee773523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee773523fooEv,_ZTv0_n28_N7ee773523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773523fooEv,_ZThn8_N7ee773523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee773523barEv,_ZTv0_n24_N7ee773523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee773523barEv,_ZThn8_N7ee773523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77352 = { "ee77352", // class name
+ bases_ee77352, 4,
+ &(vtc_ee77352[0]), // expected_vtbl_contents
+ &(vtt_ee77352[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77352),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77352),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77352),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc452 : bb52 {
+ int c;
+ virtual void bar(); // _ZN5cc4523barEv
+ ~cc452(); // tgen
+ cc452(); // tgen
+};
+//SIG(-1 cc452) C1{ BC2{ VBC3{ v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void cc452 ::bar(){vfunc_called(this, "_ZN5cc4523barEv");}
+cc452 ::~cc452(){ note_dtor("cc452", this);} // tgen
+cc452 ::cc452(){ note_ctor("cc452", this);} // tgen
+
+static void Test_cc452()
+{
+ extern Class_Descriptor cd_cc452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc452, buf);
+ cc452 *dp, &lv = *(dp=new (buf) cc452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc452)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(16,12), "cc452");
+ check_base_class_offset(lv, (bb52*), 0, "cc452");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc452.c");
+ test_class_info(&lv, &cd_cc452);
+ dp->~cc452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc452(Test_cc452, "cc452", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc452C1Ev();
+extern void _ZN5cc452D1Ev();
+Name_Map name_map_cc452[] = {
+ NSPAIR(_ZN5cc452C1Ev),
+ NSPAIR(_ZN5cc452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc452[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc452[] = {
+ {&(_ZTV5cc452[3]), 3,10},
+ {&(_tg__ZTV4bb52__5cc452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc452[4]), 4,6},
+ {&(_ZTV5cc452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static VTBL_ENTRY alt_thunk_names1272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc452 = { "cc452", // class name
+ bases_cc452, 2,
+ &(vtc_cc452[0]), // expected_vtbl_contents
+ &(vtt_cc452[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc452),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0452 : cc452 {
+ int d;
+ ~dd0452(); // tgen
+ dd0452(); // tgen
+};
+//SIG(-1 dd0452) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0452 ::~dd0452(){ note_dtor("dd0452", this);} // tgen
+dd0452 ::dd0452(){ note_ctor("dd0452", this);} // tgen
+
+static void Test_dd0452()
+{
+ extern Class_Descriptor cd_dd0452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0452, buf);
+ dd0452 *dp, &lv = *(dp=new (buf) dd0452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(24,16), "dd0452");
+ check_base_class_offset(lv, (bb52*)(cc452*), 0, "dd0452");
+ check_base_class_offset(lv, (cc452*), 0, "dd0452");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0452.d");
+ test_class_info(&lv, &cd_dd0452);
+ dp->~dd0452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0452(Test_dd0452, "dd0452", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0452C1Ev();
+extern void _ZN6dd0452D1Ev();
+Name_Map name_map_dd0452[] = {
+ NSPAIR(_ZN6dd0452C1Ev),
+ NSPAIR(_ZN6dd0452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd0452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd0452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd0452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd0452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd0452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd0452[] = {
+ {&(_ZTV6dd0452[3]), 3,10},
+ {&(_tg__ZTV5cc452__6dd0452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd0452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd0452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd0452[4]), 4,6},
+ {&(_ZTV6dd0452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static VTBL_ENTRY alt_thunk_names1273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0452 = { "dd0452", // class name
+ bases_dd0452, 3,
+ &(vtc_dd0452[0]), // expected_vtbl_contents
+ &(vtt_dd0452[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0452),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00452 : dd0452 {
+ int e;
+ ~ee00452(); // tgen
+ ee00452(); // tgen
+};
+//SIG(1 ee00452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00452 ::~ee00452(){ note_dtor("ee00452", this);} // tgen
+ee00452 ::ee00452(){ note_ctor("ee00452", this);} // tgen
+
+static void Test_ee00452()
+{
+ extern Class_Descriptor cd_ee00452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00452, buf);
+ ee00452 *dp, &lv = *(dp=new (buf) ee00452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(24,20), "ee00452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), 0, "ee00452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), 0, "ee00452");
+ check_base_class_offset(lv, (dd0452*), 0, "ee00452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00452.e");
+ test_class_info(&lv, &cd_ee00452);
+ dp->~ee00452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00452(Test_ee00452, "ee00452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00452C1Ev();
+extern void _ZN7ee00452D1Ev();
+Name_Map name_map_ee00452[] = {
+ NSPAIR(_ZN7ee00452C1Ev),
+ NSPAIR(_ZN7ee00452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee00452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee00452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee00452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee00452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee00452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee00452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee00452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee00452[] = {
+ {&(_ZTV7ee00452[3]), 3,10},
+ {&(_tg__ZTV6dd0452__7ee00452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee00452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee00452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee00452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee00452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee00452[4]), 4,6},
+ {&(_ZTV7ee00452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee00452[];
+extern VTBL_ENTRY _ZTV7ee00452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00452[];
+static VTBL_ENTRY alt_thunk_names1274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00452 = { "ee00452", // class name
+ bases_ee00452, 4,
+ &(vtc_ee00452[0]), // expected_vtbl_contents
+ &(vtt_ee00452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10452 : virtual dd0452 {
+ int e;
+ ~ee10452(); // tgen
+ ee10452(); // tgen
+};
+//SIG(1 ee10452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10452 ::~ee10452(){ note_dtor("ee10452", this);} // tgen
+ee10452 ::ee10452(){ note_ctor("ee10452", this);} // tgen
+
+static void Test_ee10452()
+{
+ extern Class_Descriptor cd_ee10452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10452, buf);
+ ee10452 *dp, &lv = *(dp=new (buf) ee10452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(40,24), "ee10452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), ABISELECT(16,8), "ee10452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), ABISELECT(16,8), "ee10452");
+ check_base_class_offset(lv, (dd0452*), ABISELECT(16,8), "ee10452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10452.e");
+ test_class_info(&lv, &cd_ee10452);
+ dp->~ee10452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10452(Test_ee10452, "ee10452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10452C1Ev();
+extern void _ZN7ee10452D1Ev();
+Name_Map name_map_ee10452[] = {
+ NSPAIR(_ZN7ee10452C1Ev),
+ NSPAIR(_ZN7ee10452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee10452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10452[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee10452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee10452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee10452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee10452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee10452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee10452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee10452[] = {
+ {&(_ZTV7ee10452[4]), 4,15},
+ {&(_ZTV7ee10452[8]), 8,15},
+ {&(_ZTV7ee10452[13]), 13,15},
+ {&(_tg__ZTV6dd0452__7ee10452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee10452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee10452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee10452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee10452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee10452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10452[];
+extern VTBL_ENTRY _ZTV7ee10452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10452[];
+static VTBL_ENTRY alt_thunk_names1275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10452 = { "ee10452", // class name
+ bases_ee10452, 4,
+ &(vtc_ee10452[0]), // expected_vtbl_contents
+ &(vtt_ee10452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10452),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20452 : dd0452 {
+ int e;
+ virtual void foo(); // _ZN7ee204523fooEv
+ ~ee20452(); // tgen
+ ee20452(); // tgen
+};
+//SIG(1 ee20452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20452 ::foo(){vfunc_called(this, "_ZN7ee204523fooEv");}
+ee20452 ::~ee20452(){ note_dtor("ee20452", this);} // tgen
+ee20452 ::ee20452(){ note_ctor("ee20452", this);} // tgen
+
+static void Test_ee20452()
+{
+ extern Class_Descriptor cd_ee20452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20452, buf);
+ ee20452 *dp, &lv = *(dp=new (buf) ee20452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(24,20), "ee20452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), 0, "ee20452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), 0, "ee20452");
+ check_base_class_offset(lv, (dd0452*), 0, "ee20452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20452.e");
+ test_class_info(&lv, &cd_ee20452);
+ dp->~ee20452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20452(Test_ee20452, "ee20452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20452C1Ev();
+extern void _ZN7ee20452D1Ev();
+Name_Map name_map_ee20452[] = {
+ NSPAIR(_ZN7ee20452C1Ev),
+ NSPAIR(_ZN7ee20452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee20452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN7ee204523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee204523fooEv,_ZTv0_n12_N7ee204523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee204523fooEv,_ZThn20_N7ee204523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN7ee204523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee204523fooEv,_ZTv0_n12_N7ee204523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee20452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee20452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee20452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee20452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee20452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee20452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee20452[] = {
+ {&(_ZTV7ee20452[3]), 3,11},
+ {&(_tg__ZTV6dd0452__7ee20452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee20452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee20452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee20452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee20452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee20452[4]), 4,6},
+ {&(_ZTV7ee20452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20452[];
+extern VTBL_ENTRY _ZTV7ee20452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20452[];
+static VTBL_ENTRY alt_thunk_names1276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee204523fooEv,_ZTv0_n12_N7ee204523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee204523fooEv,_ZThn20_N7ee204523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20452 = { "ee20452", // class name
+ bases_ee20452, 4,
+ &(vtc_ee20452[0]), // expected_vtbl_contents
+ &(vtt_ee20452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30452 : virtual dd0452 {
+ int e;
+ virtual void foo(); // _ZN7ee304523fooEv
+ ~ee30452(); // tgen
+ ee30452(); // tgen
+};
+//SIG(1 ee30452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30452 ::foo(){vfunc_called(this, "_ZN7ee304523fooEv");}
+ee30452 ::~ee30452(){ note_dtor("ee30452", this);} // tgen
+ee30452 ::ee30452(){ note_ctor("ee30452", this);} // tgen
+
+static void Test_ee30452()
+{
+ extern Class_Descriptor cd_ee30452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30452, buf);
+ ee30452 *dp, &lv = *(dp=new (buf) ee30452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(40,24), "ee30452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), ABISELECT(16,8), "ee30452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), ABISELECT(16,8), "ee30452");
+ check_base_class_offset(lv, (dd0452*), ABISELECT(16,8), "ee30452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30452.e");
+ test_class_info(&lv, &cd_ee30452);
+ dp->~ee30452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30452(Test_ee30452, "ee30452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30452C1Ev();
+extern void _ZN7ee30452D1Ev();
+Name_Map name_map_ee30452[] = {
+ NSPAIR(_ZN7ee30452C1Ev),
+ NSPAIR(_ZN7ee30452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee30452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30452[];
+extern void _ZN7ee304523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee304523fooEv,_ZTv0_n12_N7ee304523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee304523fooEv,_ZThn24_N7ee304523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30452[0]),
+ (VTBL_ENTRY)&_ZN7ee304523fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee304523fooEv,_ZTv0_n12_N7ee304523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee30452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee30452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee30452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee30452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee30452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee30452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee30452[] = {
+ {&(_ZTV7ee30452[4]), 4,16},
+ {&(_ZTV7ee30452[9]), 9,16},
+ {&(_ZTV7ee30452[14]), 14,16},
+ {&(_tg__ZTV6dd0452__7ee30452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee30452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee30452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee30452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee30452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee30452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30452[];
+extern VTBL_ENTRY _ZTV7ee30452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30452[];
+static VTBL_ENTRY alt_thunk_names1277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee304523fooEv,_ZTv0_n12_N7ee304523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee304523fooEv,_ZThn24_N7ee304523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30452 = { "ee30452", // class name
+ bases_ee30452, 4,
+ &(vtc_ee30452[0]), // expected_vtbl_contents
+ &(vtt_ee30452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40452 : dd0452 {
+ int e;
+ virtual void bar(); // _ZN7ee404523barEv
+ ~ee40452(); // tgen
+ ee40452(); // tgen
+};
+//SIG(1 ee40452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40452 ::bar(){vfunc_called(this, "_ZN7ee404523barEv");}
+ee40452 ::~ee40452(){ note_dtor("ee40452", this);} // tgen
+ee40452 ::ee40452(){ note_ctor("ee40452", this);} // tgen
+
+static void Test_ee40452()
+{
+ extern Class_Descriptor cd_ee40452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40452, buf);
+ ee40452 *dp, &lv = *(dp=new (buf) ee40452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(24,20), "ee40452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), 0, "ee40452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), 0, "ee40452");
+ check_base_class_offset(lv, (dd0452*), 0, "ee40452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40452.e");
+ test_class_info(&lv, &cd_ee40452);
+ dp->~ee40452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40452(Test_ee40452, "ee40452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40452C1Ev();
+extern void _ZN7ee40452D1Ev();
+Name_Map name_map_ee40452[] = {
+ NSPAIR(_ZN7ee40452C1Ev),
+ NSPAIR(_ZN7ee40452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee40452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40452[];
+extern void _ZN7ee404523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee404523barEv,_ZTv0_n16_N7ee404523barEv)();
+extern void ABISELECT(_ZThn24_N7ee404523barEv,_ZThn20_N7ee404523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40452[0]),
+ (VTBL_ENTRY)&_ZN7ee404523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee404523barEv,_ZTv0_n16_N7ee404523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee40452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee40452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee40452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee40452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee40452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee40452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee40452[] = {
+ {&(_ZTV7ee40452[3]), 3,10},
+ {&(_tg__ZTV6dd0452__7ee40452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee40452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee40452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee40452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee40452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee40452[4]), 4,6},
+ {&(_ZTV7ee40452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee40452[];
+extern VTBL_ENTRY _ZTV7ee40452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40452[];
+static VTBL_ENTRY alt_thunk_names1278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee404523barEv,_ZTv0_n16_N7ee404523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee404523barEv,_ZThn20_N7ee404523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40452 = { "ee40452", // class name
+ bases_ee40452, 4,
+ &(vtc_ee40452[0]), // expected_vtbl_contents
+ &(vtt_ee40452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50452 : virtual dd0452 {
+ int e;
+ virtual void bar(); // _ZN7ee504523barEv
+ ~ee50452(); // tgen
+ ee50452(); // tgen
+};
+//SIG(1 ee50452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50452 ::bar(){vfunc_called(this, "_ZN7ee504523barEv");}
+ee50452 ::~ee50452(){ note_dtor("ee50452", this);} // tgen
+ee50452 ::ee50452(){ note_ctor("ee50452", this);} // tgen
+
+static void Test_ee50452()
+{
+ extern Class_Descriptor cd_ee50452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50452, buf);
+ ee50452 *dp, &lv = *(dp=new (buf) ee50452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(40,24), "ee50452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), ABISELECT(16,8), "ee50452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), ABISELECT(16,8), "ee50452");
+ check_base_class_offset(lv, (dd0452*), ABISELECT(16,8), "ee50452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50452.e");
+ test_class_info(&lv, &cd_ee50452);
+ dp->~ee50452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50452(Test_ee50452, "ee50452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50452C1Ev();
+extern void _ZN7ee50452D1Ev();
+Name_Map name_map_ee50452[] = {
+ NSPAIR(_ZN7ee50452C1Ev),
+ NSPAIR(_ZN7ee50452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee50452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50452[];
+extern void _ZN7ee504523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504523barEv,_ZTv0_n16_N7ee504523barEv)();
+extern void ABISELECT(_ZThn16_N7ee504523barEv,_ZThn8_N7ee504523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee504523barEv,_ZTv0_n16_N7ee504523barEv)();
+extern void ABISELECT(_ZThn40_N7ee504523barEv,_ZThn24_N7ee504523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50452[0]),
+ (VTBL_ENTRY)&_ZN7ee504523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504523barEv,_ZTv0_n16_N7ee504523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee504523barEv,_ZTv0_n16_N7ee504523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee50452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee50452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee50452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee50452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee50452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee50452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee50452[] = {
+ {&(_ZTV7ee50452[4]), 4,16},
+ {&(_ZTV7ee50452[9]), 9,16},
+ {&(_ZTV7ee50452[14]), 14,16},
+ {&(_tg__ZTV6dd0452__7ee50452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee50452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee50452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee50452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee50452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee50452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50452[];
+extern VTBL_ENTRY _ZTV7ee50452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50452[];
+static VTBL_ENTRY alt_thunk_names1279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee504523barEv,_ZTv0_n16_N7ee504523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee504523barEv,_ZThn24_N7ee504523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee504523barEv,_ZThn8_N7ee504523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50452 = { "ee50452", // class name
+ bases_ee50452, 4,
+ &(vtc_ee50452[0]), // expected_vtbl_contents
+ &(vtt_ee50452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60452 : dd0452 {
+ int e;
+ virtual void foo(); // _ZN7ee604523fooEv
+ virtual void bar(); // _ZN7ee604523barEv
+ ~ee60452(); // tgen
+ ee60452(); // tgen
+};
+//SIG(1 ee60452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60452 ::foo(){vfunc_called(this, "_ZN7ee604523fooEv");}
+void ee60452 ::bar(){vfunc_called(this, "_ZN7ee604523barEv");}
+ee60452 ::~ee60452(){ note_dtor("ee60452", this);} // tgen
+ee60452 ::ee60452(){ note_ctor("ee60452", this);} // tgen
+
+static void Test_ee60452()
+{
+ extern Class_Descriptor cd_ee60452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60452, buf);
+ ee60452 *dp, &lv = *(dp=new (buf) ee60452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(24,20), "ee60452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), 0, "ee60452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), 0, "ee60452");
+ check_base_class_offset(lv, (dd0452*), 0, "ee60452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60452.e");
+ test_class_info(&lv, &cd_ee60452);
+ dp->~ee60452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60452(Test_ee60452, "ee60452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60452C1Ev();
+extern void _ZN7ee60452D1Ev();
+Name_Map name_map_ee60452[] = {
+ NSPAIR(_ZN7ee60452C1Ev),
+ NSPAIR(_ZN7ee60452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee60452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60452[];
+extern void _ZN7ee604523barEv();
+extern void _ZN7ee604523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee604523fooEv,_ZTv0_n12_N7ee604523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee604523fooEv,_ZThn20_N7ee604523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee604523barEv,_ZTv0_n16_N7ee604523barEv)();
+extern void ABISELECT(_ZThn24_N7ee604523barEv,_ZThn20_N7ee604523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60452[0]),
+ (VTBL_ENTRY)&_ZN7ee604523barEv,
+ (VTBL_ENTRY)&_ZN7ee604523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee604523fooEv,_ZTv0_n12_N7ee604523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee604523barEv,_ZTv0_n16_N7ee604523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee60452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee60452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee60452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee60452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee60452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee60452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee60452[] = {
+ {&(_ZTV7ee60452[3]), 3,11},
+ {&(_tg__ZTV6dd0452__7ee60452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee60452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee60452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee60452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee60452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee60452[4]), 4,6},
+ {&(_ZTV7ee60452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60452[];
+extern VTBL_ENTRY _ZTV7ee60452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60452[];
+static VTBL_ENTRY alt_thunk_names1280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee604523barEv,_ZTv0_n16_N7ee604523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee604523barEv,_ZThn20_N7ee604523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee604523fooEv,_ZTv0_n12_N7ee604523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee604523fooEv,_ZThn20_N7ee604523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60452 = { "ee60452", // class name
+ bases_ee60452, 4,
+ &(vtc_ee60452[0]), // expected_vtbl_contents
+ &(vtt_ee60452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70452 : virtual dd0452 {
+ int e;
+ virtual void foo(); // _ZN7ee704523fooEv
+ virtual void bar(); // _ZN7ee704523barEv
+ ~ee70452(); // tgen
+ ee70452(); // tgen
+};
+//SIG(1 ee70452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70452 ::foo(){vfunc_called(this, "_ZN7ee704523fooEv");}
+void ee70452 ::bar(){vfunc_called(this, "_ZN7ee704523barEv");}
+ee70452 ::~ee70452(){ note_dtor("ee70452", this);} // tgen
+ee70452 ::ee70452(){ note_ctor("ee70452", this);} // tgen
+
+static void Test_ee70452()
+{
+ extern Class_Descriptor cd_ee70452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70452, buf);
+ ee70452 *dp, &lv = *(dp=new (buf) ee70452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd0452*), ABISELECT(40,24), "ee70452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd0452*), ABISELECT(16,8), "ee70452");
+ check_base_class_offset(lv, (cc452*)(dd0452*), ABISELECT(16,8), "ee70452");
+ check_base_class_offset(lv, (dd0452*), ABISELECT(16,8), "ee70452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70452.e");
+ test_class_info(&lv, &cd_ee70452);
+ dp->~ee70452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70452(Test_ee70452, "ee70452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70452C1Ev();
+extern void _ZN7ee70452D1Ev();
+Name_Map name_map_ee70452[] = {
+ NSPAIR(_ZN7ee70452C1Ev),
+ NSPAIR(_ZN7ee70452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd0452;
+extern VTBL_ENTRY _ZTI6dd0452[];
+extern VTBL_ENTRY _ZTV6dd0452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0452[];
+static Base_Class bases_ee70452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0452, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70452[];
+extern void _ZN7ee704523fooEv();
+extern void _ZN7ee704523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee704523barEv,_ZTv0_n16_N7ee704523barEv)();
+extern void ABISELECT(_ZThn16_N7ee704523barEv,_ZThn8_N7ee704523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee704523fooEv,_ZTv0_n12_N7ee704523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee704523fooEv,_ZThn24_N7ee704523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee704523barEv,_ZTv0_n16_N7ee704523barEv)();
+extern void ABISELECT(_ZThn40_N7ee704523barEv,_ZThn24_N7ee704523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70452[0]),
+ (VTBL_ENTRY)&_ZN7ee704523fooEv,
+ (VTBL_ENTRY)&_ZN7ee704523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704523barEv,_ZTv0_n16_N7ee704523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee704523fooEv,_ZTv0_n12_N7ee704523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee704523barEv,_ZTv0_n16_N7ee704523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0452__7ee70452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd0452__7ee70452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd0452__7ee70452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd0452__7ee70452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd0452__7ee70452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0452__7ee70452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee70452[] = {
+ {&(_ZTV7ee70452[4]), 4,17},
+ {&(_ZTV7ee70452[10]), 10,17},
+ {&(_ZTV7ee70452[15]), 15,17},
+ {&(_tg__ZTV6dd0452__7ee70452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd0452__7ee70452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd0452__7ee70452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd0452__7ee70452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd0452__7ee70452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0452__7ee70452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70452[];
+extern VTBL_ENTRY _ZTV7ee70452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70452[];
+static VTBL_ENTRY alt_thunk_names1281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee704523fooEv,_ZTv0_n12_N7ee704523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee704523fooEv,_ZThn24_N7ee704523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee704523barEv,_ZTv0_n16_N7ee704523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee704523barEv,_ZThn24_N7ee704523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee704523barEv,_ZThn8_N7ee704523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70452 = { "ee70452", // class name
+ bases_ee70452, 4,
+ &(vtc_ee70452[0]), // expected_vtbl_contents
+ &(vtt_ee70452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1452 : virtual cc452 {
+ int d;
+ ~dd1452(); // tgen
+ dd1452(); // tgen
+};
+//SIG(-1 dd1452) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1452 ::~dd1452(){ note_dtor("dd1452", this);} // tgen
+dd1452 ::dd1452(){ note_ctor("dd1452", this);} // tgen
+
+static void Test_dd1452()
+{
+ extern Class_Descriptor cd_dd1452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1452, buf);
+ dd1452 *dp, &lv = *(dp=new (buf) dd1452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,20), "dd1452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,8), "dd1452");
+ check_base_class_offset(lv, (cc452*), ABISELECT(16,8), "dd1452");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1452.d");
+ test_class_info(&lv, &cd_dd1452);
+ dp->~dd1452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1452(Test_dd1452, "dd1452", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1452C1Ev();
+extern void _ZN6dd1452D1Ev();
+Name_Map name_map_dd1452[] = {
+ NSPAIR(_ZN6dd1452C1Ev),
+ NSPAIR(_ZN6dd1452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd1452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ 4, //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 _ZTI6dd1452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd1452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd1452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd1452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd1452[] = {
+ {&(_ZTV6dd1452[4]), 4,15},
+ {&(_ZTV6dd1452[8]), 8,15},
+ {&(_ZTV6dd1452[13]), 13,15},
+ {&(_tg__ZTV5cc452__6dd1452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd1452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd1452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd1452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static VTBL_ENTRY alt_thunk_names1282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1452 = { "dd1452", // class name
+ bases_dd1452, 3,
+ &(vtc_dd1452[0]), // expected_vtbl_contents
+ &(vtt_dd1452[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1452),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1452),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01452 : dd1452 {
+ int e;
+ ~ee01452(); // tgen
+ ee01452(); // tgen
+};
+//SIG(1 ee01452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01452 ::~ee01452(){ note_dtor("ee01452", this);} // tgen
+ee01452 ::ee01452(){ note_ctor("ee01452", this);} // tgen
+
+static void Test_ee01452()
+{
+ extern Class_Descriptor cd_ee01452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01452, buf);
+ ee01452 *dp, &lv = *(dp=new (buf) ee01452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee01452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee01452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(16,12), "ee01452");
+ check_base_class_offset(lv, (dd1452*), 0, "ee01452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01452.e");
+ test_class_info(&lv, &cd_ee01452);
+ dp->~ee01452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01452(Test_ee01452, "ee01452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01452C1Ev();
+extern void _ZN7ee01452D1Ev();
+Name_Map name_map_ee01452[] = {
+ NSPAIR(_ZN7ee01452C1Ev),
+ NSPAIR(_ZN7ee01452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee01452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 4, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01452[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee01452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee01452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee01452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee01452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee01452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee01452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee01452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee01452[] = {
+ {&(_ZTV7ee01452[4]), 4,15},
+ {&(_tg__ZTV6dd1452__7ee01452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee01452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee01452[4]), 4,6},
+ {&(_ZTV7ee01452[8]), 8,15},
+ {&(_ZTV7ee01452[13]), 13,15},
+ {&(_tg__ZTV5cc452__7ee01452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee01452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee01452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee01452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01452[];
+extern VTBL_ENTRY _ZTV7ee01452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01452[];
+static VTBL_ENTRY alt_thunk_names1283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01452 = { "ee01452", // class name
+ bases_ee01452, 4,
+ &(vtc_ee01452[0]), // expected_vtbl_contents
+ &(vtt_ee01452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01452),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11452 : virtual dd1452 {
+ int e;
+ ~ee11452(); // tgen
+ ee11452(); // tgen
+};
+//SIG(1 ee11452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11452 ::~ee11452(){ note_dtor("ee11452", this);} // tgen
+ee11452 ::ee11452(){ note_ctor("ee11452", this);} // tgen
+
+static void Test_ee11452()
+{
+ extern Class_Descriptor cd_ee11452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11452, buf);
+ ee11452 *dp, &lv = *(dp=new (buf) ee11452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee11452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee11452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(32,16), "ee11452");
+ check_base_class_offset(lv, (dd1452*), ABISELECT(16,8), "ee11452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11452.e");
+ test_class_info(&lv, &cd_ee11452);
+ dp->~ee11452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11452(Test_ee11452, "ee11452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11452C1Ev();
+extern void _ZN7ee11452D1Ev();
+Name_Map name_map_ee11452[] = {
+ NSPAIR(_ZN7ee11452C1Ev),
+ NSPAIR(_ZN7ee11452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee11452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11452[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11452[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee11452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee11452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee11452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee11452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee11452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee11452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee11452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee11452[] = {
+ {&(_ZTV7ee11452[5]), 5,20},
+ {&(_ZTV7ee11452[9]), 9,20},
+ {&(_ZTV7ee11452[13]), 13,20},
+ {&(_ZTV7ee11452[18]), 18,20},
+ {&(_tg__ZTV6dd1452__7ee11452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee11452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee11452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee11452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee11452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee11452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee11452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11452[];
+extern VTBL_ENTRY _ZTV7ee11452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11452[];
+static VTBL_ENTRY alt_thunk_names1284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11452 = { "ee11452", // class name
+ bases_ee11452, 4,
+ &(vtc_ee11452[0]), // expected_vtbl_contents
+ &(vtt_ee11452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11452),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21452 : dd1452 {
+ int e;
+ virtual void foo(); // _ZN7ee214523fooEv
+ ~ee21452(); // tgen
+ ee21452(); // tgen
+};
+//SIG(1 ee21452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21452 ::foo(){vfunc_called(this, "_ZN7ee214523fooEv");}
+ee21452 ::~ee21452(){ note_dtor("ee21452", this);} // tgen
+ee21452 ::ee21452(){ note_ctor("ee21452", this);} // tgen
+
+static void Test_ee21452()
+{
+ extern Class_Descriptor cd_ee21452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21452, buf);
+ ee21452 *dp, &lv = *(dp=new (buf) ee21452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee21452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee21452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(16,12), "ee21452");
+ check_base_class_offset(lv, (dd1452*), 0, "ee21452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21452.e");
+ test_class_info(&lv, &cd_ee21452);
+ dp->~ee21452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21452(Test_ee21452, "ee21452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21452C1Ev();
+extern void _ZN7ee21452D1Ev();
+Name_Map name_map_ee21452[] = {
+ NSPAIR(_ZN7ee21452C1Ev),
+ NSPAIR(_ZN7ee21452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee21452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21452[];
+extern void _ZN7ee214523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee214523fooEv,_ZTv0_n12_N7ee214523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee214523fooEv,_ZThn24_N7ee214523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21452[0]),
+ (VTBL_ENTRY)&_ZN7ee214523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee214523fooEv,_ZTv0_n12_N7ee214523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee21452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee21452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee21452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee21452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee21452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee21452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee21452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee21452[] = {
+ {&(_ZTV7ee21452[4]), 4,16},
+ {&(_tg__ZTV6dd1452__7ee21452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee21452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee21452[4]), 4,6},
+ {&(_ZTV7ee21452[9]), 9,16},
+ {&(_ZTV7ee21452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee21452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee21452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee21452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee21452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21452[];
+extern VTBL_ENTRY _ZTV7ee21452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21452[];
+static VTBL_ENTRY alt_thunk_names1285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee214523fooEv,_ZTv0_n12_N7ee214523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee214523fooEv,_ZThn24_N7ee214523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21452 = { "ee21452", // class name
+ bases_ee21452, 4,
+ &(vtc_ee21452[0]), // expected_vtbl_contents
+ &(vtt_ee21452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31452 : virtual dd1452 {
+ int e;
+ virtual void foo(); // _ZN7ee314523fooEv
+ ~ee31452(); // tgen
+ ee31452(); // tgen
+};
+//SIG(1 ee31452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31452 ::foo(){vfunc_called(this, "_ZN7ee314523fooEv");}
+ee31452 ::~ee31452(){ note_dtor("ee31452", this);} // tgen
+ee31452 ::ee31452(){ note_ctor("ee31452", this);} // tgen
+
+static void Test_ee31452()
+{
+ extern Class_Descriptor cd_ee31452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31452, buf);
+ ee31452 *dp, &lv = *(dp=new (buf) ee31452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee31452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee31452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(32,16), "ee31452");
+ check_base_class_offset(lv, (dd1452*), ABISELECT(16,8), "ee31452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31452.e");
+ test_class_info(&lv, &cd_ee31452);
+ dp->~ee31452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31452(Test_ee31452, "ee31452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31452C1Ev();
+extern void _ZN7ee31452D1Ev();
+Name_Map name_map_ee31452[] = {
+ NSPAIR(_ZN7ee31452C1Ev),
+ NSPAIR(_ZN7ee31452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee31452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31452[];
+extern void _ZN7ee314523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee314523fooEv,_ZTv0_n12_N7ee314523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee314523fooEv,_ZThn28_N7ee314523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31452[0]),
+ (VTBL_ENTRY)&_ZN7ee314523fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31452[0]),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee314523fooEv,_ZTv0_n12_N7ee314523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee31452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee31452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee31452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee31452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee31452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee31452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee31452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee31452[] = {
+ {&(_ZTV7ee31452[5]), 5,21},
+ {&(_ZTV7ee31452[10]), 10,21},
+ {&(_ZTV7ee31452[14]), 14,21},
+ {&(_ZTV7ee31452[19]), 19,21},
+ {&(_tg__ZTV6dd1452__7ee31452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee31452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee31452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee31452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee31452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee31452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee31452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31452[];
+extern VTBL_ENTRY _ZTV7ee31452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31452[];
+static VTBL_ENTRY alt_thunk_names1286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee314523fooEv,_ZTv0_n12_N7ee314523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee314523fooEv,_ZThn28_N7ee314523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31452 = { "ee31452", // class name
+ bases_ee31452, 4,
+ &(vtc_ee31452[0]), // expected_vtbl_contents
+ &(vtt_ee31452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31452),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41452 : dd1452 {
+ int e;
+ virtual void bar(); // _ZN7ee414523barEv
+ ~ee41452(); // tgen
+ ee41452(); // tgen
+};
+//SIG(1 ee41452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41452 ::bar(){vfunc_called(this, "_ZN7ee414523barEv");}
+ee41452 ::~ee41452(){ note_dtor("ee41452", this);} // tgen
+ee41452 ::ee41452(){ note_ctor("ee41452", this);} // tgen
+
+static void Test_ee41452()
+{
+ extern Class_Descriptor cd_ee41452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41452, buf);
+ ee41452 *dp, &lv = *(dp=new (buf) ee41452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee41452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee41452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(16,12), "ee41452");
+ check_base_class_offset(lv, (dd1452*), 0, "ee41452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41452.e");
+ test_class_info(&lv, &cd_ee41452);
+ dp->~ee41452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41452(Test_ee41452, "ee41452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41452C1Ev();
+extern void _ZN7ee41452D1Ev();
+Name_Map name_map_ee41452[] = {
+ NSPAIR(_ZN7ee41452C1Ev),
+ NSPAIR(_ZN7ee41452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee41452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41452[];
+extern void _ZN7ee414523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414523barEv,_ZTv0_n16_N7ee414523barEv)();
+extern void ABISELECT(_ZThn16_N7ee414523barEv,_ZThn12_N7ee414523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee414523barEv,_ZTv0_n16_N7ee414523barEv)();
+extern void ABISELECT(_ZThn32_N7ee414523barEv,_ZThn24_N7ee414523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41452[0]),
+ (VTBL_ENTRY)&_ZN7ee414523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414523barEv,_ZTv0_n16_N7ee414523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee414523barEv,_ZTv0_n16_N7ee414523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee41452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee41452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee41452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee41452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee41452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee41452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee41452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee41452[] = {
+ {&(_ZTV7ee41452[4]), 4,16},
+ {&(_tg__ZTV6dd1452__7ee41452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee41452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee41452[4]), 4,6},
+ {&(_ZTV7ee41452[9]), 9,16},
+ {&(_ZTV7ee41452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee41452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee41452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee41452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee41452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41452[];
+extern VTBL_ENTRY _ZTV7ee41452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41452[];
+static VTBL_ENTRY alt_thunk_names1287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee414523barEv,_ZTv0_n16_N7ee414523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee414523barEv,_ZThn24_N7ee414523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee414523barEv,_ZThn12_N7ee414523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41452 = { "ee41452", // class name
+ bases_ee41452, 4,
+ &(vtc_ee41452[0]), // expected_vtbl_contents
+ &(vtt_ee41452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51452 : virtual dd1452 {
+ int e;
+ virtual void bar(); // _ZN7ee514523barEv
+ ~ee51452(); // tgen
+ ee51452(); // tgen
+};
+//SIG(1 ee51452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51452 ::bar(){vfunc_called(this, "_ZN7ee514523barEv");}
+ee51452 ::~ee51452(){ note_dtor("ee51452", this);} // tgen
+ee51452 ::ee51452(){ note_ctor("ee51452", this);} // tgen
+
+static void Test_ee51452()
+{
+ extern Class_Descriptor cd_ee51452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51452, buf);
+ ee51452 *dp, &lv = *(dp=new (buf) ee51452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee51452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee51452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(32,16), "ee51452");
+ check_base_class_offset(lv, (dd1452*), ABISELECT(16,8), "ee51452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51452.e");
+ test_class_info(&lv, &cd_ee51452);
+ dp->~ee51452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51452(Test_ee51452, "ee51452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51452C1Ev();
+extern void _ZN7ee51452D1Ev();
+Name_Map name_map_ee51452[] = {
+ NSPAIR(_ZN7ee51452C1Ev),
+ NSPAIR(_ZN7ee51452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee51452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51452[];
+extern void _ZN7ee514523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514523barEv,_ZTv0_n16_N7ee514523barEv)();
+extern void ABISELECT(_ZThn32_N7ee514523barEv,_ZThn16_N7ee514523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee514523barEv,_ZTv0_n16_N7ee514523barEv)();
+extern void ABISELECT(_ZThn48_N7ee514523barEv,_ZThn28_N7ee514523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51452[0]),
+ (VTBL_ENTRY)&_ZN7ee514523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51452[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514523barEv,_ZTv0_n16_N7ee514523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee514523barEv,_ZTv0_n16_N7ee514523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee51452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee51452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee51452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee51452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee51452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee51452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee51452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee51452[] = {
+ {&(_ZTV7ee51452[5]), 5,21},
+ {&(_ZTV7ee51452[10]), 10,21},
+ {&(_ZTV7ee51452[14]), 14,21},
+ {&(_ZTV7ee51452[19]), 19,21},
+ {&(_tg__ZTV6dd1452__7ee51452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee51452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee51452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee51452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee51452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee51452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee51452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51452[];
+extern VTBL_ENTRY _ZTV7ee51452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51452[];
+static VTBL_ENTRY alt_thunk_names1288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee514523barEv,_ZTv0_n16_N7ee514523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee514523barEv,_ZThn28_N7ee514523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee514523barEv,_ZThn16_N7ee514523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51452 = { "ee51452", // class name
+ bases_ee51452, 4,
+ &(vtc_ee51452[0]), // expected_vtbl_contents
+ &(vtt_ee51452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51452),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61452 : dd1452 {
+ int e;
+ virtual void foo(); // _ZN7ee614523fooEv
+ virtual void bar(); // _ZN7ee614523barEv
+ ~ee61452(); // tgen
+ ee61452(); // tgen
+};
+//SIG(1 ee61452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61452 ::foo(){vfunc_called(this, "_ZN7ee614523fooEv");}
+void ee61452 ::bar(){vfunc_called(this, "_ZN7ee614523barEv");}
+ee61452 ::~ee61452(){ note_dtor("ee61452", this);} // tgen
+ee61452 ::ee61452(){ note_ctor("ee61452", this);} // tgen
+
+static void Test_ee61452()
+{
+ extern Class_Descriptor cd_ee61452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61452, buf);
+ ee61452 *dp, &lv = *(dp=new (buf) ee61452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee61452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee61452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(16,12), "ee61452");
+ check_base_class_offset(lv, (dd1452*), 0, "ee61452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61452.e");
+ test_class_info(&lv, &cd_ee61452);
+ dp->~ee61452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61452(Test_ee61452, "ee61452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61452C1Ev();
+extern void _ZN7ee61452D1Ev();
+Name_Map name_map_ee61452[] = {
+ NSPAIR(_ZN7ee61452C1Ev),
+ NSPAIR(_ZN7ee61452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee61452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61452[];
+extern void _ZN7ee614523fooEv();
+extern void _ZN7ee614523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee614523barEv,_ZTv0_n16_N7ee614523barEv)();
+extern void ABISELECT(_ZThn16_N7ee614523barEv,_ZThn12_N7ee614523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee614523fooEv,_ZTv0_n12_N7ee614523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee614523fooEv,_ZThn24_N7ee614523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee614523barEv,_ZTv0_n16_N7ee614523barEv)();
+extern void ABISELECT(_ZThn32_N7ee614523barEv,_ZThn24_N7ee614523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61452[0]),
+ (VTBL_ENTRY)&_ZN7ee614523fooEv,
+ (VTBL_ENTRY)&_ZN7ee614523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614523barEv,_ZTv0_n16_N7ee614523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee614523fooEv,_ZTv0_n12_N7ee614523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee614523barEv,_ZTv0_n16_N7ee614523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee61452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee61452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee61452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee61452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee61452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee61452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee61452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee61452[] = {
+ {&(_ZTV7ee61452[4]), 4,17},
+ {&(_tg__ZTV6dd1452__7ee61452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee61452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee61452[4]), 4,6},
+ {&(_ZTV7ee61452[10]), 10,17},
+ {&(_ZTV7ee61452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee61452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee61452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee61452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee61452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61452[];
+extern VTBL_ENTRY _ZTV7ee61452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61452[];
+static VTBL_ENTRY alt_thunk_names1289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee614523fooEv,_ZTv0_n12_N7ee614523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee614523fooEv,_ZThn24_N7ee614523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee614523barEv,_ZTv0_n16_N7ee614523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee614523barEv,_ZThn24_N7ee614523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee614523barEv,_ZThn12_N7ee614523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61452 = { "ee61452", // class name
+ bases_ee61452, 4,
+ &(vtc_ee61452[0]), // expected_vtbl_contents
+ &(vtt_ee61452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71452 : virtual dd1452 {
+ int e;
+ virtual void foo(); // _ZN7ee714523fooEv
+ virtual void bar(); // _ZN7ee714523barEv
+ ~ee71452(); // tgen
+ ee71452(); // tgen
+};
+//SIG(1 ee71452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71452 ::foo(){vfunc_called(this, "_ZN7ee714523fooEv");}
+void ee71452 ::bar(){vfunc_called(this, "_ZN7ee714523barEv");}
+ee71452 ::~ee71452(){ note_dtor("ee71452", this);} // tgen
+ee71452 ::ee71452(){ note_ctor("ee71452", this);} // tgen
+
+static void Test_ee71452()
+{
+ extern Class_Descriptor cd_ee71452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71452, buf);
+ ee71452 *dp, &lv = *(dp=new (buf) ee71452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee71452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee71452");
+ check_base_class_offset(lv, (cc452*)(dd1452*), ABISELECT(32,16), "ee71452");
+ check_base_class_offset(lv, (dd1452*), ABISELECT(16,8), "ee71452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71452.e");
+ test_class_info(&lv, &cd_ee71452);
+ dp->~ee71452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71452(Test_ee71452, "ee71452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71452C1Ev();
+extern void _ZN7ee71452D1Ev();
+Name_Map name_map_ee71452[] = {
+ NSPAIR(_ZN7ee71452C1Ev),
+ NSPAIR(_ZN7ee71452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd1452;
+extern VTBL_ENTRY _ZTI6dd1452[];
+extern VTBL_ENTRY _ZTV6dd1452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1452[];
+static Base_Class bases_ee71452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1452, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71452[];
+extern void _ZN7ee714523fooEv();
+extern void _ZN7ee714523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee714523barEv,_ZTv0_n16_N7ee714523barEv)();
+extern void ABISELECT(_ZThn32_N7ee714523barEv,_ZThn16_N7ee714523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee714523fooEv,_ZTv0_n12_N7ee714523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee714523fooEv,_ZThn28_N7ee714523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee714523barEv,_ZTv0_n16_N7ee714523barEv)();
+extern void ABISELECT(_ZThn48_N7ee714523barEv,_ZThn28_N7ee714523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71452[0]),
+ (VTBL_ENTRY)&_ZN7ee714523fooEv,
+ (VTBL_ENTRY)&_ZN7ee714523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71452[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714523barEv,_ZTv0_n16_N7ee714523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee714523fooEv,_ZTv0_n12_N7ee714523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee714523barEv,_ZTv0_n16_N7ee714523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71452[];
+static VTBL_ENTRY _tg__ZTV6dd1452__7ee71452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd1452__7ee71452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1452__7ee71452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee71452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee71452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee71452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee71452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee71452[] = {
+ {&(_ZTV7ee71452[5]), 5,22},
+ {&(_ZTV7ee71452[11]), 11,22},
+ {&(_ZTV7ee71452[15]), 15,22},
+ {&(_ZTV7ee71452[20]), 20,22},
+ {&(_tg__ZTV6dd1452__7ee71452[4]), 4,4},
+ {&(_tg__ZTV5cc452__6dd1452__7ee71452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1452__7ee71452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee71452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee71452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee71452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee71452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71452[];
+extern VTBL_ENTRY _ZTV7ee71452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71452[];
+static VTBL_ENTRY alt_thunk_names1290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee714523fooEv,_ZTv0_n12_N7ee714523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee714523fooEv,_ZThn28_N7ee714523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee714523barEv,_ZTv0_n16_N7ee714523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee714523barEv,_ZThn28_N7ee714523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee714523barEv,_ZThn16_N7ee714523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71452 = { "ee71452", // class name
+ bases_ee71452, 4,
+ &(vtc_ee71452[0]), // expected_vtbl_contents
+ &(vtt_ee71452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71452),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2452 : cc452 {
+ int d;
+ virtual void foo(); // _ZN6dd24523fooEv
+ ~dd2452(); // tgen
+ dd2452(); // tgen
+};
+//SIG(-1 dd2452) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2452 ::foo(){vfunc_called(this, "_ZN6dd24523fooEv");}
+dd2452 ::~dd2452(){ note_dtor("dd2452", this);} // tgen
+dd2452 ::dd2452(){ note_ctor("dd2452", this);} // tgen
+
+static void Test_dd2452()
+{
+ extern Class_Descriptor cd_dd2452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2452, buf);
+ dd2452 *dp, &lv = *(dp=new (buf) dd2452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(24,16), "dd2452");
+ check_base_class_offset(lv, (bb52*)(cc452*), 0, "dd2452");
+ check_base_class_offset(lv, (cc452*), 0, "dd2452");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2452.d");
+ test_class_info(&lv, &cd_dd2452);
+ dp->~dd2452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2452(Test_dd2452, "dd2452", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2452C1Ev();
+extern void _ZN6dd2452D1Ev();
+Name_Map name_map_dd2452[] = {
+ NSPAIR(_ZN6dd2452C1Ev),
+ NSPAIR(_ZN6dd2452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd2452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd2452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd2452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd2452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd2452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd2452[] = {
+ {&(_ZTV6dd2452[3]), 3,11},
+ {&(_tg__ZTV5cc452__6dd2452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd2452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd2452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd2452[4]), 4,6},
+ {&(_ZTV6dd2452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static VTBL_ENTRY alt_thunk_names1291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2452 = { "dd2452", // class name
+ bases_dd2452, 3,
+ &(vtc_dd2452[0]), // expected_vtbl_contents
+ &(vtt_dd2452[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2452),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02452 : dd2452 {
+ int e;
+ ~ee02452(); // tgen
+ ee02452(); // tgen
+};
+//SIG(1 ee02452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02452 ::~ee02452(){ note_dtor("ee02452", this);} // tgen
+ee02452 ::ee02452(){ note_ctor("ee02452", this);} // tgen
+
+static void Test_ee02452()
+{
+ extern Class_Descriptor cd_ee02452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02452, buf);
+ ee02452 *dp, &lv = *(dp=new (buf) ee02452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(24,20), "ee02452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), 0, "ee02452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), 0, "ee02452");
+ check_base_class_offset(lv, (dd2452*), 0, "ee02452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02452.e");
+ test_class_info(&lv, &cd_ee02452);
+ dp->~ee02452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02452(Test_ee02452, "ee02452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02452C1Ev();
+extern void _ZN7ee02452D1Ev();
+Name_Map name_map_ee02452[] = {
+ NSPAIR(_ZN7ee02452C1Ev),
+ NSPAIR(_ZN7ee02452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee02452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee02452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee02452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee02452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee02452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee02452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee02452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee02452[] = {
+ {&(_ZTV7ee02452[3]), 3,11},
+ {&(_tg__ZTV6dd2452__7ee02452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee02452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee02452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee02452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee02452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee02452[4]), 4,6},
+ {&(_ZTV7ee02452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02452[];
+extern VTBL_ENTRY _ZTV7ee02452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02452[];
+static VTBL_ENTRY alt_thunk_names1292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02452 = { "ee02452", // class name
+ bases_ee02452, 4,
+ &(vtc_ee02452[0]), // expected_vtbl_contents
+ &(vtt_ee02452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12452 : virtual dd2452 {
+ int e;
+ ~ee12452(); // tgen
+ ee12452(); // tgen
+};
+//SIG(1 ee12452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12452 ::~ee12452(){ note_dtor("ee12452", this);} // tgen
+ee12452 ::ee12452(){ note_ctor("ee12452", this);} // tgen
+
+static void Test_ee12452()
+{
+ extern Class_Descriptor cd_ee12452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12452, buf);
+ ee12452 *dp, &lv = *(dp=new (buf) ee12452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(40,24), "ee12452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), ABISELECT(16,8), "ee12452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), ABISELECT(16,8), "ee12452");
+ check_base_class_offset(lv, (dd2452*), ABISELECT(16,8), "ee12452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12452.e");
+ test_class_info(&lv, &cd_ee12452);
+ dp->~ee12452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12452(Test_ee12452, "ee12452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12452C1Ev();
+extern void _ZN7ee12452D1Ev();
+Name_Map name_map_ee12452[] = {
+ NSPAIR(_ZN7ee12452C1Ev),
+ NSPAIR(_ZN7ee12452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee12452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12452[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee12452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee12452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee12452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee12452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee12452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee12452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee12452[] = {
+ {&(_ZTV7ee12452[4]), 4,17},
+ {&(_ZTV7ee12452[9]), 9,17},
+ {&(_ZTV7ee12452[15]), 15,17},
+ {&(_tg__ZTV6dd2452__7ee12452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee12452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee12452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee12452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee12452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee12452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12452[];
+extern VTBL_ENTRY _ZTV7ee12452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12452[];
+static VTBL_ENTRY alt_thunk_names1293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12452 = { "ee12452", // class name
+ bases_ee12452, 4,
+ &(vtc_ee12452[0]), // expected_vtbl_contents
+ &(vtt_ee12452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22452 : dd2452 {
+ int e;
+ virtual void foo(); // _ZN7ee224523fooEv
+ ~ee22452(); // tgen
+ ee22452(); // tgen
+};
+//SIG(1 ee22452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22452 ::foo(){vfunc_called(this, "_ZN7ee224523fooEv");}
+ee22452 ::~ee22452(){ note_dtor("ee22452", this);} // tgen
+ee22452 ::ee22452(){ note_ctor("ee22452", this);} // tgen
+
+static void Test_ee22452()
+{
+ extern Class_Descriptor cd_ee22452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22452, buf);
+ ee22452 *dp, &lv = *(dp=new (buf) ee22452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(24,20), "ee22452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), 0, "ee22452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), 0, "ee22452");
+ check_base_class_offset(lv, (dd2452*), 0, "ee22452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22452.e");
+ test_class_info(&lv, &cd_ee22452);
+ dp->~ee22452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22452(Test_ee22452, "ee22452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22452C1Ev();
+extern void _ZN7ee22452D1Ev();
+Name_Map name_map_ee22452[] = {
+ NSPAIR(_ZN7ee22452C1Ev),
+ NSPAIR(_ZN7ee22452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee22452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN7ee224523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee224523fooEv,_ZTv0_n12_N7ee224523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee224523fooEv,_ZThn20_N7ee224523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN7ee224523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee224523fooEv,_ZTv0_n12_N7ee224523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee22452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee22452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee22452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee22452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee22452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee22452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee22452[] = {
+ {&(_ZTV7ee22452[3]), 3,11},
+ {&(_tg__ZTV6dd2452__7ee22452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee22452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee22452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee22452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee22452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee22452[4]), 4,6},
+ {&(_ZTV7ee22452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22452[];
+extern VTBL_ENTRY _ZTV7ee22452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22452[];
+static VTBL_ENTRY alt_thunk_names1294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee224523fooEv,_ZTv0_n12_N7ee224523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee224523fooEv,_ZThn20_N7ee224523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22452 = { "ee22452", // class name
+ bases_ee22452, 4,
+ &(vtc_ee22452[0]), // expected_vtbl_contents
+ &(vtt_ee22452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32452 : virtual dd2452 {
+ int e;
+ virtual void foo(); // _ZN7ee324523fooEv
+ ~ee32452(); // tgen
+ ee32452(); // tgen
+};
+//SIG(1 ee32452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32452 ::foo(){vfunc_called(this, "_ZN7ee324523fooEv");}
+ee32452 ::~ee32452(){ note_dtor("ee32452", this);} // tgen
+ee32452 ::ee32452(){ note_ctor("ee32452", this);} // tgen
+
+static void Test_ee32452()
+{
+ extern Class_Descriptor cd_ee32452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32452, buf);
+ ee32452 *dp, &lv = *(dp=new (buf) ee32452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(40,24), "ee32452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), ABISELECT(16,8), "ee32452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), ABISELECT(16,8), "ee32452");
+ check_base_class_offset(lv, (dd2452*), ABISELECT(16,8), "ee32452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32452.e");
+ test_class_info(&lv, &cd_ee32452);
+ dp->~ee32452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32452(Test_ee32452, "ee32452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32452C1Ev();
+extern void _ZN7ee32452D1Ev();
+Name_Map name_map_ee32452[] = {
+ NSPAIR(_ZN7ee32452C1Ev),
+ NSPAIR(_ZN7ee32452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee32452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32452[];
+extern void _ZN7ee324523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee324523fooEv,_ZTv0_n20_N7ee324523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee324523fooEv,_ZThn8_N7ee324523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee324523fooEv,_ZTv0_n12_N7ee324523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee324523fooEv,_ZThn24_N7ee324523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32452[0]),
+ (VTBL_ENTRY)&_ZN7ee324523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee324523fooEv,_ZTv0_n20_N7ee324523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee324523fooEv,_ZTv0_n12_N7ee324523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee32452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee32452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee32452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee32452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee32452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee32452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee32452[] = {
+ {&(_ZTV7ee32452[4]), 4,18},
+ {&(_ZTV7ee32452[10]), 10,18},
+ {&(_ZTV7ee32452[16]), 16,18},
+ {&(_tg__ZTV6dd2452__7ee32452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee32452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee32452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee32452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee32452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee32452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32452[];
+extern VTBL_ENTRY _ZTV7ee32452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32452[];
+static VTBL_ENTRY alt_thunk_names1295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee324523fooEv,_ZTv0_n12_N7ee324523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee324523fooEv,_ZThn24_N7ee324523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee324523fooEv,_ZTv0_n20_N7ee324523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee324523fooEv,_ZThn8_N7ee324523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32452 = { "ee32452", // class name
+ bases_ee32452, 4,
+ &(vtc_ee32452[0]), // expected_vtbl_contents
+ &(vtt_ee32452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32452),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1295,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42452 : dd2452 {
+ int e;
+ virtual void bar(); // _ZN7ee424523barEv
+ ~ee42452(); // tgen
+ ee42452(); // tgen
+};
+//SIG(1 ee42452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42452 ::bar(){vfunc_called(this, "_ZN7ee424523barEv");}
+ee42452 ::~ee42452(){ note_dtor("ee42452", this);} // tgen
+ee42452 ::ee42452(){ note_ctor("ee42452", this);} // tgen
+
+static void Test_ee42452()
+{
+ extern Class_Descriptor cd_ee42452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42452, buf);
+ ee42452 *dp, &lv = *(dp=new (buf) ee42452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(24,20), "ee42452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), 0, "ee42452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), 0, "ee42452");
+ check_base_class_offset(lv, (dd2452*), 0, "ee42452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42452.e");
+ test_class_info(&lv, &cd_ee42452);
+ dp->~ee42452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42452(Test_ee42452, "ee42452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42452C1Ev();
+extern void _ZN7ee42452D1Ev();
+Name_Map name_map_ee42452[] = {
+ NSPAIR(_ZN7ee42452C1Ev),
+ NSPAIR(_ZN7ee42452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee42452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42452[];
+extern void _ZN7ee424523barEv();
+extern void _ZN6dd24523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee424523barEv,_ZTv0_n16_N7ee424523barEv)();
+extern void ABISELECT(_ZThn24_N7ee424523barEv,_ZThn20_N7ee424523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42452[0]),
+ (VTBL_ENTRY)&_ZN7ee424523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee424523barEv,_ZTv0_n16_N7ee424523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee42452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee42452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee42452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee42452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee42452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee42452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee42452[] = {
+ {&(_ZTV7ee42452[3]), 3,11},
+ {&(_tg__ZTV6dd2452__7ee42452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee42452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee42452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee42452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee42452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee42452[4]), 4,6},
+ {&(_ZTV7ee42452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42452[];
+extern VTBL_ENTRY _ZTV7ee42452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42452[];
+static VTBL_ENTRY alt_thunk_names1296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee424523barEv,_ZTv0_n16_N7ee424523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee424523barEv,_ZThn20_N7ee424523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42452 = { "ee42452", // class name
+ bases_ee42452, 4,
+ &(vtc_ee42452[0]), // expected_vtbl_contents
+ &(vtt_ee42452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52452 : virtual dd2452 {
+ int e;
+ virtual void bar(); // _ZN7ee524523barEv
+ ~ee52452(); // tgen
+ ee52452(); // tgen
+};
+//SIG(1 ee52452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52452 ::bar(){vfunc_called(this, "_ZN7ee524523barEv");}
+ee52452 ::~ee52452(){ note_dtor("ee52452", this);} // tgen
+ee52452 ::ee52452(){ note_ctor("ee52452", this);} // tgen
+
+static void Test_ee52452()
+{
+ extern Class_Descriptor cd_ee52452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52452, buf);
+ ee52452 *dp, &lv = *(dp=new (buf) ee52452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(40,24), "ee52452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), ABISELECT(16,8), "ee52452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), ABISELECT(16,8), "ee52452");
+ check_base_class_offset(lv, (dd2452*), ABISELECT(16,8), "ee52452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52452.e");
+ test_class_info(&lv, &cd_ee52452);
+ dp->~ee52452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52452(Test_ee52452, "ee52452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52452C1Ev();
+extern void _ZN7ee52452D1Ev();
+Name_Map name_map_ee52452[] = {
+ NSPAIR(_ZN7ee52452C1Ev),
+ NSPAIR(_ZN7ee52452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee52452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52452[];
+extern void _ZN7ee524523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee524523barEv,_ZTv0_n16_N7ee524523barEv)();
+extern void ABISELECT(_ZThn16_N7ee524523barEv,_ZThn8_N7ee524523barEv)() __attribute__((weak));
+extern void _ZN6dd24523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee524523barEv,_ZTv0_n16_N7ee524523barEv)();
+extern void ABISELECT(_ZThn40_N7ee524523barEv,_ZThn24_N7ee524523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52452[0]),
+ (VTBL_ENTRY)&_ZN7ee524523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524523barEv,_ZTv0_n16_N7ee524523barEv),
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee524523barEv,_ZTv0_n16_N7ee524523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee52452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee52452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee52452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee52452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee52452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee52452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee52452[] = {
+ {&(_ZTV7ee52452[4]), 4,18},
+ {&(_ZTV7ee52452[10]), 10,18},
+ {&(_ZTV7ee52452[16]), 16,18},
+ {&(_tg__ZTV6dd2452__7ee52452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee52452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee52452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee52452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee52452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee52452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52452[];
+extern VTBL_ENTRY _ZTV7ee52452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52452[];
+static VTBL_ENTRY alt_thunk_names1297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee524523barEv,_ZTv0_n16_N7ee524523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee524523barEv,_ZThn24_N7ee524523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee524523barEv,_ZThn8_N7ee524523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52452 = { "ee52452", // class name
+ bases_ee52452, 4,
+ &(vtc_ee52452[0]), // expected_vtbl_contents
+ &(vtt_ee52452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52452),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62452 : dd2452 {
+ int e;
+ virtual void foo(); // _ZN7ee624523fooEv
+ virtual void bar(); // _ZN7ee624523barEv
+ ~ee62452(); // tgen
+ ee62452(); // tgen
+};
+//SIG(1 ee62452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62452 ::foo(){vfunc_called(this, "_ZN7ee624523fooEv");}
+void ee62452 ::bar(){vfunc_called(this, "_ZN7ee624523barEv");}
+ee62452 ::~ee62452(){ note_dtor("ee62452", this);} // tgen
+ee62452 ::ee62452(){ note_ctor("ee62452", this);} // tgen
+
+static void Test_ee62452()
+{
+ extern Class_Descriptor cd_ee62452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62452, buf);
+ ee62452 *dp, &lv = *(dp=new (buf) ee62452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(24,20), "ee62452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), 0, "ee62452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), 0, "ee62452");
+ check_base_class_offset(lv, (dd2452*), 0, "ee62452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62452.e");
+ test_class_info(&lv, &cd_ee62452);
+ dp->~ee62452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62452(Test_ee62452, "ee62452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62452C1Ev();
+extern void _ZN7ee62452D1Ev();
+Name_Map name_map_ee62452[] = {
+ NSPAIR(_ZN7ee62452C1Ev),
+ NSPAIR(_ZN7ee62452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee62452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62452[];
+extern void _ZN7ee624523barEv();
+extern void _ZN7ee624523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee624523fooEv,_ZTv0_n12_N7ee624523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee624523fooEv,_ZThn20_N7ee624523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee624523barEv,_ZTv0_n16_N7ee624523barEv)();
+extern void ABISELECT(_ZThn24_N7ee624523barEv,_ZThn20_N7ee624523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62452[0]),
+ (VTBL_ENTRY)&_ZN7ee624523barEv,
+ (VTBL_ENTRY)&_ZN7ee624523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee624523fooEv,_ZTv0_n12_N7ee624523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee624523barEv,_ZTv0_n16_N7ee624523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee62452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee62452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee62452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee62452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee62452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee62452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee62452[] = {
+ {&(_ZTV7ee62452[3]), 3,11},
+ {&(_tg__ZTV6dd2452__7ee62452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee62452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee62452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee62452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee62452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee62452[4]), 4,6},
+ {&(_ZTV7ee62452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62452[];
+extern VTBL_ENTRY _ZTV7ee62452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62452[];
+static VTBL_ENTRY alt_thunk_names1298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn20_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee624523barEv,_ZTv0_n16_N7ee624523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee624523barEv,_ZThn20_N7ee624523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee624523fooEv,_ZTv0_n12_N7ee624523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee624523fooEv,_ZThn20_N7ee624523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62452 = { "ee62452", // class name
+ bases_ee62452, 4,
+ &(vtc_ee62452[0]), // expected_vtbl_contents
+ &(vtt_ee62452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72452 : virtual dd2452 {
+ int e;
+ virtual void foo(); // _ZN7ee724523fooEv
+ virtual void bar(); // _ZN7ee724523barEv
+ ~ee72452(); // tgen
+ ee72452(); // tgen
+};
+//SIG(1 ee72452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72452 ::foo(){vfunc_called(this, "_ZN7ee724523fooEv");}
+void ee72452 ::bar(){vfunc_called(this, "_ZN7ee724523barEv");}
+ee72452 ::~ee72452(){ note_dtor("ee72452", this);} // tgen
+ee72452 ::ee72452(){ note_ctor("ee72452", this);} // tgen
+
+static void Test_ee72452()
+{
+ extern Class_Descriptor cd_ee72452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72452, buf);
+ ee72452 *dp, &lv = *(dp=new (buf) ee72452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd2452*), ABISELECT(40,24), "ee72452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd2452*), ABISELECT(16,8), "ee72452");
+ check_base_class_offset(lv, (cc452*)(dd2452*), ABISELECT(16,8), "ee72452");
+ check_base_class_offset(lv, (dd2452*), ABISELECT(16,8), "ee72452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72452.e");
+ test_class_info(&lv, &cd_ee72452);
+ dp->~ee72452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72452(Test_ee72452, "ee72452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72452C1Ev();
+extern void _ZN7ee72452D1Ev();
+Name_Map name_map_ee72452[] = {
+ NSPAIR(_ZN7ee72452C1Ev),
+ NSPAIR(_ZN7ee72452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd2452;
+extern VTBL_ENTRY _ZTI6dd2452[];
+extern VTBL_ENTRY _ZTV6dd2452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2452[];
+static Base_Class bases_ee72452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2452, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72452[];
+extern void _ZN7ee724523fooEv();
+extern void _ZN7ee724523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee724523barEv,_ZTv0_n16_N7ee724523barEv)();
+extern void ABISELECT(_ZThn16_N7ee724523barEv,_ZThn8_N7ee724523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee724523fooEv,_ZTv0_n20_N7ee724523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee724523fooEv,_ZThn8_N7ee724523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee724523fooEv,_ZTv0_n12_N7ee724523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee724523fooEv,_ZThn24_N7ee724523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee724523barEv,_ZTv0_n16_N7ee724523barEv)();
+extern void ABISELECT(_ZThn40_N7ee724523barEv,_ZThn24_N7ee724523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72452[0]),
+ (VTBL_ENTRY)&_ZN7ee724523fooEv,
+ (VTBL_ENTRY)&_ZN7ee724523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724523barEv,_ZTv0_n16_N7ee724523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee724523fooEv,_ZTv0_n20_N7ee724523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee724523fooEv,_ZTv0_n12_N7ee724523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee724523barEv,_ZTv0_n16_N7ee724523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72452[];
+extern void _ZN5cc4523barEv();
+extern void _ZN6dd24523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2452__7ee72452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ (VTBL_ENTRY)&_ZN6dd24523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd2452__7ee72452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd2452__7ee72452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd2452__7ee72452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd2452__7ee72452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2452__7ee72452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee72452[] = {
+ {&(_ZTV7ee72452[4]), 4,19},
+ {&(_ZTV7ee72452[11]), 11,19},
+ {&(_ZTV7ee72452[17]), 17,19},
+ {&(_tg__ZTV6dd2452__7ee72452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd2452__7ee72452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd2452__7ee72452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd2452__7ee72452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd2452__7ee72452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2452__7ee72452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72452[];
+extern VTBL_ENTRY _ZTV7ee72452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72452[];
+static VTBL_ENTRY alt_thunk_names1299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd24523fooEv,_ZTv0_n12_N6dd24523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd24523fooEv,_ZThn16_N6dd24523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee724523fooEv,_ZTv0_n12_N7ee724523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee724523fooEv,_ZThn24_N7ee724523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee724523fooEv,_ZTv0_n20_N7ee724523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724523fooEv,_ZThn8_N7ee724523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee724523barEv,_ZTv0_n16_N7ee724523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee724523barEv,_ZThn24_N7ee724523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee724523barEv,_ZThn8_N7ee724523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72452 = { "ee72452", // class name
+ bases_ee72452, 4,
+ &(vtc_ee72452[0]), // expected_vtbl_contents
+ &(vtt_ee72452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72452),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3452 : virtual cc452 {
+ int d;
+ virtual void foo(); // _ZN6dd34523fooEv
+ ~dd3452(); // tgen
+ dd3452(); // tgen
+};
+//SIG(-1 dd3452) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3452 ::foo(){vfunc_called(this, "_ZN6dd34523fooEv");}
+dd3452 ::~dd3452(){ note_dtor("dd3452", this);} // tgen
+dd3452 ::dd3452(){ note_ctor("dd3452", this);} // tgen
+
+static void Test_dd3452()
+{
+ extern Class_Descriptor cd_dd3452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3452, buf);
+ dd3452 *dp, &lv = *(dp=new (buf) dd3452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,20), "dd3452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,8), "dd3452");
+ check_base_class_offset(lv, (cc452*), ABISELECT(16,8), "dd3452");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3452.d");
+ test_class_info(&lv, &cd_dd3452);
+ dp->~dd3452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3452(Test_dd3452, "dd3452", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3452C1Ev();
+extern void _ZN6dd3452D1Ev();
+Name_Map name_map_dd3452[] = {
+ NSPAIR(_ZN6dd3452C1Ev),
+ NSPAIR(_ZN6dd3452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd3452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd3452[];
+extern void _ZN6dd34523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd3452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd3452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd3452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd3452[] = {
+ {&(_ZTV6dd3452[4]), 4,16},
+ {&(_ZTV6dd3452[9]), 9,16},
+ {&(_ZTV6dd3452[14]), 14,16},
+ {&(_tg__ZTV5cc452__6dd3452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd3452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd3452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd3452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static VTBL_ENTRY alt_thunk_names1300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3452 = { "dd3452", // class name
+ bases_dd3452, 3,
+ &(vtc_dd3452[0]), // expected_vtbl_contents
+ &(vtt_dd3452[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3452),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03452 : dd3452 {
+ int e;
+ ~ee03452(); // tgen
+ ee03452(); // tgen
+};
+//SIG(1 ee03452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03452 ::~ee03452(){ note_dtor("ee03452", this);} // tgen
+ee03452 ::ee03452(){ note_ctor("ee03452", this);} // tgen
+
+static void Test_ee03452()
+{
+ extern Class_Descriptor cd_ee03452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03452, buf);
+ ee03452 *dp, &lv = *(dp=new (buf) ee03452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee03452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee03452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(16,12), "ee03452");
+ check_base_class_offset(lv, (dd3452*), 0, "ee03452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03452.e");
+ test_class_info(&lv, &cd_ee03452);
+ dp->~ee03452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03452(Test_ee03452, "ee03452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03452C1Ev();
+extern void _ZN7ee03452D1Ev();
+Name_Map name_map_ee03452[] = {
+ NSPAIR(_ZN7ee03452C1Ev),
+ NSPAIR(_ZN7ee03452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee03452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03452[];
+extern void _ZN6dd34523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee03452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee03452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee03452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee03452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee03452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee03452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee03452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee03452[] = {
+ {&(_ZTV7ee03452[4]), 4,16},
+ {&(_tg__ZTV6dd3452__7ee03452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee03452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee03452[4]), 4,6},
+ {&(_ZTV7ee03452[9]), 9,16},
+ {&(_ZTV7ee03452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee03452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee03452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee03452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee03452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03452[];
+extern VTBL_ENTRY _ZTV7ee03452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03452[];
+static VTBL_ENTRY alt_thunk_names1301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03452 = { "ee03452", // class name
+ bases_ee03452, 4,
+ &(vtc_ee03452[0]), // expected_vtbl_contents
+ &(vtt_ee03452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13452 : virtual dd3452 {
+ int e;
+ ~ee13452(); // tgen
+ ee13452(); // tgen
+};
+//SIG(1 ee13452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13452 ::~ee13452(){ note_dtor("ee13452", this);} // tgen
+ee13452 ::ee13452(){ note_ctor("ee13452", this);} // tgen
+
+static void Test_ee13452()
+{
+ extern Class_Descriptor cd_ee13452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13452, buf);
+ ee13452 *dp, &lv = *(dp=new (buf) ee13452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee13452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee13452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(32,16), "ee13452");
+ check_base_class_offset(lv, (dd3452*), ABISELECT(16,8), "ee13452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13452.e");
+ test_class_info(&lv, &cd_ee13452);
+ dp->~ee13452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13452(Test_ee13452, "ee13452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13452C1Ev();
+extern void _ZN7ee13452D1Ev();
+Name_Map name_map_ee13452[] = {
+ NSPAIR(_ZN7ee13452C1Ev),
+ NSPAIR(_ZN7ee13452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee13452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13452[];
+extern void _ZN6dd34523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13452[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee13452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee13452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee13452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee13452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee13452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee13452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee13452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee13452[] = {
+ {&(_ZTV7ee13452[5]), 5,22},
+ {&(_ZTV7ee13452[10]), 10,22},
+ {&(_ZTV7ee13452[15]), 15,22},
+ {&(_ZTV7ee13452[20]), 20,22},
+ {&(_tg__ZTV6dd3452__7ee13452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee13452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee13452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee13452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee13452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee13452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee13452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13452[];
+extern VTBL_ENTRY _ZTV7ee13452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13452[];
+static VTBL_ENTRY alt_thunk_names1302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13452 = { "ee13452", // class name
+ bases_ee13452, 4,
+ &(vtc_ee13452[0]), // expected_vtbl_contents
+ &(vtt_ee13452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13452),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23452 : dd3452 {
+ int e;
+ virtual void foo(); // _ZN7ee234523fooEv
+ ~ee23452(); // tgen
+ ee23452(); // tgen
+};
+//SIG(1 ee23452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23452 ::foo(){vfunc_called(this, "_ZN7ee234523fooEv");}
+ee23452 ::~ee23452(){ note_dtor("ee23452", this);} // tgen
+ee23452 ::ee23452(){ note_ctor("ee23452", this);} // tgen
+
+static void Test_ee23452()
+{
+ extern Class_Descriptor cd_ee23452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23452, buf);
+ ee23452 *dp, &lv = *(dp=new (buf) ee23452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee23452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee23452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(16,12), "ee23452");
+ check_base_class_offset(lv, (dd3452*), 0, "ee23452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23452.e");
+ test_class_info(&lv, &cd_ee23452);
+ dp->~ee23452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23452(Test_ee23452, "ee23452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23452C1Ev();
+extern void _ZN7ee23452D1Ev();
+Name_Map name_map_ee23452[] = {
+ NSPAIR(_ZN7ee23452C1Ev),
+ NSPAIR(_ZN7ee23452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee23452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23452[];
+extern void _ZN7ee234523fooEv();
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee234523fooEv,_ZTv0_n12_N7ee234523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee234523fooEv,_ZThn24_N7ee234523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23452[0]),
+ (VTBL_ENTRY)&_ZN7ee234523fooEv,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee234523fooEv,_ZTv0_n12_N7ee234523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee23452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee23452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee23452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee23452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee23452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee23452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee23452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee23452[] = {
+ {&(_ZTV7ee23452[4]), 4,16},
+ {&(_tg__ZTV6dd3452__7ee23452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee23452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee23452[4]), 4,6},
+ {&(_ZTV7ee23452[9]), 9,16},
+ {&(_ZTV7ee23452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee23452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee23452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee23452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee23452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23452[];
+extern VTBL_ENTRY _ZTV7ee23452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23452[];
+static VTBL_ENTRY alt_thunk_names1303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee234523fooEv,_ZTv0_n12_N7ee234523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee234523fooEv,_ZThn24_N7ee234523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23452 = { "ee23452", // class name
+ bases_ee23452, 4,
+ &(vtc_ee23452[0]), // expected_vtbl_contents
+ &(vtt_ee23452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33452 : virtual dd3452 {
+ int e;
+ virtual void foo(); // _ZN7ee334523fooEv
+ ~ee33452(); // tgen
+ ee33452(); // tgen
+};
+//SIG(1 ee33452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33452 ::foo(){vfunc_called(this, "_ZN7ee334523fooEv");}
+ee33452 ::~ee33452(){ note_dtor("ee33452", this);} // tgen
+ee33452 ::ee33452(){ note_ctor("ee33452", this);} // tgen
+
+static void Test_ee33452()
+{
+ extern Class_Descriptor cd_ee33452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33452, buf);
+ ee33452 *dp, &lv = *(dp=new (buf) ee33452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee33452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee33452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(32,16), "ee33452");
+ check_base_class_offset(lv, (dd3452*), ABISELECT(16,8), "ee33452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33452.e");
+ test_class_info(&lv, &cd_ee33452);
+ dp->~ee33452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33452(Test_ee33452, "ee33452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33452C1Ev();
+extern void _ZN7ee33452D1Ev();
+Name_Map name_map_ee33452[] = {
+ NSPAIR(_ZN7ee33452C1Ev),
+ NSPAIR(_ZN7ee33452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee33452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33452[];
+extern void _ZN7ee334523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee334523fooEv,_ZTv0_n20_N7ee334523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee334523fooEv,_ZThn8_N7ee334523fooEv)() __attribute__((weak));
+extern void _ZN5cc4523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee334523fooEv,_ZTv0_n12_N7ee334523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee334523fooEv,_ZThn28_N7ee334523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33452[0]),
+ (VTBL_ENTRY)&_ZN7ee334523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee334523fooEv,_ZTv0_n20_N7ee334523fooEv),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee334523fooEv,_ZTv0_n12_N7ee334523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee33452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee33452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee33452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee33452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee33452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee33452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee33452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee33452[] = {
+ {&(_ZTV7ee33452[5]), 5,23},
+ {&(_ZTV7ee33452[11]), 11,23},
+ {&(_ZTV7ee33452[16]), 16,23},
+ {&(_ZTV7ee33452[21]), 21,23},
+ {&(_tg__ZTV6dd3452__7ee33452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee33452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee33452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee33452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee33452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee33452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee33452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33452[];
+extern VTBL_ENTRY _ZTV7ee33452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33452[];
+static VTBL_ENTRY alt_thunk_names1304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee334523fooEv,_ZTv0_n12_N7ee334523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee334523fooEv,_ZThn28_N7ee334523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee334523fooEv,_ZTv0_n20_N7ee334523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee334523fooEv,_ZThn8_N7ee334523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33452 = { "ee33452", // class name
+ bases_ee33452, 4,
+ &(vtc_ee33452[0]), // expected_vtbl_contents
+ &(vtt_ee33452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33452),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43452 : dd3452 {
+ int e;
+ virtual void bar(); // _ZN7ee434523barEv
+ ~ee43452(); // tgen
+ ee43452(); // tgen
+};
+//SIG(1 ee43452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43452 ::bar(){vfunc_called(this, "_ZN7ee434523barEv");}
+ee43452 ::~ee43452(){ note_dtor("ee43452", this);} // tgen
+ee43452 ::ee43452(){ note_ctor("ee43452", this);} // tgen
+
+static void Test_ee43452()
+{
+ extern Class_Descriptor cd_ee43452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43452, buf);
+ ee43452 *dp, &lv = *(dp=new (buf) ee43452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee43452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee43452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(16,12), "ee43452");
+ check_base_class_offset(lv, (dd3452*), 0, "ee43452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43452.e");
+ test_class_info(&lv, &cd_ee43452);
+ dp->~ee43452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43452(Test_ee43452, "ee43452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43452C1Ev();
+extern void _ZN7ee43452D1Ev();
+Name_Map name_map_ee43452[] = {
+ NSPAIR(_ZN7ee43452C1Ev),
+ NSPAIR(_ZN7ee43452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee43452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43452[];
+extern void _ZN6dd34523fooEv();
+extern void _ZN7ee434523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee434523barEv,_ZTv0_n16_N7ee434523barEv)();
+extern void ABISELECT(_ZThn16_N7ee434523barEv,_ZThn12_N7ee434523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee434523barEv,_ZTv0_n16_N7ee434523barEv)();
+extern void ABISELECT(_ZThn32_N7ee434523barEv,_ZThn24_N7ee434523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+ (VTBL_ENTRY)&_ZN7ee434523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434523barEv,_ZTv0_n16_N7ee434523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee434523barEv,_ZTv0_n16_N7ee434523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee43452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee43452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee43452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee43452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee43452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee43452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee43452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee43452[] = {
+ {&(_ZTV7ee43452[4]), 4,17},
+ {&(_tg__ZTV6dd3452__7ee43452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee43452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee43452[4]), 4,6},
+ {&(_ZTV7ee43452[10]), 10,17},
+ {&(_ZTV7ee43452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee43452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee43452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee43452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee43452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43452[];
+extern VTBL_ENTRY _ZTV7ee43452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43452[];
+static VTBL_ENTRY alt_thunk_names1305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee434523barEv,_ZTv0_n16_N7ee434523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee434523barEv,_ZThn24_N7ee434523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee434523barEv,_ZThn12_N7ee434523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43452 = { "ee43452", // class name
+ bases_ee43452, 4,
+ &(vtc_ee43452[0]), // expected_vtbl_contents
+ &(vtt_ee43452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53452 : virtual dd3452 {
+ int e;
+ virtual void bar(); // _ZN7ee534523barEv
+ ~ee53452(); // tgen
+ ee53452(); // tgen
+};
+//SIG(1 ee53452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53452 ::bar(){vfunc_called(this, "_ZN7ee534523barEv");}
+ee53452 ::~ee53452(){ note_dtor("ee53452", this);} // tgen
+ee53452 ::ee53452(){ note_ctor("ee53452", this);} // tgen
+
+static void Test_ee53452()
+{
+ extern Class_Descriptor cd_ee53452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53452, buf);
+ ee53452 *dp, &lv = *(dp=new (buf) ee53452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee53452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee53452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(32,16), "ee53452");
+ check_base_class_offset(lv, (dd3452*), ABISELECT(16,8), "ee53452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53452.e");
+ test_class_info(&lv, &cd_ee53452);
+ dp->~ee53452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53452(Test_ee53452, "ee53452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53452C1Ev();
+extern void _ZN7ee53452D1Ev();
+Name_Map name_map_ee53452[] = {
+ NSPAIR(_ZN7ee53452C1Ev),
+ NSPAIR(_ZN7ee53452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee53452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53452[];
+extern void _ZN7ee534523barEv();
+extern void _ZN6dd34523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee534523barEv,_ZTv0_n16_N7ee534523barEv)();
+extern void ABISELECT(_ZThn32_N7ee534523barEv,_ZThn16_N7ee534523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee534523barEv,_ZTv0_n16_N7ee534523barEv)();
+extern void ABISELECT(_ZThn48_N7ee534523barEv,_ZThn28_N7ee534523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53452[0]),
+ (VTBL_ENTRY)&_ZN7ee534523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534523barEv,_ZTv0_n16_N7ee534523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee534523barEv,_ZTv0_n16_N7ee534523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee53452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee53452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee53452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee53452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee53452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee53452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee53452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee53452[] = {
+ {&(_ZTV7ee53452[5]), 5,23},
+ {&(_ZTV7ee53452[11]), 11,23},
+ {&(_ZTV7ee53452[16]), 16,23},
+ {&(_ZTV7ee53452[21]), 21,23},
+ {&(_tg__ZTV6dd3452__7ee53452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee53452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee53452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee53452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee53452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee53452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee53452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53452[];
+extern VTBL_ENTRY _ZTV7ee53452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53452[];
+static VTBL_ENTRY alt_thunk_names1306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee534523barEv,_ZTv0_n16_N7ee534523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee534523barEv,_ZThn28_N7ee534523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee534523barEv,_ZThn16_N7ee534523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53452 = { "ee53452", // class name
+ bases_ee53452, 4,
+ &(vtc_ee53452[0]), // expected_vtbl_contents
+ &(vtt_ee53452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53452),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63452 : dd3452 {
+ int e;
+ virtual void foo(); // _ZN7ee634523fooEv
+ virtual void bar(); // _ZN7ee634523barEv
+ ~ee63452(); // tgen
+ ee63452(); // tgen
+};
+//SIG(1 ee63452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63452 ::foo(){vfunc_called(this, "_ZN7ee634523fooEv");}
+void ee63452 ::bar(){vfunc_called(this, "_ZN7ee634523barEv");}
+ee63452 ::~ee63452(){ note_dtor("ee63452", this);} // tgen
+ee63452 ::ee63452(){ note_ctor("ee63452", this);} // tgen
+
+static void Test_ee63452()
+{
+ extern Class_Descriptor cd_ee63452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63452, buf);
+ ee63452 *dp, &lv = *(dp=new (buf) ee63452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee63452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee63452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(16,12), "ee63452");
+ check_base_class_offset(lv, (dd3452*), 0, "ee63452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63452.e");
+ test_class_info(&lv, &cd_ee63452);
+ dp->~ee63452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63452(Test_ee63452, "ee63452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63452C1Ev();
+extern void _ZN7ee63452D1Ev();
+Name_Map name_map_ee63452[] = {
+ NSPAIR(_ZN7ee63452C1Ev),
+ NSPAIR(_ZN7ee63452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee63452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63452[];
+extern void _ZN7ee634523fooEv();
+extern void _ZN7ee634523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee634523barEv,_ZTv0_n16_N7ee634523barEv)();
+extern void ABISELECT(_ZThn16_N7ee634523barEv,_ZThn12_N7ee634523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee634523fooEv,_ZTv0_n12_N7ee634523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee634523fooEv,_ZThn24_N7ee634523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee634523barEv,_ZTv0_n16_N7ee634523barEv)();
+extern void ABISELECT(_ZThn32_N7ee634523barEv,_ZThn24_N7ee634523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63452[0]),
+ (VTBL_ENTRY)&_ZN7ee634523fooEv,
+ (VTBL_ENTRY)&_ZN7ee634523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634523barEv,_ZTv0_n16_N7ee634523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee634523fooEv,_ZTv0_n12_N7ee634523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee634523barEv,_ZTv0_n16_N7ee634523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee63452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee63452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee63452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee63452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee63452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee63452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee63452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee63452[] = {
+ {&(_ZTV7ee63452[4]), 4,17},
+ {&(_tg__ZTV6dd3452__7ee63452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee63452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee63452[4]), 4,6},
+ {&(_ZTV7ee63452[10]), 10,17},
+ {&(_ZTV7ee63452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee63452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee63452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee63452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee63452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63452[];
+extern VTBL_ENTRY _ZTV7ee63452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63452[];
+static VTBL_ENTRY alt_thunk_names1307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn24_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee634523fooEv,_ZTv0_n12_N7ee634523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee634523fooEv,_ZThn24_N7ee634523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee634523barEv,_ZTv0_n16_N7ee634523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee634523barEv,_ZThn24_N7ee634523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee634523barEv,_ZThn12_N7ee634523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63452 = { "ee63452", // class name
+ bases_ee63452, 4,
+ &(vtc_ee63452[0]), // expected_vtbl_contents
+ &(vtt_ee63452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73452 : virtual dd3452 {
+ int e;
+ virtual void foo(); // _ZN7ee734523fooEv
+ virtual void bar(); // _ZN7ee734523barEv
+ ~ee73452(); // tgen
+ ee73452(); // tgen
+};
+//SIG(1 ee73452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73452 ::foo(){vfunc_called(this, "_ZN7ee734523fooEv");}
+void ee73452 ::bar(){vfunc_called(this, "_ZN7ee734523barEv");}
+ee73452 ::~ee73452(){ note_dtor("ee73452", this);} // tgen
+ee73452 ::ee73452(){ note_ctor("ee73452", this);} // tgen
+
+static void Test_ee73452()
+{
+ extern Class_Descriptor cd_ee73452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73452, buf);
+ ee73452 *dp, &lv = *(dp=new (buf) ee73452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee73452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee73452");
+ check_base_class_offset(lv, (cc452*)(dd3452*), ABISELECT(32,16), "ee73452");
+ check_base_class_offset(lv, (dd3452*), ABISELECT(16,8), "ee73452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73452.e");
+ test_class_info(&lv, &cd_ee73452);
+ dp->~ee73452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73452(Test_ee73452, "ee73452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73452C1Ev();
+extern void _ZN7ee73452D1Ev();
+Name_Map name_map_ee73452[] = {
+ NSPAIR(_ZN7ee73452C1Ev),
+ NSPAIR(_ZN7ee73452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd3452;
+extern VTBL_ENTRY _ZTI6dd3452[];
+extern VTBL_ENTRY _ZTV6dd3452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3452[];
+static Base_Class bases_ee73452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3452, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73452[];
+extern void _ZN7ee734523fooEv();
+extern void _ZN7ee734523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee734523fooEv,_ZTv0_n20_N7ee734523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee734523fooEv,_ZThn8_N7ee734523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734523barEv,_ZTv0_n16_N7ee734523barEv)();
+extern void ABISELECT(_ZThn32_N7ee734523barEv,_ZThn16_N7ee734523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee734523fooEv,_ZTv0_n12_N7ee734523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee734523fooEv,_ZThn28_N7ee734523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee734523barEv,_ZTv0_n16_N7ee734523barEv)();
+extern void ABISELECT(_ZThn48_N7ee734523barEv,_ZThn28_N7ee734523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73452[0]),
+ (VTBL_ENTRY)&_ZN7ee734523fooEv,
+ (VTBL_ENTRY)&_ZN7ee734523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee734523fooEv,_ZTv0_n20_N7ee734523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734523barEv,_ZTv0_n16_N7ee734523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee734523fooEv,_ZTv0_n12_N7ee734523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee734523barEv,_ZTv0_n16_N7ee734523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73452[];
+extern void _ZN6dd34523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3452__7ee73452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN6dd34523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd3452__7ee73452[] = {
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3452__7ee73452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee73452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee73452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee73452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee73452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee73452[] = {
+ {&(_ZTV7ee73452[5]), 5,24},
+ {&(_ZTV7ee73452[12]), 12,24},
+ {&(_ZTV7ee73452[17]), 17,24},
+ {&(_ZTV7ee73452[22]), 22,24},
+ {&(_tg__ZTV6dd3452__7ee73452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd3452__7ee73452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3452__7ee73452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee73452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee73452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee73452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee73452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73452[];
+extern VTBL_ENTRY _ZTV7ee73452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73452[];
+static VTBL_ENTRY alt_thunk_names1308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd34523fooEv,_ZTv0_n12_N6dd34523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd34523fooEv,_ZThn20_N6dd34523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee734523fooEv,_ZTv0_n12_N7ee734523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee734523fooEv,_ZThn28_N7ee734523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee734523barEv,_ZTv0_n16_N7ee734523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee734523barEv,_ZThn28_N7ee734523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee734523barEv,_ZThn16_N7ee734523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee734523fooEv,_ZTv0_n20_N7ee734523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee734523fooEv,_ZThn8_N7ee734523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73452 = { "ee73452", // class name
+ bases_ee73452, 4,
+ &(vtc_ee73452[0]), // expected_vtbl_contents
+ &(vtt_ee73452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73452),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4452 : cc452 {
+ int d;
+ virtual void bar(); // _ZN6dd44523barEv
+ ~dd4452(); // tgen
+ dd4452(); // tgen
+};
+//SIG(-1 dd4452) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4452 ::bar(){vfunc_called(this, "_ZN6dd44523barEv");}
+dd4452 ::~dd4452(){ note_dtor("dd4452", this);} // tgen
+dd4452 ::dd4452(){ note_ctor("dd4452", this);} // tgen
+
+static void Test_dd4452()
+{
+ extern Class_Descriptor cd_dd4452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4452, buf);
+ dd4452 *dp, &lv = *(dp=new (buf) dd4452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(24,16), "dd4452");
+ check_base_class_offset(lv, (bb52*)(cc452*), 0, "dd4452");
+ check_base_class_offset(lv, (cc452*), 0, "dd4452");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4452.d");
+ test_class_info(&lv, &cd_dd4452);
+ dp->~dd4452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4452(Test_dd4452, "dd4452", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4452C1Ev();
+extern void _ZN6dd4452D1Ev();
+Name_Map name_map_dd4452[] = {
+ NSPAIR(_ZN6dd4452C1Ev),
+ NSPAIR(_ZN6dd4452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd4452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern void _ZN6dd44523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd4452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd4452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd4452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd4452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd4452[] = {
+ {&(_ZTV6dd4452[3]), 3,10},
+ {&(_tg__ZTV5cc452__6dd4452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd4452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd4452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd4452[4]), 4,6},
+ {&(_ZTV6dd4452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static VTBL_ENTRY alt_thunk_names1309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4452 = { "dd4452", // class name
+ bases_dd4452, 3,
+ &(vtc_dd4452[0]), // expected_vtbl_contents
+ &(vtt_dd4452[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4452),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04452 : dd4452 {
+ int e;
+ ~ee04452(); // tgen
+ ee04452(); // tgen
+};
+//SIG(1 ee04452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04452 ::~ee04452(){ note_dtor("ee04452", this);} // tgen
+ee04452 ::ee04452(){ note_ctor("ee04452", this);} // tgen
+
+static void Test_ee04452()
+{
+ extern Class_Descriptor cd_ee04452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04452, buf);
+ ee04452 *dp, &lv = *(dp=new (buf) ee04452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(24,20), "ee04452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), 0, "ee04452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), 0, "ee04452");
+ check_base_class_offset(lv, (dd4452*), 0, "ee04452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04452.e");
+ test_class_info(&lv, &cd_ee04452);
+ dp->~ee04452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04452(Test_ee04452, "ee04452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04452C1Ev();
+extern void _ZN7ee04452D1Ev();
+Name_Map name_map_ee04452[] = {
+ NSPAIR(_ZN7ee04452C1Ev),
+ NSPAIR(_ZN7ee04452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee04452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04452[];
+extern void _ZN6dd44523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee04452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee04452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee04452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee04452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee04452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee04452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee04452[] = {
+ {&(_ZTV7ee04452[3]), 3,10},
+ {&(_tg__ZTV6dd4452__7ee04452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee04452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee04452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee04452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee04452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee04452[4]), 4,6},
+ {&(_ZTV7ee04452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee04452[];
+extern VTBL_ENTRY _ZTV7ee04452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04452[];
+static VTBL_ENTRY alt_thunk_names1310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04452 = { "ee04452", // class name
+ bases_ee04452, 4,
+ &(vtc_ee04452[0]), // expected_vtbl_contents
+ &(vtt_ee04452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14452 : virtual dd4452 {
+ int e;
+ ~ee14452(); // tgen
+ ee14452(); // tgen
+};
+//SIG(1 ee14452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14452 ::~ee14452(){ note_dtor("ee14452", this);} // tgen
+ee14452 ::ee14452(){ note_ctor("ee14452", this);} // tgen
+
+static void Test_ee14452()
+{
+ extern Class_Descriptor cd_ee14452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14452, buf);
+ ee14452 *dp, &lv = *(dp=new (buf) ee14452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(40,24), "ee14452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), ABISELECT(16,8), "ee14452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), ABISELECT(16,8), "ee14452");
+ check_base_class_offset(lv, (dd4452*), ABISELECT(16,8), "ee14452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14452.e");
+ test_class_info(&lv, &cd_ee14452);
+ dp->~ee14452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14452(Test_ee14452, "ee14452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14452C1Ev();
+extern void _ZN7ee14452D1Ev();
+Name_Map name_map_ee14452[] = {
+ NSPAIR(_ZN7ee14452C1Ev),
+ NSPAIR(_ZN7ee14452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee14452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, ABISELECT(16,8), //bcp->offset
+ 4, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14452[];
+extern void _ZN6dd44523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14452[0]),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee14452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee14452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee14452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee14452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee14452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee14452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee14452[] = {
+ {&(_ZTV7ee14452[4]), 4,15},
+ {&(_ZTV7ee14452[8]), 8,15},
+ {&(_ZTV7ee14452[13]), 13,15},
+ {&(_tg__ZTV6dd4452__7ee14452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee14452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee14452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee14452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee14452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee14452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14452[];
+extern VTBL_ENTRY _ZTV7ee14452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14452[];
+static VTBL_ENTRY alt_thunk_names1311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14452 = { "ee14452", // class name
+ bases_ee14452, 4,
+ &(vtc_ee14452[0]), // expected_vtbl_contents
+ &(vtt_ee14452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14452),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24452 : dd4452 {
+ int e;
+ virtual void foo(); // _ZN7ee244523fooEv
+ ~ee24452(); // tgen
+ ee24452(); // tgen
+};
+//SIG(1 ee24452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24452 ::foo(){vfunc_called(this, "_ZN7ee244523fooEv");}
+ee24452 ::~ee24452(){ note_dtor("ee24452", this);} // tgen
+ee24452 ::ee24452(){ note_ctor("ee24452", this);} // tgen
+
+static void Test_ee24452()
+{
+ extern Class_Descriptor cd_ee24452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24452, buf);
+ ee24452 *dp, &lv = *(dp=new (buf) ee24452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(24,20), "ee24452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), 0, "ee24452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), 0, "ee24452");
+ check_base_class_offset(lv, (dd4452*), 0, "ee24452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24452.e");
+ test_class_info(&lv, &cd_ee24452);
+ dp->~ee24452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24452(Test_ee24452, "ee24452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24452C1Ev();
+extern void _ZN7ee24452D1Ev();
+Name_Map name_map_ee24452[] = {
+ NSPAIR(_ZN7ee24452C1Ev),
+ NSPAIR(_ZN7ee24452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee24452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24452[];
+extern void _ZN6dd44523barEv();
+extern void _ZN7ee244523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee244523fooEv,_ZTv0_n12_N7ee244523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee244523fooEv,_ZThn20_N7ee244523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+ (VTBL_ENTRY)&_ZN7ee244523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee244523fooEv,_ZTv0_n12_N7ee244523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee24452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee24452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee24452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee24452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee24452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee24452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee24452[] = {
+ {&(_ZTV7ee24452[3]), 3,11},
+ {&(_tg__ZTV6dd4452__7ee24452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee24452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee24452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee24452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee24452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee24452[4]), 4,6},
+ {&(_ZTV7ee24452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24452[];
+extern VTBL_ENTRY _ZTV7ee24452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24452[];
+static VTBL_ENTRY alt_thunk_names1312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee244523fooEv,_ZTv0_n12_N7ee244523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee244523fooEv,_ZThn20_N7ee244523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24452 = { "ee24452", // class name
+ bases_ee24452, 4,
+ &(vtc_ee24452[0]), // expected_vtbl_contents
+ &(vtt_ee24452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34452 : virtual dd4452 {
+ int e;
+ virtual void foo(); // _ZN7ee344523fooEv
+ ~ee34452(); // tgen
+ ee34452(); // tgen
+};
+//SIG(1 ee34452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34452 ::foo(){vfunc_called(this, "_ZN7ee344523fooEv");}
+ee34452 ::~ee34452(){ note_dtor("ee34452", this);} // tgen
+ee34452 ::ee34452(){ note_ctor("ee34452", this);} // tgen
+
+static void Test_ee34452()
+{
+ extern Class_Descriptor cd_ee34452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34452, buf);
+ ee34452 *dp, &lv = *(dp=new (buf) ee34452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(40,24), "ee34452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), ABISELECT(16,8), "ee34452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), ABISELECT(16,8), "ee34452");
+ check_base_class_offset(lv, (dd4452*), ABISELECT(16,8), "ee34452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34452.e");
+ test_class_info(&lv, &cd_ee34452);
+ dp->~ee34452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34452(Test_ee34452, "ee34452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34452C1Ev();
+extern void _ZN7ee34452D1Ev();
+Name_Map name_map_ee34452[] = {
+ NSPAIR(_ZN7ee34452C1Ev),
+ NSPAIR(_ZN7ee34452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee34452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34452[];
+extern void _ZN7ee344523fooEv();
+extern void _ZN6dd44523barEv();
+extern void ABISELECT(_ZTv0_n24_N7ee344523fooEv,_ZTv0_n12_N7ee344523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee344523fooEv,_ZThn24_N7ee344523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34452[0]),
+ (VTBL_ENTRY)&_ZN7ee344523fooEv,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee344523fooEv,_ZTv0_n12_N7ee344523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee34452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee34452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee34452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee34452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee34452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee34452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee34452[] = {
+ {&(_ZTV7ee34452[4]), 4,16},
+ {&(_ZTV7ee34452[9]), 9,16},
+ {&(_ZTV7ee34452[14]), 14,16},
+ {&(_tg__ZTV6dd4452__7ee34452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee34452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee34452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee34452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee34452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee34452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34452[];
+extern VTBL_ENTRY _ZTV7ee34452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34452[];
+static VTBL_ENTRY alt_thunk_names1313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee344523fooEv,_ZTv0_n12_N7ee344523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee344523fooEv,_ZThn24_N7ee344523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34452 = { "ee34452", // class name
+ bases_ee34452, 4,
+ &(vtc_ee34452[0]), // expected_vtbl_contents
+ &(vtt_ee34452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44452 : dd4452 {
+ int e;
+ virtual void bar(); // _ZN7ee444523barEv
+ ~ee44452(); // tgen
+ ee44452(); // tgen
+};
+//SIG(1 ee44452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44452 ::bar(){vfunc_called(this, "_ZN7ee444523barEv");}
+ee44452 ::~ee44452(){ note_dtor("ee44452", this);} // tgen
+ee44452 ::ee44452(){ note_ctor("ee44452", this);} // tgen
+
+static void Test_ee44452()
+{
+ extern Class_Descriptor cd_ee44452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44452, buf);
+ ee44452 *dp, &lv = *(dp=new (buf) ee44452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(24,20), "ee44452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), 0, "ee44452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), 0, "ee44452");
+ check_base_class_offset(lv, (dd4452*), 0, "ee44452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44452.e");
+ test_class_info(&lv, &cd_ee44452);
+ dp->~ee44452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44452(Test_ee44452, "ee44452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44452C1Ev();
+extern void _ZN7ee44452D1Ev();
+Name_Map name_map_ee44452[] = {
+ NSPAIR(_ZN7ee44452C1Ev),
+ NSPAIR(_ZN7ee44452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee44452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44452[];
+extern void _ZN7ee444523barEv();
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee444523barEv,_ZTv0_n16_N7ee444523barEv)();
+extern void ABISELECT(_ZThn24_N7ee444523barEv,_ZThn20_N7ee444523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44452[0]),
+ (VTBL_ENTRY)&_ZN7ee444523barEv,
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee444523barEv,_ZTv0_n16_N7ee444523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee44452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee44452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee44452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee44452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee44452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee44452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee44452[] = {
+ {&(_ZTV7ee44452[3]), 3,10},
+ {&(_tg__ZTV6dd4452__7ee44452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee44452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee44452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee44452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee44452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee44452[4]), 4,6},
+ {&(_ZTV7ee44452[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI7ee44452[];
+extern VTBL_ENTRY _ZTV7ee44452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44452[];
+static VTBL_ENTRY alt_thunk_names1314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee444523barEv,_ZTv0_n16_N7ee444523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee444523barEv,_ZThn20_N7ee444523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44452 = { "ee44452", // class name
+ bases_ee44452, 4,
+ &(vtc_ee44452[0]), // expected_vtbl_contents
+ &(vtt_ee44452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44452),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54452 : virtual dd4452 {
+ int e;
+ virtual void bar(); // _ZN7ee544523barEv
+ ~ee54452(); // tgen
+ ee54452(); // tgen
+};
+//SIG(1 ee54452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54452 ::bar(){vfunc_called(this, "_ZN7ee544523barEv");}
+ee54452 ::~ee54452(){ note_dtor("ee54452", this);} // tgen
+ee54452 ::ee54452(){ note_ctor("ee54452", this);} // tgen
+
+static void Test_ee54452()
+{
+ extern Class_Descriptor cd_ee54452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54452, buf);
+ ee54452 *dp, &lv = *(dp=new (buf) ee54452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(40,24), "ee54452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), ABISELECT(16,8), "ee54452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), ABISELECT(16,8), "ee54452");
+ check_base_class_offset(lv, (dd4452*), ABISELECT(16,8), "ee54452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54452.e");
+ test_class_info(&lv, &cd_ee54452);
+ dp->~ee54452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54452(Test_ee54452, "ee54452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54452C1Ev();
+extern void _ZN7ee54452D1Ev();
+Name_Map name_map_ee54452[] = {
+ NSPAIR(_ZN7ee54452C1Ev),
+ NSPAIR(_ZN7ee54452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee54452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54452[];
+extern void _ZN7ee544523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544523barEv,_ZTv0_n16_N7ee544523barEv)();
+extern void ABISELECT(_ZThn16_N7ee544523barEv,_ZThn8_N7ee544523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee544523barEv,_ZTv0_n16_N7ee544523barEv)();
+extern void ABISELECT(_ZThn40_N7ee544523barEv,_ZThn24_N7ee544523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54452[0]),
+ (VTBL_ENTRY)&_ZN7ee544523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544523barEv,_ZTv0_n16_N7ee544523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee544523barEv,_ZTv0_n16_N7ee544523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee54452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee54452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee54452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee54452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee54452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee54452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee54452[] = {
+ {&(_ZTV7ee54452[4]), 4,16},
+ {&(_ZTV7ee54452[9]), 9,16},
+ {&(_ZTV7ee54452[14]), 14,16},
+ {&(_tg__ZTV6dd4452__7ee54452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee54452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee54452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee54452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee54452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee54452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54452[];
+extern VTBL_ENTRY _ZTV7ee54452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54452[];
+static VTBL_ENTRY alt_thunk_names1315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee544523barEv,_ZTv0_n16_N7ee544523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee544523barEv,_ZThn24_N7ee544523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee544523barEv,_ZThn8_N7ee544523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54452 = { "ee54452", // class name
+ bases_ee54452, 4,
+ &(vtc_ee54452[0]), // expected_vtbl_contents
+ &(vtt_ee54452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64452 : dd4452 {
+ int e;
+ virtual void foo(); // _ZN7ee644523fooEv
+ virtual void bar(); // _ZN7ee644523barEv
+ ~ee64452(); // tgen
+ ee64452(); // tgen
+};
+//SIG(1 ee64452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64452 ::foo(){vfunc_called(this, "_ZN7ee644523fooEv");}
+void ee64452 ::bar(){vfunc_called(this, "_ZN7ee644523barEv");}
+ee64452 ::~ee64452(){ note_dtor("ee64452", this);} // tgen
+ee64452 ::ee64452(){ note_ctor("ee64452", this);} // tgen
+
+static void Test_ee64452()
+{
+ extern Class_Descriptor cd_ee64452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64452, buf);
+ ee64452 *dp, &lv = *(dp=new (buf) ee64452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(24,20), "ee64452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), 0, "ee64452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), 0, "ee64452");
+ check_base_class_offset(lv, (dd4452*), 0, "ee64452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64452.e");
+ test_class_info(&lv, &cd_ee64452);
+ dp->~ee64452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64452(Test_ee64452, "ee64452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64452C1Ev();
+extern void _ZN7ee64452D1Ev();
+Name_Map name_map_ee64452[] = {
+ NSPAIR(_ZN7ee64452C1Ev),
+ NSPAIR(_ZN7ee64452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee64452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64452[];
+extern void _ZN7ee644523barEv();
+extern void _ZN7ee644523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee644523fooEv,_ZTv0_n12_N7ee644523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee644523fooEv,_ZThn20_N7ee644523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee644523barEv,_ZTv0_n16_N7ee644523barEv)();
+extern void ABISELECT(_ZThn24_N7ee644523barEv,_ZThn20_N7ee644523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64452[0]),
+ (VTBL_ENTRY)&_ZN7ee644523barEv,
+ (VTBL_ENTRY)&_ZN7ee644523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee644523fooEv,_ZTv0_n12_N7ee644523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee644523barEv,_ZTv0_n16_N7ee644523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee64452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee64452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee64452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee64452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee64452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee64452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee64452[] = {
+ {&(_ZTV7ee64452[3]), 3,11},
+ {&(_tg__ZTV6dd4452__7ee64452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee64452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee64452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee64452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee64452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee64452[4]), 4,6},
+ {&(_ZTV7ee64452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64452[];
+extern VTBL_ENTRY _ZTV7ee64452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64452[];
+static VTBL_ENTRY alt_thunk_names1316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn20_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee644523barEv,_ZTv0_n16_N7ee644523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee644523barEv,_ZThn20_N7ee644523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee644523fooEv,_ZTv0_n12_N7ee644523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee644523fooEv,_ZThn20_N7ee644523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64452 = { "ee64452", // class name
+ bases_ee64452, 4,
+ &(vtc_ee64452[0]), // expected_vtbl_contents
+ &(vtt_ee64452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74452 : virtual dd4452 {
+ int e;
+ virtual void foo(); // _ZN7ee744523fooEv
+ virtual void bar(); // _ZN7ee744523barEv
+ ~ee74452(); // tgen
+ ee74452(); // tgen
+};
+//SIG(1 ee74452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74452 ::foo(){vfunc_called(this, "_ZN7ee744523fooEv");}
+void ee74452 ::bar(){vfunc_called(this, "_ZN7ee744523barEv");}
+ee74452 ::~ee74452(){ note_dtor("ee74452", this);} // tgen
+ee74452 ::ee74452(){ note_ctor("ee74452", this);} // tgen
+
+static void Test_ee74452()
+{
+ extern Class_Descriptor cd_ee74452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74452, buf);
+ ee74452 *dp, &lv = *(dp=new (buf) ee74452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd4452*), ABISELECT(40,24), "ee74452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd4452*), ABISELECT(16,8), "ee74452");
+ check_base_class_offset(lv, (cc452*)(dd4452*), ABISELECT(16,8), "ee74452");
+ check_base_class_offset(lv, (dd4452*), ABISELECT(16,8), "ee74452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74452.e");
+ test_class_info(&lv, &cd_ee74452);
+ dp->~ee74452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74452(Test_ee74452, "ee74452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74452C1Ev();
+extern void _ZN7ee74452D1Ev();
+Name_Map name_map_ee74452[] = {
+ NSPAIR(_ZN7ee74452C1Ev),
+ NSPAIR(_ZN7ee74452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd4452;
+extern VTBL_ENTRY _ZTI6dd4452[];
+extern VTBL_ENTRY _ZTV6dd4452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4452[];
+static Base_Class bases_ee74452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4452, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74452[];
+extern void _ZN7ee744523fooEv();
+extern void _ZN7ee744523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee744523barEv,_ZTv0_n16_N7ee744523barEv)();
+extern void ABISELECT(_ZThn16_N7ee744523barEv,_ZThn8_N7ee744523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee744523fooEv,_ZTv0_n12_N7ee744523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee744523fooEv,_ZThn24_N7ee744523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee744523barEv,_ZTv0_n16_N7ee744523barEv)();
+extern void ABISELECT(_ZThn40_N7ee744523barEv,_ZThn24_N7ee744523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74452[0]),
+ (VTBL_ENTRY)&_ZN7ee744523fooEv,
+ (VTBL_ENTRY)&_ZN7ee744523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744523barEv,_ZTv0_n16_N7ee744523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee744523fooEv,_ZTv0_n12_N7ee744523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee744523barEv,_ZTv0_n16_N7ee744523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74452[];
+extern void _ZN6dd44523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4452__7ee74452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN6dd44523barEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd4452__7ee74452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd4452__7ee74452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd4452__7ee74452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd4452__7ee74452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv)();
+extern void ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4452__7ee74452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv),
+};
+static VTT_ENTRY vtt_ee74452[] = {
+ {&(_ZTV7ee74452[4]), 4,17},
+ {&(_ZTV7ee74452[10]), 10,17},
+ {&(_ZTV7ee74452[15]), 15,17},
+ {&(_tg__ZTV6dd4452__7ee74452[3]), 3,4},
+ {&(_tg__ZTV5cc4526dd4452__7ee74452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd4452__7ee74452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd4452__7ee74452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd4452__7ee74452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4452__7ee74452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74452[];
+extern VTBL_ENTRY _ZTV7ee74452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74452[];
+static VTBL_ENTRY alt_thunk_names1317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd44523barEv,_ZTv0_n16_N6dd44523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd44523barEv,_ZThn16_N6dd44523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee744523fooEv,_ZTv0_n12_N7ee744523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee744523fooEv,_ZThn24_N7ee744523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee744523barEv,_ZTv0_n16_N7ee744523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee744523barEv,_ZThn24_N7ee744523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee744523barEv,_ZThn8_N7ee744523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74452 = { "ee74452", // class name
+ bases_ee74452, 4,
+ &(vtc_ee74452[0]), // expected_vtbl_contents
+ &(vtt_ee74452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5452 : virtual cc452 {
+ int d;
+ virtual void bar(); // _ZN6dd54523barEv
+ ~dd5452(); // tgen
+ dd5452(); // tgen
+};
+//SIG(-1 dd5452) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5452 ::bar(){vfunc_called(this, "_ZN6dd54523barEv");}
+dd5452 ::~dd5452(){ note_dtor("dd5452", this);} // tgen
+dd5452 ::dd5452(){ note_ctor("dd5452", this);} // tgen
+
+static void Test_dd5452()
+{
+ extern Class_Descriptor cd_dd5452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5452, buf);
+ dd5452 *dp, &lv = *(dp=new (buf) dd5452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,20), "dd5452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,8), "dd5452");
+ check_base_class_offset(lv, (cc452*), ABISELECT(16,8), "dd5452");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5452.d");
+ test_class_info(&lv, &cd_dd5452);
+ dp->~dd5452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5452(Test_dd5452, "dd5452", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5452C1Ev();
+extern void _ZN6dd5452D1Ev();
+Name_Map name_map_dd5452[] = {
+ NSPAIR(_ZN6dd5452C1Ev),
+ NSPAIR(_ZN6dd5452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd5452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd5452[];
+extern void _ZN6dd54523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd5452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd5452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd5452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd5452[] = {
+ {&(_ZTV6dd5452[4]), 4,16},
+ {&(_ZTV6dd5452[9]), 9,16},
+ {&(_ZTV6dd5452[14]), 14,16},
+ {&(_tg__ZTV5cc452__6dd5452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd5452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd5452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd5452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static VTBL_ENTRY alt_thunk_names1318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5452 = { "dd5452", // class name
+ bases_dd5452, 3,
+ &(vtc_dd5452[0]), // expected_vtbl_contents
+ &(vtt_dd5452[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5452),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05452 : dd5452 {
+ int e;
+ ~ee05452(); // tgen
+ ee05452(); // tgen
+};
+//SIG(1 ee05452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05452 ::~ee05452(){ note_dtor("ee05452", this);} // tgen
+ee05452 ::ee05452(){ note_ctor("ee05452", this);} // tgen
+
+static void Test_ee05452()
+{
+ extern Class_Descriptor cd_ee05452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05452, buf);
+ ee05452 *dp, &lv = *(dp=new (buf) ee05452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee05452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee05452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(16,12), "ee05452");
+ check_base_class_offset(lv, (dd5452*), 0, "ee05452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05452.e");
+ test_class_info(&lv, &cd_ee05452);
+ dp->~ee05452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05452(Test_ee05452, "ee05452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05452C1Ev();
+extern void _ZN7ee05452D1Ev();
+Name_Map name_map_ee05452[] = {
+ NSPAIR(_ZN7ee05452C1Ev),
+ NSPAIR(_ZN7ee05452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee05452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05452[];
+extern void _ZN6dd54523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee05452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee05452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee05452[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee05452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee05452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee05452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee05452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee05452[] = {
+ {&(_ZTV7ee05452[4]), 4,16},
+ {&(_tg__ZTV6dd5452__7ee05452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee05452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee05452[4]), 4,6},
+ {&(_ZTV7ee05452[9]), 9,16},
+ {&(_ZTV7ee05452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee05452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee05452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee05452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee05452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05452[];
+extern VTBL_ENTRY _ZTV7ee05452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05452[];
+static VTBL_ENTRY alt_thunk_names1319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05452 = { "ee05452", // class name
+ bases_ee05452, 4,
+ &(vtc_ee05452[0]), // expected_vtbl_contents
+ &(vtt_ee05452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15452 : virtual dd5452 {
+ int e;
+ ~ee15452(); // tgen
+ ee15452(); // tgen
+};
+//SIG(1 ee15452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15452 ::~ee15452(){ note_dtor("ee15452", this);} // tgen
+ee15452 ::ee15452(){ note_ctor("ee15452", this);} // tgen
+
+static void Test_ee15452()
+{
+ extern Class_Descriptor cd_ee15452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15452, buf);
+ ee15452 *dp, &lv = *(dp=new (buf) ee15452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee15452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee15452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(32,16), "ee15452");
+ check_base_class_offset(lv, (dd5452*), ABISELECT(16,8), "ee15452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15452.e");
+ test_class_info(&lv, &cd_ee15452);
+ dp->~ee15452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15452(Test_ee15452, "ee15452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15452C1Ev();
+extern void _ZN7ee15452D1Ev();
+Name_Map name_map_ee15452[] = {
+ NSPAIR(_ZN7ee15452C1Ev),
+ NSPAIR(_ZN7ee15452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee15452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15452[];
+extern void _ZN6dd54523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15452[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee15452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee15452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee15452[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee15452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee15452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee15452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee15452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee15452[] = {
+ {&(_ZTV7ee15452[5]), 5,22},
+ {&(_ZTV7ee15452[10]), 10,22},
+ {&(_ZTV7ee15452[15]), 15,22},
+ {&(_ZTV7ee15452[20]), 20,22},
+ {&(_tg__ZTV6dd5452__7ee15452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee15452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee15452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee15452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee15452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee15452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee15452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15452[];
+extern VTBL_ENTRY _ZTV7ee15452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15452[];
+static VTBL_ENTRY alt_thunk_names1320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15452 = { "ee15452", // class name
+ bases_ee15452, 4,
+ &(vtc_ee15452[0]), // expected_vtbl_contents
+ &(vtt_ee15452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15452),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25452 : dd5452 {
+ int e;
+ virtual void foo(); // _ZN7ee254523fooEv
+ ~ee25452(); // tgen
+ ee25452(); // tgen
+};
+//SIG(1 ee25452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25452 ::foo(){vfunc_called(this, "_ZN7ee254523fooEv");}
+ee25452 ::~ee25452(){ note_dtor("ee25452", this);} // tgen
+ee25452 ::ee25452(){ note_ctor("ee25452", this);} // tgen
+
+static void Test_ee25452()
+{
+ extern Class_Descriptor cd_ee25452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25452, buf);
+ ee25452 *dp, &lv = *(dp=new (buf) ee25452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee25452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee25452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(16,12), "ee25452");
+ check_base_class_offset(lv, (dd5452*), 0, "ee25452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25452.e");
+ test_class_info(&lv, &cd_ee25452);
+ dp->~ee25452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25452(Test_ee25452, "ee25452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25452C1Ev();
+extern void _ZN7ee25452D1Ev();
+Name_Map name_map_ee25452[] = {
+ NSPAIR(_ZN7ee25452C1Ev),
+ NSPAIR(_ZN7ee25452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee25452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25452[];
+extern void _ZN6dd54523barEv();
+extern void _ZN7ee254523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee254523fooEv,_ZTv0_n12_N7ee254523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee254523fooEv,_ZThn24_N7ee254523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+ (VTBL_ENTRY)&_ZN7ee254523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee254523fooEv,_ZTv0_n12_N7ee254523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee25452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee25452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee25452[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee25452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee25452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee25452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee25452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee25452[] = {
+ {&(_ZTV7ee25452[4]), 4,17},
+ {&(_tg__ZTV6dd5452__7ee25452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee25452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee25452[4]), 4,6},
+ {&(_ZTV7ee25452[10]), 10,17},
+ {&(_ZTV7ee25452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee25452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee25452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee25452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee25452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25452[];
+extern VTBL_ENTRY _ZTV7ee25452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25452[];
+static VTBL_ENTRY alt_thunk_names1321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee254523fooEv,_ZTv0_n12_N7ee254523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee254523fooEv,_ZThn24_N7ee254523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25452 = { "ee25452", // class name
+ bases_ee25452, 4,
+ &(vtc_ee25452[0]), // expected_vtbl_contents
+ &(vtt_ee25452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35452 : virtual dd5452 {
+ int e;
+ virtual void foo(); // _ZN7ee354523fooEv
+ ~ee35452(); // tgen
+ ee35452(); // tgen
+};
+//SIG(1 ee35452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35452 ::foo(){vfunc_called(this, "_ZN7ee354523fooEv");}
+ee35452 ::~ee35452(){ note_dtor("ee35452", this);} // tgen
+ee35452 ::ee35452(){ note_ctor("ee35452", this);} // tgen
+
+static void Test_ee35452()
+{
+ extern Class_Descriptor cd_ee35452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35452, buf);
+ ee35452 *dp, &lv = *(dp=new (buf) ee35452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee35452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee35452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(32,16), "ee35452");
+ check_base_class_offset(lv, (dd5452*), ABISELECT(16,8), "ee35452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35452.e");
+ test_class_info(&lv, &cd_ee35452);
+ dp->~ee35452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35452(Test_ee35452, "ee35452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35452C1Ev();
+extern void _ZN7ee35452D1Ev();
+Name_Map name_map_ee35452[] = {
+ NSPAIR(_ZN7ee35452C1Ev),
+ NSPAIR(_ZN7ee35452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee35452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35452[];
+extern void _ZN7ee354523fooEv();
+extern void _ZN6dd54523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee354523fooEv,_ZTv0_n12_N7ee354523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee354523fooEv,_ZThn28_N7ee354523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35452[0]),
+ (VTBL_ENTRY)&_ZN7ee354523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee354523fooEv,_ZTv0_n12_N7ee354523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee35452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee35452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee35452[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee35452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee35452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee35452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee35452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee35452[] = {
+ {&(_ZTV7ee35452[5]), 5,23},
+ {&(_ZTV7ee35452[11]), 11,23},
+ {&(_ZTV7ee35452[16]), 16,23},
+ {&(_ZTV7ee35452[21]), 21,23},
+ {&(_tg__ZTV6dd5452__7ee35452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee35452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee35452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee35452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee35452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee35452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee35452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35452[];
+extern VTBL_ENTRY _ZTV7ee35452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35452[];
+static VTBL_ENTRY alt_thunk_names1322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee354523fooEv,_ZTv0_n12_N7ee354523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee354523fooEv,_ZThn28_N7ee354523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35452 = { "ee35452", // class name
+ bases_ee35452, 4,
+ &(vtc_ee35452[0]), // expected_vtbl_contents
+ &(vtt_ee35452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35452),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45452 : dd5452 {
+ int e;
+ virtual void bar(); // _ZN7ee454523barEv
+ ~ee45452(); // tgen
+ ee45452(); // tgen
+};
+//SIG(1 ee45452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45452 ::bar(){vfunc_called(this, "_ZN7ee454523barEv");}
+ee45452 ::~ee45452(){ note_dtor("ee45452", this);} // tgen
+ee45452 ::ee45452(){ note_ctor("ee45452", this);} // tgen
+
+static void Test_ee45452()
+{
+ extern Class_Descriptor cd_ee45452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45452, buf);
+ ee45452 *dp, &lv = *(dp=new (buf) ee45452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee45452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee45452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(16,12), "ee45452");
+ check_base_class_offset(lv, (dd5452*), 0, "ee45452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45452.e");
+ test_class_info(&lv, &cd_ee45452);
+ dp->~ee45452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45452(Test_ee45452, "ee45452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45452C1Ev();
+extern void _ZN7ee45452D1Ev();
+Name_Map name_map_ee45452[] = {
+ NSPAIR(_ZN7ee45452C1Ev),
+ NSPAIR(_ZN7ee45452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee45452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45452[];
+extern void _ZN7ee454523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454523barEv,_ZTv0_n16_N7ee454523barEv)();
+extern void ABISELECT(_ZThn16_N7ee454523barEv,_ZThn12_N7ee454523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee454523barEv,_ZTv0_n16_N7ee454523barEv)();
+extern void ABISELECT(_ZThn32_N7ee454523barEv,_ZThn24_N7ee454523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45452[0]),
+ (VTBL_ENTRY)&_ZN7ee454523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454523barEv,_ZTv0_n16_N7ee454523barEv),
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee454523barEv,_ZTv0_n16_N7ee454523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee45452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee45452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee45452[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee45452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee45452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee45452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee45452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee45452[] = {
+ {&(_ZTV7ee45452[4]), 4,16},
+ {&(_tg__ZTV6dd5452__7ee45452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee45452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee45452[4]), 4,6},
+ {&(_ZTV7ee45452[9]), 9,16},
+ {&(_ZTV7ee45452[14]), 14,16},
+ {&(_tg__ZTV5cc452__7ee45452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee45452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee45452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee45452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45452[];
+extern VTBL_ENTRY _ZTV7ee45452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45452[];
+static VTBL_ENTRY alt_thunk_names1323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee454523barEv,_ZTv0_n16_N7ee454523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee454523barEv,_ZThn24_N7ee454523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee454523barEv,_ZThn12_N7ee454523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45452 = { "ee45452", // class name
+ bases_ee45452, 4,
+ &(vtc_ee45452[0]), // expected_vtbl_contents
+ &(vtt_ee45452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45452),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55452 : virtual dd5452 {
+ int e;
+ virtual void bar(); // _ZN7ee554523barEv
+ ~ee55452(); // tgen
+ ee55452(); // tgen
+};
+//SIG(1 ee55452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55452 ::bar(){vfunc_called(this, "_ZN7ee554523barEv");}
+ee55452 ::~ee55452(){ note_dtor("ee55452", this);} // tgen
+ee55452 ::ee55452(){ note_ctor("ee55452", this);} // tgen
+
+static void Test_ee55452()
+{
+ extern Class_Descriptor cd_ee55452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55452, buf);
+ ee55452 *dp, &lv = *(dp=new (buf) ee55452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee55452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee55452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(32,16), "ee55452");
+ check_base_class_offset(lv, (dd5452*), ABISELECT(16,8), "ee55452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55452.e");
+ test_class_info(&lv, &cd_ee55452);
+ dp->~ee55452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55452(Test_ee55452, "ee55452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55452C1Ev();
+extern void _ZN7ee55452D1Ev();
+Name_Map name_map_ee55452[] = {
+ NSPAIR(_ZN7ee55452C1Ev),
+ NSPAIR(_ZN7ee55452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee55452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55452[];
+extern void _ZN7ee554523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee554523barEv,_ZTv0_n20_N7ee554523barEv)();
+extern void ABISELECT(_ZThn16_N7ee554523barEv,_ZThn8_N7ee554523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee554523barEv,_ZTv0_n16_N7ee554523barEv)();
+extern void ABISELECT(_ZThn32_N7ee554523barEv,_ZThn16_N7ee554523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee554523barEv,_ZTv0_n16_N7ee554523barEv)();
+extern void ABISELECT(_ZThn48_N7ee554523barEv,_ZThn28_N7ee554523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55452[0]),
+ (VTBL_ENTRY)&_ZN7ee554523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee554523barEv,_ZTv0_n20_N7ee554523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554523barEv,_ZTv0_n16_N7ee554523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee554523barEv,_ZTv0_n16_N7ee554523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee55452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee55452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee55452[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee55452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee55452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee55452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee55452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee55452[] = {
+ {&(_ZTV7ee55452[5]), 5,23},
+ {&(_ZTV7ee55452[11]), 11,23},
+ {&(_ZTV7ee55452[16]), 16,23},
+ {&(_ZTV7ee55452[21]), 21,23},
+ {&(_tg__ZTV6dd5452__7ee55452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee55452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee55452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee55452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee55452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee55452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee55452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55452[];
+extern VTBL_ENTRY _ZTV7ee55452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55452[];
+static VTBL_ENTRY alt_thunk_names1324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee554523barEv,_ZTv0_n16_N7ee554523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee554523barEv,_ZThn28_N7ee554523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee554523barEv,_ZThn16_N7ee554523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee554523barEv,_ZTv0_n20_N7ee554523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee554523barEv,_ZThn8_N7ee554523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55452 = { "ee55452", // class name
+ bases_ee55452, 4,
+ &(vtc_ee55452[0]), // expected_vtbl_contents
+ &(vtt_ee55452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55452),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65452 : dd5452 {
+ int e;
+ virtual void foo(); // _ZN7ee654523fooEv
+ virtual void bar(); // _ZN7ee654523barEv
+ ~ee65452(); // tgen
+ ee65452(); // tgen
+};
+//SIG(1 ee65452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65452 ::foo(){vfunc_called(this, "_ZN7ee654523fooEv");}
+void ee65452 ::bar(){vfunc_called(this, "_ZN7ee654523barEv");}
+ee65452 ::~ee65452(){ note_dtor("ee65452", this);} // tgen
+ee65452 ::ee65452(){ note_ctor("ee65452", this);} // tgen
+
+static void Test_ee65452()
+{
+ extern Class_Descriptor cd_ee65452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65452, buf);
+ ee65452 *dp, &lv = *(dp=new (buf) ee65452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee65452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee65452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(16,12), "ee65452");
+ check_base_class_offset(lv, (dd5452*), 0, "ee65452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65452.e");
+ test_class_info(&lv, &cd_ee65452);
+ dp->~ee65452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65452(Test_ee65452, "ee65452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65452C1Ev();
+extern void _ZN7ee65452D1Ev();
+Name_Map name_map_ee65452[] = {
+ NSPAIR(_ZN7ee65452C1Ev),
+ NSPAIR(_ZN7ee65452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee65452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65452[];
+extern void _ZN7ee654523barEv();
+extern void _ZN7ee654523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee654523barEv,_ZTv0_n16_N7ee654523barEv)();
+extern void ABISELECT(_ZThn16_N7ee654523barEv,_ZThn12_N7ee654523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee654523fooEv,_ZTv0_n12_N7ee654523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee654523fooEv,_ZThn24_N7ee654523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee654523barEv,_ZTv0_n16_N7ee654523barEv)();
+extern void ABISELECT(_ZThn32_N7ee654523barEv,_ZThn24_N7ee654523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65452[0]),
+ (VTBL_ENTRY)&_ZN7ee654523barEv,
+ (VTBL_ENTRY)&_ZN7ee654523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654523barEv,_ZTv0_n16_N7ee654523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee654523fooEv,_ZTv0_n12_N7ee654523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee654523barEv,_ZTv0_n16_N7ee654523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee65452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee65452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee65452[] = {
+ ABISELECT(-32,-24),
+ 0,
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee65452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee65452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee65452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee65452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee65452[] = {
+ {&(_ZTV7ee65452[4]), 4,17},
+ {&(_tg__ZTV6dd5452__7ee65452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee65452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee65452[4]), 4,6},
+ {&(_ZTV7ee65452[10]), 10,17},
+ {&(_ZTV7ee65452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee65452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee65452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee65452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee65452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65452[];
+extern VTBL_ENTRY _ZTV7ee65452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65452[];
+static VTBL_ENTRY alt_thunk_names1325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn24_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn12_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee654523fooEv,_ZTv0_n12_N7ee654523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee654523fooEv,_ZThn24_N7ee654523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee654523barEv,_ZTv0_n16_N7ee654523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee654523barEv,_ZThn24_N7ee654523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee654523barEv,_ZThn12_N7ee654523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65452 = { "ee65452", // class name
+ bases_ee65452, 4,
+ &(vtc_ee65452[0]), // expected_vtbl_contents
+ &(vtt_ee65452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75452 : virtual dd5452 {
+ int e;
+ virtual void foo(); // _ZN7ee754523fooEv
+ virtual void bar(); // _ZN7ee754523barEv
+ ~ee75452(); // tgen
+ ee75452(); // tgen
+};
+//SIG(1 ee75452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75452 ::foo(){vfunc_called(this, "_ZN7ee754523fooEv");}
+void ee75452 ::bar(){vfunc_called(this, "_ZN7ee754523barEv");}
+ee75452 ::~ee75452(){ note_dtor("ee75452", this);} // tgen
+ee75452 ::ee75452(){ note_ctor("ee75452", this);} // tgen
+
+static void Test_ee75452()
+{
+ extern Class_Descriptor cd_ee75452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75452, buf);
+ ee75452 *dp, &lv = *(dp=new (buf) ee75452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee75452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee75452");
+ check_base_class_offset(lv, (cc452*)(dd5452*), ABISELECT(32,16), "ee75452");
+ check_base_class_offset(lv, (dd5452*), ABISELECT(16,8), "ee75452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75452.e");
+ test_class_info(&lv, &cd_ee75452);
+ dp->~ee75452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75452(Test_ee75452, "ee75452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75452C1Ev();
+extern void _ZN7ee75452D1Ev();
+Name_Map name_map_ee75452[] = {
+ NSPAIR(_ZN7ee75452C1Ev),
+ NSPAIR(_ZN7ee75452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd5452;
+extern VTBL_ENTRY _ZTI6dd5452[];
+extern VTBL_ENTRY _ZTV6dd5452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5452[];
+static Base_Class bases_ee75452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5452, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75452[];
+extern void _ZN7ee754523fooEv();
+extern void _ZN7ee754523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee754523barEv,_ZTv0_n20_N7ee754523barEv)();
+extern void ABISELECT(_ZThn16_N7ee754523barEv,_ZThn8_N7ee754523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754523barEv,_ZTv0_n16_N7ee754523barEv)();
+extern void ABISELECT(_ZThn32_N7ee754523barEv,_ZThn16_N7ee754523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee754523fooEv,_ZTv0_n12_N7ee754523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee754523fooEv,_ZThn28_N7ee754523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee754523barEv,_ZTv0_n16_N7ee754523barEv)();
+extern void ABISELECT(_ZThn48_N7ee754523barEv,_ZThn28_N7ee754523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75452[0]),
+ (VTBL_ENTRY)&_ZN7ee754523fooEv,
+ (VTBL_ENTRY)&_ZN7ee754523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee754523barEv,_ZTv0_n20_N7ee754523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754523barEv,_ZTv0_n16_N7ee754523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee754523fooEv,_ZTv0_n12_N7ee754523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee754523barEv,_ZTv0_n16_N7ee754523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75452[];
+extern void _ZN6dd54523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5452__7ee75452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN6dd54523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd5452__7ee75452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv)();
+extern void ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5452__7ee75452[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee75452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee75452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee75452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee75452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee75452[] = {
+ {&(_ZTV7ee75452[5]), 5,24},
+ {&(_ZTV7ee75452[12]), 12,24},
+ {&(_ZTV7ee75452[17]), 17,24},
+ {&(_ZTV7ee75452[22]), 22,24},
+ {&(_tg__ZTV6dd5452__7ee75452[4]), 4,5},
+ {&(_tg__ZTV5cc452__6dd5452__7ee75452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5452__7ee75452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee75452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee75452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee75452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee75452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75452[];
+extern VTBL_ENTRY _ZTV7ee75452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75452[];
+static VTBL_ENTRY alt_thunk_names1326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd54523barEv,_ZTv0_n16_N6dd54523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd54523barEv,_ZThn20_N6dd54523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd54523barEv,_ZThn8_N6dd54523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee754523fooEv,_ZTv0_n12_N7ee754523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee754523fooEv,_ZThn28_N7ee754523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee754523barEv,_ZTv0_n16_N7ee754523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee754523barEv,_ZThn28_N7ee754523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee754523barEv,_ZThn16_N7ee754523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee754523barEv,_ZTv0_n20_N7ee754523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee754523barEv,_ZThn8_N7ee754523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75452 = { "ee75452", // class name
+ bases_ee75452, 4,
+ &(vtc_ee75452[0]), // expected_vtbl_contents
+ &(vtt_ee75452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75452),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6452 : cc452 {
+ int d;
+ virtual void bar(); // _ZN6dd64523barEv
+ virtual void foo(); // _ZN6dd64523fooEv
+ ~dd6452(); // tgen
+ dd6452(); // tgen
+};
+//SIG(-1 dd6452) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6452 ::bar(){vfunc_called(this, "_ZN6dd64523barEv");}
+void dd6452 ::foo(){vfunc_called(this, "_ZN6dd64523fooEv");}
+dd6452 ::~dd6452(){ note_dtor("dd6452", this);} // tgen
+dd6452 ::dd6452(){ note_ctor("dd6452", this);} // tgen
+
+static void Test_dd6452()
+{
+ extern Class_Descriptor cd_dd6452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6452, buf);
+ dd6452 *dp, &lv = *(dp=new (buf) dd6452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(24,16), "dd6452");
+ check_base_class_offset(lv, (bb52*)(cc452*), 0, "dd6452");
+ check_base_class_offset(lv, (cc452*), 0, "dd6452");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6452.d");
+ test_class_info(&lv, &cd_dd6452);
+ dp->~dd6452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6452(Test_dd6452, "dd6452", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6452C1Ev();
+extern void _ZN6dd6452D1Ev();
+Name_Map name_map_dd6452[] = {
+ NSPAIR(_ZN6dd6452C1Ev),
+ NSPAIR(_ZN6dd6452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd6452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd6452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd6452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd6452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd6452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd6452[] = {
+ {&(_ZTV6dd6452[3]), 3,11},
+ {&(_tg__ZTV5cc452__6dd6452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd6452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd6452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd6452[4]), 4,6},
+ {&(_ZTV6dd6452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static VTBL_ENTRY alt_thunk_names1327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6452 = { "dd6452", // class name
+ bases_dd6452, 3,
+ &(vtc_dd6452[0]), // expected_vtbl_contents
+ &(vtt_dd6452[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6452),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06452 : dd6452 {
+ int e;
+ ~ee06452(); // tgen
+ ee06452(); // tgen
+};
+//SIG(1 ee06452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06452 ::~ee06452(){ note_dtor("ee06452", this);} // tgen
+ee06452 ::ee06452(){ note_ctor("ee06452", this);} // tgen
+
+static void Test_ee06452()
+{
+ extern Class_Descriptor cd_ee06452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06452, buf);
+ ee06452 *dp, &lv = *(dp=new (buf) ee06452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(24,20), "ee06452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), 0, "ee06452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), 0, "ee06452");
+ check_base_class_offset(lv, (dd6452*), 0, "ee06452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06452.e");
+ test_class_info(&lv, &cd_ee06452);
+ dp->~ee06452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06452(Test_ee06452, "ee06452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06452C1Ev();
+extern void _ZN7ee06452D1Ev();
+Name_Map name_map_ee06452[] = {
+ NSPAIR(_ZN7ee06452C1Ev),
+ NSPAIR(_ZN7ee06452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee06452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee06452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee06452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee06452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee06452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee06452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee06452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee06452[] = {
+ {&(_ZTV7ee06452[3]), 3,11},
+ {&(_tg__ZTV6dd6452__7ee06452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee06452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee06452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee06452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee06452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee06452[4]), 4,6},
+ {&(_ZTV7ee06452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06452[];
+extern VTBL_ENTRY _ZTV7ee06452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06452[];
+static VTBL_ENTRY alt_thunk_names1328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06452 = { "ee06452", // class name
+ bases_ee06452, 4,
+ &(vtc_ee06452[0]), // expected_vtbl_contents
+ &(vtt_ee06452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16452 : virtual dd6452 {
+ int e;
+ ~ee16452(); // tgen
+ ee16452(); // tgen
+};
+//SIG(1 ee16452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16452 ::~ee16452(){ note_dtor("ee16452", this);} // tgen
+ee16452 ::ee16452(){ note_ctor("ee16452", this);} // tgen
+
+static void Test_ee16452()
+{
+ extern Class_Descriptor cd_ee16452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16452, buf);
+ ee16452 *dp, &lv = *(dp=new (buf) ee16452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(40,24), "ee16452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), ABISELECT(16,8), "ee16452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), ABISELECT(16,8), "ee16452");
+ check_base_class_offset(lv, (dd6452*), ABISELECT(16,8), "ee16452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16452.e");
+ test_class_info(&lv, &cd_ee16452);
+ dp->~ee16452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16452(Test_ee16452, "ee16452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16452C1Ev();
+extern void _ZN7ee16452D1Ev();
+Name_Map name_map_ee16452[] = {
+ NSPAIR(_ZN7ee16452C1Ev),
+ NSPAIR(_ZN7ee16452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee16452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16452[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee16452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee16452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee16452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee16452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee16452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee16452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee16452[] = {
+ {&(_ZTV7ee16452[4]), 4,17},
+ {&(_ZTV7ee16452[9]), 9,17},
+ {&(_ZTV7ee16452[15]), 15,17},
+ {&(_tg__ZTV6dd6452__7ee16452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee16452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee16452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee16452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee16452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee16452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16452[];
+extern VTBL_ENTRY _ZTV7ee16452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16452[];
+static VTBL_ENTRY alt_thunk_names1329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16452 = { "ee16452", // class name
+ bases_ee16452, 4,
+ &(vtc_ee16452[0]), // expected_vtbl_contents
+ &(vtt_ee16452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26452 : dd6452 {
+ int e;
+ virtual void foo(); // _ZN7ee264523fooEv
+ ~ee26452(); // tgen
+ ee26452(); // tgen
+};
+//SIG(1 ee26452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26452 ::foo(){vfunc_called(this, "_ZN7ee264523fooEv");}
+ee26452 ::~ee26452(){ note_dtor("ee26452", this);} // tgen
+ee26452 ::ee26452(){ note_ctor("ee26452", this);} // tgen
+
+static void Test_ee26452()
+{
+ extern Class_Descriptor cd_ee26452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26452, buf);
+ ee26452 *dp, &lv = *(dp=new (buf) ee26452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(24,20), "ee26452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), 0, "ee26452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), 0, "ee26452");
+ check_base_class_offset(lv, (dd6452*), 0, "ee26452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26452.e");
+ test_class_info(&lv, &cd_ee26452);
+ dp->~ee26452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26452(Test_ee26452, "ee26452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26452C1Ev();
+extern void _ZN7ee26452D1Ev();
+Name_Map name_map_ee26452[] = {
+ NSPAIR(_ZN7ee26452C1Ev),
+ NSPAIR(_ZN7ee26452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee26452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN7ee264523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee264523fooEv,_ZTv0_n12_N7ee264523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee264523fooEv,_ZThn20_N7ee264523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN7ee264523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee264523fooEv,_ZTv0_n12_N7ee264523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee26452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee26452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee26452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee26452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee26452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee26452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee26452[] = {
+ {&(_ZTV7ee26452[3]), 3,11},
+ {&(_tg__ZTV6dd6452__7ee26452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee26452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee26452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee26452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee26452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee26452[4]), 4,6},
+ {&(_ZTV7ee26452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26452[];
+extern VTBL_ENTRY _ZTV7ee26452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26452[];
+static VTBL_ENTRY alt_thunk_names1330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee264523fooEv,_ZTv0_n12_N7ee264523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee264523fooEv,_ZThn20_N7ee264523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26452 = { "ee26452", // class name
+ bases_ee26452, 4,
+ &(vtc_ee26452[0]), // expected_vtbl_contents
+ &(vtt_ee26452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36452 : virtual dd6452 {
+ int e;
+ virtual void foo(); // _ZN7ee364523fooEv
+ ~ee36452(); // tgen
+ ee36452(); // tgen
+};
+//SIG(1 ee36452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36452 ::foo(){vfunc_called(this, "_ZN7ee364523fooEv");}
+ee36452 ::~ee36452(){ note_dtor("ee36452", this);} // tgen
+ee36452 ::ee36452(){ note_ctor("ee36452", this);} // tgen
+
+static void Test_ee36452()
+{
+ extern Class_Descriptor cd_ee36452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36452, buf);
+ ee36452 *dp, &lv = *(dp=new (buf) ee36452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(40,24), "ee36452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), ABISELECT(16,8), "ee36452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), ABISELECT(16,8), "ee36452");
+ check_base_class_offset(lv, (dd6452*), ABISELECT(16,8), "ee36452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36452.e");
+ test_class_info(&lv, &cd_ee36452);
+ dp->~ee36452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36452(Test_ee36452, "ee36452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36452C1Ev();
+extern void _ZN7ee36452D1Ev();
+Name_Map name_map_ee36452[] = {
+ NSPAIR(_ZN7ee36452C1Ev),
+ NSPAIR(_ZN7ee36452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee36452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36452[];
+extern void _ZN7ee364523fooEv();
+extern void _ZN6dd64523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee364523fooEv,_ZTv0_n20_N7ee364523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee364523fooEv,_ZThn8_N7ee364523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee364523fooEv,_ZTv0_n12_N7ee364523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee364523fooEv,_ZThn24_N7ee364523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36452[0]),
+ (VTBL_ENTRY)&_ZN7ee364523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee364523fooEv,_ZTv0_n20_N7ee364523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee364523fooEv,_ZTv0_n12_N7ee364523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee36452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee36452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee36452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee36452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee36452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee36452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee36452[] = {
+ {&(_ZTV7ee36452[4]), 4,18},
+ {&(_ZTV7ee36452[10]), 10,18},
+ {&(_ZTV7ee36452[16]), 16,18},
+ {&(_tg__ZTV6dd6452__7ee36452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee36452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee36452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee36452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee36452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee36452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36452[];
+extern VTBL_ENTRY _ZTV7ee36452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36452[];
+static VTBL_ENTRY alt_thunk_names1331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee364523fooEv,_ZTv0_n12_N7ee364523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee364523fooEv,_ZThn24_N7ee364523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee364523fooEv,_ZTv0_n20_N7ee364523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee364523fooEv,_ZThn8_N7ee364523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36452 = { "ee36452", // class name
+ bases_ee36452, 4,
+ &(vtc_ee36452[0]), // expected_vtbl_contents
+ &(vtt_ee36452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36452),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46452 : dd6452 {
+ int e;
+ virtual void bar(); // _ZN7ee464523barEv
+ ~ee46452(); // tgen
+ ee46452(); // tgen
+};
+//SIG(1 ee46452) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46452 ::bar(){vfunc_called(this, "_ZN7ee464523barEv");}
+ee46452 ::~ee46452(){ note_dtor("ee46452", this);} // tgen
+ee46452 ::ee46452(){ note_ctor("ee46452", this);} // tgen
+
+static void Test_ee46452()
+{
+ extern Class_Descriptor cd_ee46452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46452, buf);
+ ee46452 *dp, &lv = *(dp=new (buf) ee46452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(24,20), "ee46452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), 0, "ee46452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), 0, "ee46452");
+ check_base_class_offset(lv, (dd6452*), 0, "ee46452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46452.e");
+ test_class_info(&lv, &cd_ee46452);
+ dp->~ee46452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46452(Test_ee46452, "ee46452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46452C1Ev();
+extern void _ZN7ee46452D1Ev();
+Name_Map name_map_ee46452[] = {
+ NSPAIR(_ZN7ee46452C1Ev),
+ NSPAIR(_ZN7ee46452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee46452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46452[];
+extern void _ZN7ee464523barEv();
+extern void _ZN6dd64523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee464523barEv,_ZTv0_n16_N7ee464523barEv)();
+extern void ABISELECT(_ZThn24_N7ee464523barEv,_ZThn20_N7ee464523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46452[0]),
+ (VTBL_ENTRY)&_ZN7ee464523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee464523barEv,_ZTv0_n16_N7ee464523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee46452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee46452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee46452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee46452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee46452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee46452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee46452[] = {
+ {&(_ZTV7ee46452[3]), 3,11},
+ {&(_tg__ZTV6dd6452__7ee46452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee46452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee46452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee46452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee46452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee46452[4]), 4,6},
+ {&(_ZTV7ee46452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46452[];
+extern VTBL_ENTRY _ZTV7ee46452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46452[];
+static VTBL_ENTRY alt_thunk_names1332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee464523barEv,_ZTv0_n16_N7ee464523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee464523barEv,_ZThn20_N7ee464523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46452 = { "ee46452", // class name
+ bases_ee46452, 4,
+ &(vtc_ee46452[0]), // expected_vtbl_contents
+ &(vtt_ee46452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56452 : virtual dd6452 {
+ int e;
+ virtual void bar(); // _ZN7ee564523barEv
+ ~ee56452(); // tgen
+ ee56452(); // tgen
+};
+//SIG(1 ee56452) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56452 ::bar(){vfunc_called(this, "_ZN7ee564523barEv");}
+ee56452 ::~ee56452(){ note_dtor("ee56452", this);} // tgen
+ee56452 ::ee56452(){ note_ctor("ee56452", this);} // tgen
+
+static void Test_ee56452()
+{
+ extern Class_Descriptor cd_ee56452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56452, buf);
+ ee56452 *dp, &lv = *(dp=new (buf) ee56452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(40,24), "ee56452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), ABISELECT(16,8), "ee56452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), ABISELECT(16,8), "ee56452");
+ check_base_class_offset(lv, (dd6452*), ABISELECT(16,8), "ee56452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56452.e");
+ test_class_info(&lv, &cd_ee56452);
+ dp->~ee56452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56452(Test_ee56452, "ee56452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56452C1Ev();
+extern void _ZN7ee56452D1Ev();
+Name_Map name_map_ee56452[] = {
+ NSPAIR(_ZN7ee56452C1Ev),
+ NSPAIR(_ZN7ee56452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee56452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56452[];
+extern void _ZN7ee564523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee564523barEv,_ZTv0_n16_N7ee564523barEv)();
+extern void ABISELECT(_ZThn16_N7ee564523barEv,_ZThn8_N7ee564523barEv)() __attribute__((weak));
+extern void _ZN6dd64523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee564523barEv,_ZTv0_n16_N7ee564523barEv)();
+extern void ABISELECT(_ZThn40_N7ee564523barEv,_ZThn24_N7ee564523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56452[0]),
+ (VTBL_ENTRY)&_ZN7ee564523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564523barEv,_ZTv0_n16_N7ee564523barEv),
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee564523barEv,_ZTv0_n16_N7ee564523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee56452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee56452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee56452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee56452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee56452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee56452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee56452[] = {
+ {&(_ZTV7ee56452[4]), 4,18},
+ {&(_ZTV7ee56452[10]), 10,18},
+ {&(_ZTV7ee56452[16]), 16,18},
+ {&(_tg__ZTV6dd6452__7ee56452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee56452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee56452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee56452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee56452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee56452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56452[];
+extern VTBL_ENTRY _ZTV7ee56452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56452[];
+static VTBL_ENTRY alt_thunk_names1333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee564523barEv,_ZTv0_n16_N7ee564523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee564523barEv,_ZThn24_N7ee564523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee564523barEv,_ZThn8_N7ee564523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56452 = { "ee56452", // class name
+ bases_ee56452, 4,
+ &(vtc_ee56452[0]), // expected_vtbl_contents
+ &(vtt_ee56452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56452),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66452 : dd6452 {
+ int e;
+ virtual void foo(); // _ZN7ee664523fooEv
+ virtual void bar(); // _ZN7ee664523barEv
+ ~ee66452(); // tgen
+ ee66452(); // tgen
+};
+//SIG(1 ee66452) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66452 ::foo(){vfunc_called(this, "_ZN7ee664523fooEv");}
+void ee66452 ::bar(){vfunc_called(this, "_ZN7ee664523barEv");}
+ee66452 ::~ee66452(){ note_dtor("ee66452", this);} // tgen
+ee66452 ::ee66452(){ note_ctor("ee66452", this);} // tgen
+
+static void Test_ee66452()
+{
+ extern Class_Descriptor cd_ee66452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66452, buf);
+ ee66452 *dp, &lv = *(dp=new (buf) ee66452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(24,20), "ee66452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), 0, "ee66452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), 0, "ee66452");
+ check_base_class_offset(lv, (dd6452*), 0, "ee66452");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66452.e");
+ test_class_info(&lv, &cd_ee66452);
+ dp->~ee66452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66452(Test_ee66452, "ee66452", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66452C1Ev();
+extern void _ZN7ee66452D1Ev();
+Name_Map name_map_ee66452[] = {
+ NSPAIR(_ZN7ee66452C1Ev),
+ NSPAIR(_ZN7ee66452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee66452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66452[];
+extern void _ZN7ee664523barEv();
+extern void _ZN7ee664523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee664523fooEv,_ZTv0_n12_N7ee664523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee664523fooEv,_ZThn20_N7ee664523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee664523barEv,_ZTv0_n16_N7ee664523barEv)();
+extern void ABISELECT(_ZThn24_N7ee664523barEv,_ZThn20_N7ee664523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66452[0]),
+ (VTBL_ENTRY)&_ZN7ee664523barEv,
+ (VTBL_ENTRY)&_ZN7ee664523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee664523fooEv,_ZTv0_n12_N7ee664523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee664523barEv,_ZTv0_n16_N7ee664523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee66452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee66452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee66452[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee66452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee66452[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee66452[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee66452[] = {
+ {&(_ZTV7ee66452[3]), 3,11},
+ {&(_tg__ZTV6dd6452__7ee66452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee66452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee66452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee66452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee66452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee66452[4]), 4,6},
+ {&(_ZTV7ee66452[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66452[];
+extern VTBL_ENTRY _ZTV7ee66452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66452[];
+static VTBL_ENTRY alt_thunk_names1334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn20_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn20_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn20_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee664523barEv,_ZTv0_n16_N7ee664523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee664523barEv,_ZThn20_N7ee664523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee664523fooEv,_ZTv0_n12_N7ee664523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee664523fooEv,_ZThn20_N7ee664523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66452 = { "ee66452", // class name
+ bases_ee66452, 4,
+ &(vtc_ee66452[0]), // expected_vtbl_contents
+ &(vtt_ee66452[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66452),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66452),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76452 : virtual dd6452 {
+ int e;
+ virtual void foo(); // _ZN7ee764523fooEv
+ virtual void bar(); // _ZN7ee764523barEv
+ ~ee76452(); // tgen
+ ee76452(); // tgen
+};
+//SIG(1 ee76452) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76452 ::foo(){vfunc_called(this, "_ZN7ee764523fooEv");}
+void ee76452 ::bar(){vfunc_called(this, "_ZN7ee764523barEv");}
+ee76452 ::~ee76452(){ note_dtor("ee76452", this);} // tgen
+ee76452 ::ee76452(){ note_ctor("ee76452", this);} // tgen
+
+static void Test_ee76452()
+{
+ extern Class_Descriptor cd_ee76452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76452, buf);
+ ee76452 *dp, &lv = *(dp=new (buf) ee76452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*)(dd6452*), ABISELECT(40,24), "ee76452");
+ check_base_class_offset(lv, (bb52*)(cc452*)(dd6452*), ABISELECT(16,8), "ee76452");
+ check_base_class_offset(lv, (cc452*)(dd6452*), ABISELECT(16,8), "ee76452");
+ check_base_class_offset(lv, (dd6452*), ABISELECT(16,8), "ee76452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76452.e");
+ test_class_info(&lv, &cd_ee76452);
+ dp->~ee76452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76452(Test_ee76452, "ee76452", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76452C1Ev();
+extern void _ZN7ee76452D1Ev();
+Name_Map name_map_ee76452[] = {
+ NSPAIR(_ZN7ee76452C1Ev),
+ NSPAIR(_ZN7ee76452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd6452;
+extern VTBL_ENTRY _ZTI6dd6452[];
+extern VTBL_ENTRY _ZTV6dd6452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6452[];
+static Base_Class bases_ee76452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6452, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76452[];
+extern void _ZN7ee764523fooEv();
+extern void _ZN7ee764523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee764523barEv,_ZTv0_n16_N7ee764523barEv)();
+extern void ABISELECT(_ZThn16_N7ee764523barEv,_ZThn8_N7ee764523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee764523fooEv,_ZTv0_n20_N7ee764523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee764523fooEv,_ZThn8_N7ee764523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee764523fooEv,_ZTv0_n12_N7ee764523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee764523fooEv,_ZThn24_N7ee764523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee764523barEv,_ZTv0_n16_N7ee764523barEv)();
+extern void ABISELECT(_ZThn40_N7ee764523barEv,_ZThn24_N7ee764523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76452[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76452[0]),
+ (VTBL_ENTRY)&_ZN7ee764523fooEv,
+ (VTBL_ENTRY)&_ZN7ee764523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764523barEv,_ZTv0_n16_N7ee764523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee764523fooEv,_ZTv0_n20_N7ee764523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee764523fooEv,_ZTv0_n12_N7ee764523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee764523barEv,_ZTv0_n16_N7ee764523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76452[];
+extern void _ZN6dd64523barEv();
+extern void _ZN6dd64523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6452__7ee76452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&_ZN6dd64523barEv,
+ (VTBL_ENTRY)&_ZN6dd64523fooEv,
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc4526dd6452__7ee76452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc4526dd6452__7ee76452[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc4526dd6452__7ee76452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc4526dd6452__7ee76452[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv)();
+extern void ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6452__7ee76452[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv),
+};
+static VTT_ENTRY vtt_ee76452[] = {
+ {&(_ZTV7ee76452[4]), 4,19},
+ {&(_ZTV7ee76452[11]), 11,19},
+ {&(_ZTV7ee76452[17]), 17,19},
+ {&(_tg__ZTV6dd6452__7ee76452[3]), 3,5},
+ {&(_tg__ZTV5cc4526dd6452__7ee76452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc4526dd6452__7ee76452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc4526dd6452__7ee76452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc4526dd6452__7ee76452[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6452__7ee76452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76452[];
+extern VTBL_ENTRY _ZTV7ee76452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76452[];
+static VTBL_ENTRY alt_thunk_names1335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd64523barEv,_ZTv0_n16_N6dd64523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523barEv,_ZThn16_N6dd64523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd64523fooEv,_ZTv0_n12_N6dd64523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd64523fooEv,_ZThn16_N6dd64523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc4523barEv,_ZThn16_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee764523fooEv,_ZTv0_n12_N7ee764523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee764523fooEv,_ZThn24_N7ee764523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee764523fooEv,_ZTv0_n20_N7ee764523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764523fooEv,_ZThn8_N7ee764523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee764523barEv,_ZTv0_n16_N7ee764523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee764523barEv,_ZThn24_N7ee764523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee764523barEv,_ZThn8_N7ee764523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76452 = { "ee76452", // class name
+ bases_ee76452, 4,
+ &(vtc_ee76452[0]), // expected_vtbl_contents
+ &(vtt_ee76452[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76452),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76452),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7452 : virtual cc452 {
+ int d;
+ virtual void bar(); // _ZN6dd74523barEv
+ virtual void foo(); // _ZN6dd74523fooEv
+ ~dd7452(); // tgen
+ dd7452(); // tgen
+};
+//SIG(-1 dd7452) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7452 ::bar(){vfunc_called(this, "_ZN6dd74523barEv");}
+void dd7452 ::foo(){vfunc_called(this, "_ZN6dd74523fooEv");}
+dd7452 ::~dd7452(){ note_dtor("dd7452", this);} // tgen
+dd7452 ::dd7452(){ note_ctor("dd7452", this);} // tgen
+
+static void Test_dd7452()
+{
+ extern Class_Descriptor cd_dd7452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7452, buf);
+ dd7452 *dp, &lv = *(dp=new (buf) dd7452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,20), "dd7452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,8), "dd7452");
+ check_base_class_offset(lv, (cc452*), ABISELECT(16,8), "dd7452");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7452.d");
+ test_class_info(&lv, &cd_dd7452);
+ dp->~dd7452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7452(Test_dd7452, "dd7452", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7452C1Ev();
+extern void _ZN6dd7452D1Ev();
+Name_Map name_map_dd7452[] = {
+ NSPAIR(_ZN6dd7452C1Ev),
+ NSPAIR(_ZN6dd7452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+static Base_Class bases_dd7452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__6dd7452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__6dd7452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__6dd7452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_dd7452[] = {
+ {&(_ZTV6dd7452[4]), 4,17},
+ {&(_ZTV6dd7452[10]), 10,17},
+ {&(_ZTV6dd7452[15]), 15,17},
+ {&(_tg__ZTV5cc452__6dd7452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__6dd7452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__6dd7452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__6dd7452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static VTBL_ENTRY alt_thunk_names1336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7452 = { "dd7452", // class name
+ bases_dd7452, 3,
+ &(vtc_dd7452[0]), // expected_vtbl_contents
+ &(vtt_dd7452[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7452),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07452 : dd7452 {
+ int e;
+ ~ee07452(); // tgen
+ ee07452(); // tgen
+};
+//SIG(1 ee07452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07452 ::~ee07452(){ note_dtor("ee07452", this);} // tgen
+ee07452 ::ee07452(){ note_ctor("ee07452", this);} // tgen
+
+static void Test_ee07452()
+{
+ extern Class_Descriptor cd_ee07452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07452, buf);
+ ee07452 *dp, &lv = *(dp=new (buf) ee07452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee07452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee07452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(16,12), "ee07452");
+ check_base_class_offset(lv, (dd7452*), 0, "ee07452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07452.e");
+ test_class_info(&lv, &cd_ee07452);
+ dp->~ee07452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07452(Test_ee07452, "ee07452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07452C1Ev();
+extern void _ZN7ee07452D1Ev();
+Name_Map name_map_ee07452[] = {
+ NSPAIR(_ZN7ee07452C1Ev),
+ NSPAIR(_ZN7ee07452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee07452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee07452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee07452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee07452[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee07452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee07452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee07452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee07452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee07452[] = {
+ {&(_ZTV7ee07452[4]), 4,17},
+ {&(_tg__ZTV6dd7452__7ee07452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee07452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee07452[4]), 4,6},
+ {&(_ZTV7ee07452[10]), 10,17},
+ {&(_ZTV7ee07452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee07452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee07452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee07452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee07452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07452[];
+extern VTBL_ENTRY _ZTV7ee07452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07452[];
+static VTBL_ENTRY alt_thunk_names1337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07452 = { "ee07452", // class name
+ bases_ee07452, 4,
+ &(vtc_ee07452[0]), // expected_vtbl_contents
+ &(vtt_ee07452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17452 : virtual dd7452 {
+ int e;
+ ~ee17452(); // tgen
+ ee17452(); // tgen
+};
+//SIG(1 ee17452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17452 ::~ee17452(){ note_dtor("ee17452", this);} // tgen
+ee17452 ::ee17452(){ note_ctor("ee17452", this);} // tgen
+
+static void Test_ee17452()
+{
+ extern Class_Descriptor cd_ee17452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17452, buf);
+ ee17452 *dp, &lv = *(dp=new (buf) ee17452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee17452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee17452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(32,16), "ee17452");
+ check_base_class_offset(lv, (dd7452*), ABISELECT(16,8), "ee17452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17452.e");
+ test_class_info(&lv, &cd_ee17452);
+ dp->~ee17452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17452(Test_ee17452, "ee17452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17452C1Ev();
+extern void _ZN7ee17452D1Ev();
+Name_Map name_map_ee17452[] = {
+ NSPAIR(_ZN7ee17452C1Ev),
+ NSPAIR(_ZN7ee17452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee17452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17452[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee17452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee17452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee17452[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee17452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee17452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee17452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee17452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee17452[] = {
+ {&(_ZTV7ee17452[5]), 5,24},
+ {&(_ZTV7ee17452[11]), 11,24},
+ {&(_ZTV7ee17452[17]), 17,24},
+ {&(_ZTV7ee17452[22]), 22,24},
+ {&(_tg__ZTV6dd7452__7ee17452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee17452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee17452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee17452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee17452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee17452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee17452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17452[];
+extern VTBL_ENTRY _ZTV7ee17452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17452[];
+static VTBL_ENTRY alt_thunk_names1338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17452 = { "ee17452", // class name
+ bases_ee17452, 4,
+ &(vtc_ee17452[0]), // expected_vtbl_contents
+ &(vtt_ee17452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17452),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27452 : dd7452 {
+ int e;
+ virtual void foo(); // _ZN7ee274523fooEv
+ ~ee27452(); // tgen
+ ee27452(); // tgen
+};
+//SIG(1 ee27452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27452 ::foo(){vfunc_called(this, "_ZN7ee274523fooEv");}
+ee27452 ::~ee27452(){ note_dtor("ee27452", this);} // tgen
+ee27452 ::ee27452(){ note_ctor("ee27452", this);} // tgen
+
+static void Test_ee27452()
+{
+ extern Class_Descriptor cd_ee27452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27452, buf);
+ ee27452 *dp, &lv = *(dp=new (buf) ee27452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee27452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee27452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(16,12), "ee27452");
+ check_base_class_offset(lv, (dd7452*), 0, "ee27452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27452.e");
+ test_class_info(&lv, &cd_ee27452);
+ dp->~ee27452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27452(Test_ee27452, "ee27452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27452C1Ev();
+extern void _ZN7ee27452D1Ev();
+Name_Map name_map_ee27452[] = {
+ NSPAIR(_ZN7ee27452C1Ev),
+ NSPAIR(_ZN7ee27452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee27452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN7ee274523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee274523fooEv,_ZTv0_n12_N7ee274523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee274523fooEv,_ZThn24_N7ee274523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN7ee274523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee274523fooEv,_ZTv0_n12_N7ee274523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee27452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee27452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee27452[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee27452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee27452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee27452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee27452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee27452[] = {
+ {&(_ZTV7ee27452[4]), 4,17},
+ {&(_tg__ZTV6dd7452__7ee27452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee27452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee27452[4]), 4,6},
+ {&(_ZTV7ee27452[10]), 10,17},
+ {&(_ZTV7ee27452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee27452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee27452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee27452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee27452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27452[];
+extern VTBL_ENTRY _ZTV7ee27452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27452[];
+static VTBL_ENTRY alt_thunk_names1339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee274523fooEv,_ZTv0_n12_N7ee274523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee274523fooEv,_ZThn24_N7ee274523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27452 = { "ee27452", // class name
+ bases_ee27452, 4,
+ &(vtc_ee27452[0]), // expected_vtbl_contents
+ &(vtt_ee27452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37452 : virtual dd7452 {
+ int e;
+ virtual void foo(); // _ZN7ee374523fooEv
+ ~ee37452(); // tgen
+ ee37452(); // tgen
+};
+//SIG(1 ee37452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37452 ::foo(){vfunc_called(this, "_ZN7ee374523fooEv");}
+ee37452 ::~ee37452(){ note_dtor("ee37452", this);} // tgen
+ee37452 ::ee37452(){ note_ctor("ee37452", this);} // tgen
+
+static void Test_ee37452()
+{
+ extern Class_Descriptor cd_ee37452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37452, buf);
+ ee37452 *dp, &lv = *(dp=new (buf) ee37452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee37452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee37452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(32,16), "ee37452");
+ check_base_class_offset(lv, (dd7452*), ABISELECT(16,8), "ee37452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37452.e");
+ test_class_info(&lv, &cd_ee37452);
+ dp->~ee37452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37452(Test_ee37452, "ee37452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37452C1Ev();
+extern void _ZN7ee37452D1Ev();
+Name_Map name_map_ee37452[] = {
+ NSPAIR(_ZN7ee37452C1Ev),
+ NSPAIR(_ZN7ee37452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee37452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37452[];
+extern void _ZN7ee374523fooEv();
+extern void _ZN6dd74523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee374523fooEv,_ZTv0_n24_N7ee374523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee374523fooEv,_ZThn8_N7ee374523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee374523fooEv,_ZTv0_n12_N7ee374523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee374523fooEv,_ZThn28_N7ee374523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37452[0]),
+ (VTBL_ENTRY)&_ZN7ee374523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee374523fooEv,_ZTv0_n24_N7ee374523fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee374523fooEv,_ZTv0_n12_N7ee374523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee37452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee37452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee37452[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee37452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee37452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee37452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee37452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee37452[] = {
+ {&(_ZTV7ee37452[5]), 5,25},
+ {&(_ZTV7ee37452[12]), 12,25},
+ {&(_ZTV7ee37452[18]), 18,25},
+ {&(_ZTV7ee37452[23]), 23,25},
+ {&(_tg__ZTV6dd7452__7ee37452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee37452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee37452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee37452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee37452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee37452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee37452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37452[];
+extern VTBL_ENTRY _ZTV7ee37452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37452[];
+static VTBL_ENTRY alt_thunk_names1340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee374523fooEv,_ZTv0_n12_N7ee374523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee374523fooEv,_ZThn28_N7ee374523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee374523fooEv,_ZTv0_n24_N7ee374523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee374523fooEv,_ZThn8_N7ee374523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37452 = { "ee37452", // class name
+ bases_ee37452, 4,
+ &(vtc_ee37452[0]), // expected_vtbl_contents
+ &(vtt_ee37452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37452),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1340,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47452 : dd7452 {
+ int e;
+ virtual void bar(); // _ZN7ee474523barEv
+ ~ee47452(); // tgen
+ ee47452(); // tgen
+};
+//SIG(1 ee47452) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47452 ::bar(){vfunc_called(this, "_ZN7ee474523barEv");}
+ee47452 ::~ee47452(){ note_dtor("ee47452", this);} // tgen
+ee47452 ::ee47452(){ note_ctor("ee47452", this);} // tgen
+
+static void Test_ee47452()
+{
+ extern Class_Descriptor cd_ee47452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47452, buf);
+ ee47452 *dp, &lv = *(dp=new (buf) ee47452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee47452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee47452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(16,12), "ee47452");
+ check_base_class_offset(lv, (dd7452*), 0, "ee47452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47452.e");
+ test_class_info(&lv, &cd_ee47452);
+ dp->~ee47452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47452(Test_ee47452, "ee47452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47452C1Ev();
+extern void _ZN7ee47452D1Ev();
+Name_Map name_map_ee47452[] = {
+ NSPAIR(_ZN7ee47452C1Ev),
+ NSPAIR(_ZN7ee47452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee47452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47452[];
+extern void _ZN7ee474523barEv();
+extern void _ZN6dd74523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee474523barEv,_ZTv0_n16_N7ee474523barEv)();
+extern void ABISELECT(_ZThn16_N7ee474523barEv,_ZThn12_N7ee474523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee474523barEv,_ZTv0_n16_N7ee474523barEv)();
+extern void ABISELECT(_ZThn32_N7ee474523barEv,_ZThn24_N7ee474523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47452[0]),
+ (VTBL_ENTRY)&_ZN7ee474523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474523barEv,_ZTv0_n16_N7ee474523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee474523barEv,_ZTv0_n16_N7ee474523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee47452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee47452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee47452[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee47452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee47452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee47452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee47452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee47452[] = {
+ {&(_ZTV7ee47452[4]), 4,17},
+ {&(_tg__ZTV6dd7452__7ee47452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee47452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee47452[4]), 4,6},
+ {&(_ZTV7ee47452[10]), 10,17},
+ {&(_ZTV7ee47452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee47452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee47452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee47452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee47452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47452[];
+extern VTBL_ENTRY _ZTV7ee47452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47452[];
+static VTBL_ENTRY alt_thunk_names1341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee474523barEv,_ZTv0_n16_N7ee474523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee474523barEv,_ZThn24_N7ee474523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee474523barEv,_ZThn12_N7ee474523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47452 = { "ee47452", // class name
+ bases_ee47452, 4,
+ &(vtc_ee47452[0]), // expected_vtbl_contents
+ &(vtt_ee47452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57452 : virtual dd7452 {
+ int e;
+ virtual void bar(); // _ZN7ee574523barEv
+ ~ee57452(); // tgen
+ ee57452(); // tgen
+};
+//SIG(1 ee57452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57452 ::bar(){vfunc_called(this, "_ZN7ee574523barEv");}
+ee57452 ::~ee57452(){ note_dtor("ee57452", this);} // tgen
+ee57452 ::ee57452(){ note_ctor("ee57452", this);} // tgen
+
+static void Test_ee57452()
+{
+ extern Class_Descriptor cd_ee57452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57452, buf);
+ ee57452 *dp, &lv = *(dp=new (buf) ee57452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee57452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee57452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(32,16), "ee57452");
+ check_base_class_offset(lv, (dd7452*), ABISELECT(16,8), "ee57452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57452.e");
+ test_class_info(&lv, &cd_ee57452);
+ dp->~ee57452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57452(Test_ee57452, "ee57452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57452C1Ev();
+extern void _ZN7ee57452D1Ev();
+Name_Map name_map_ee57452[] = {
+ NSPAIR(_ZN7ee57452C1Ev),
+ NSPAIR(_ZN7ee57452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee57452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57452[];
+extern void _ZN7ee574523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee574523barEv,_ZTv0_n20_N7ee574523barEv)();
+extern void ABISELECT(_ZThn16_N7ee574523barEv,_ZThn8_N7ee574523barEv)() __attribute__((weak));
+extern void _ZN6dd74523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee574523barEv,_ZTv0_n16_N7ee574523barEv)();
+extern void ABISELECT(_ZThn32_N7ee574523barEv,_ZThn16_N7ee574523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee574523barEv,_ZTv0_n16_N7ee574523barEv)();
+extern void ABISELECT(_ZThn48_N7ee574523barEv,_ZThn28_N7ee574523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57452[0]),
+ (VTBL_ENTRY)&_ZN7ee574523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee574523barEv,_ZTv0_n20_N7ee574523barEv),
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574523barEv,_ZTv0_n16_N7ee574523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee574523barEv,_ZTv0_n16_N7ee574523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee57452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee57452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee57452[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee57452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee57452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee57452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee57452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee57452[] = {
+ {&(_ZTV7ee57452[5]), 5,25},
+ {&(_ZTV7ee57452[12]), 12,25},
+ {&(_ZTV7ee57452[18]), 18,25},
+ {&(_ZTV7ee57452[23]), 23,25},
+ {&(_tg__ZTV6dd7452__7ee57452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee57452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee57452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee57452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee57452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee57452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee57452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57452[];
+extern VTBL_ENTRY _ZTV7ee57452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57452[];
+static VTBL_ENTRY alt_thunk_names1342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee574523barEv,_ZTv0_n16_N7ee574523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee574523barEv,_ZThn28_N7ee574523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee574523barEv,_ZThn16_N7ee574523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee574523barEv,_ZTv0_n20_N7ee574523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee574523barEv,_ZThn8_N7ee574523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57452 = { "ee57452", // class name
+ bases_ee57452, 4,
+ &(vtc_ee57452[0]), // expected_vtbl_contents
+ &(vtt_ee57452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57452),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67452 : dd7452 {
+ int e;
+ virtual void foo(); // _ZN7ee674523fooEv
+ virtual void bar(); // _ZN7ee674523barEv
+ ~ee67452(); // tgen
+ ee67452(); // tgen
+};
+//SIG(1 ee67452) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67452 ::foo(){vfunc_called(this, "_ZN7ee674523fooEv");}
+void ee67452 ::bar(){vfunc_called(this, "_ZN7ee674523barEv");}
+ee67452 ::~ee67452(){ note_dtor("ee67452", this);} // tgen
+ee67452 ::ee67452(){ note_ctor("ee67452", this);} // tgen
+
+static void Test_ee67452()
+{
+ extern Class_Descriptor cd_ee67452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67452, buf);
+ ee67452 *dp, &lv = *(dp=new (buf) ee67452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(32,24), "ee67452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(16,12), "ee67452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(16,12), "ee67452");
+ check_base_class_offset(lv, (dd7452*), 0, "ee67452");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67452.e");
+ test_class_info(&lv, &cd_ee67452);
+ dp->~ee67452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67452(Test_ee67452, "ee67452", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67452C1Ev();
+extern void _ZN7ee67452D1Ev();
+Name_Map name_map_ee67452[] = {
+ NSPAIR(_ZN7ee67452C1Ev),
+ NSPAIR(_ZN7ee67452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee67452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67452[];
+extern void _ZN7ee674523barEv();
+extern void _ZN7ee674523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee674523barEv,_ZTv0_n16_N7ee674523barEv)();
+extern void ABISELECT(_ZThn16_N7ee674523barEv,_ZThn12_N7ee674523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee674523fooEv,_ZTv0_n12_N7ee674523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee674523fooEv,_ZThn24_N7ee674523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee674523barEv,_ZTv0_n16_N7ee674523barEv)();
+extern void ABISELECT(_ZThn32_N7ee674523barEv,_ZThn24_N7ee674523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67452[0]),
+ (VTBL_ENTRY)&_ZN7ee674523barEv,
+ (VTBL_ENTRY)&_ZN7ee674523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674523barEv,_ZTv0_n16_N7ee674523barEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee674523fooEv,_ZTv0_n12_N7ee674523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee674523barEv,_ZTv0_n16_N7ee674523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee67452[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee67452[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee67452[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee67452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee67452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee67452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee67452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee67452[] = {
+ {&(_ZTV7ee67452[4]), 4,17},
+ {&(_tg__ZTV6dd7452__7ee67452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee67452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee67452[4]), 4,6},
+ {&(_ZTV7ee67452[10]), 10,17},
+ {&(_ZTV7ee67452[15]), 15,17},
+ {&(_tg__ZTV5cc452__7ee67452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee67452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee67452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee67452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67452[];
+extern VTBL_ENTRY _ZTV7ee67452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67452[];
+static VTBL_ENTRY alt_thunk_names1343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn24_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn24_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn12_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee674523fooEv,_ZTv0_n12_N7ee674523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee674523fooEv,_ZThn24_N7ee674523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee674523barEv,_ZTv0_n16_N7ee674523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee674523barEv,_ZThn24_N7ee674523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee674523barEv,_ZThn12_N7ee674523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67452 = { "ee67452", // class name
+ bases_ee67452, 4,
+ &(vtc_ee67452[0]), // expected_vtbl_contents
+ &(vtt_ee67452[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67452),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67452),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67452),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77452 : virtual dd7452 {
+ int e;
+ virtual void foo(); // _ZN7ee774523fooEv
+ virtual void bar(); // _ZN7ee774523barEv
+ ~ee77452(); // tgen
+ ee77452(); // tgen
+};
+//SIG(1 ee77452) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77452 ::foo(){vfunc_called(this, "_ZN7ee774523fooEv");}
+void ee77452 ::bar(){vfunc_called(this, "_ZN7ee774523barEv");}
+ee77452 ::~ee77452(){ note_dtor("ee77452", this);} // tgen
+ee77452 ::ee77452(){ note_ctor("ee77452", this);} // tgen
+
+static void Test_ee77452()
+{
+ extern Class_Descriptor cd_ee77452;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77452, buf);
+ ee77452 *dp, &lv = *(dp=new (buf) ee77452());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77452)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77452)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc452*), ABISELECT(48,28), "ee77452");
+ check_base_class_offset(lv, (bb52*)(cc452*), ABISELECT(32,16), "ee77452");
+ check_base_class_offset(lv, (cc452*)(dd7452*), ABISELECT(32,16), "ee77452");
+ check_base_class_offset(lv, (dd7452*), ABISELECT(16,8), "ee77452");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77452.e");
+ test_class_info(&lv, &cd_ee77452);
+ dp->~ee77452();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77452(Test_ee77452, "ee77452", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77452C1Ev();
+extern void _ZN7ee77452D1Ev();
+Name_Map name_map_ee77452[] = {
+ NSPAIR(_ZN7ee77452C1Ev),
+ NSPAIR(_ZN7ee77452D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc452;
+extern VTBL_ENTRY _ZTI5cc452[];
+extern VTBL_ENTRY _ZTV5cc452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc452[];
+extern Class_Descriptor cd_dd7452;
+extern VTBL_ENTRY _ZTI6dd7452[];
+extern VTBL_ENTRY _ZTV6dd7452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7452[];
+static Base_Class bases_ee77452[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc452, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7452, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77452[];
+extern void _ZN7ee774523fooEv();
+extern void _ZN7ee774523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee774523barEv,_ZTv0_n20_N7ee774523barEv)();
+extern void ABISELECT(_ZThn16_N7ee774523barEv,_ZThn8_N7ee774523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee774523fooEv,_ZTv0_n24_N7ee774523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee774523fooEv,_ZThn8_N7ee774523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774523barEv,_ZTv0_n16_N7ee774523barEv)();
+extern void ABISELECT(_ZThn32_N7ee774523barEv,_ZThn16_N7ee774523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee774523fooEv,_ZTv0_n12_N7ee774523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee774523fooEv,_ZThn28_N7ee774523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee774523barEv,_ZTv0_n16_N7ee774523barEv)();
+extern void ABISELECT(_ZThn48_N7ee774523barEv,_ZThn28_N7ee774523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77452[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77452[0]),
+ (VTBL_ENTRY)&_ZN7ee774523fooEv,
+ (VTBL_ENTRY)&_ZN7ee774523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee774523barEv,_ZTv0_n20_N7ee774523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee774523fooEv,_ZTv0_n24_N7ee774523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774523barEv,_ZTv0_n16_N7ee774523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee774523fooEv,_ZTv0_n12_N7ee774523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee774523barEv,_ZTv0_n16_N7ee774523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77452[];
+extern void _ZN6dd74523barEv();
+extern void _ZN6dd74523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7452__7ee77452[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&_ZN6dd74523barEv,
+ (VTBL_ENTRY)&_ZN6dd74523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc452__6dd7452__7ee77452[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv)();
+extern void ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7452__7ee77452[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7452[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv),
+};
+extern void _ZN5cc4523barEv();
+static VTBL_ENTRY _tg__ZTV5cc452__7ee77452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN5cc4523barEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc452__7ee77452[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc452__7ee77452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv)();
+extern void ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc452__7ee77452[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc452[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv),
+};
+static VTT_ENTRY vtt_ee77452[] = {
+ {&(_ZTV7ee77452[5]), 5,26},
+ {&(_ZTV7ee77452[13]), 13,26},
+ {&(_ZTV7ee77452[19]), 19,26},
+ {&(_ZTV7ee77452[24]), 24,26},
+ {&(_tg__ZTV6dd7452__7ee77452[4]), 4,6},
+ {&(_tg__ZTV5cc452__6dd7452__7ee77452[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7452__7ee77452[4]), 4,6},
+ {&(_tg__ZTV5cc452__7ee77452[3]), 3,4},
+ {&(_tg__ZTV4bb525cc452__7ee77452[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc452__7ee77452[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc452__7ee77452[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77452[];
+extern VTBL_ENTRY _ZTV7ee77452[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77452[];
+static VTBL_ENTRY alt_thunk_names1344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc4523barEv,_ZTv0_n16_N5cc4523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc4523barEv,_ZThn12_N5cc4523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd74523fooEv,_ZTv0_n12_N6dd74523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523fooEv,_ZThn20_N6dd74523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd74523barEv,_ZTv0_n16_N6dd74523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd74523barEv,_ZThn20_N6dd74523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd74523barEv,_ZThn8_N6dd74523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee774523fooEv,_ZTv0_n12_N7ee774523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee774523fooEv,_ZThn28_N7ee774523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee774523barEv,_ZTv0_n16_N7ee774523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee774523barEv,_ZThn28_N7ee774523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee774523barEv,_ZThn16_N7ee774523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee774523fooEv,_ZTv0_n24_N7ee774523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774523fooEv,_ZThn8_N7ee774523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee774523barEv,_ZTv0_n20_N7ee774523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee774523barEv,_ZThn8_N7ee774523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77452 = { "ee77452", // class name
+ bases_ee77452, 4,
+ &(vtc_ee77452[0]), // expected_vtbl_contents
+ &(vtt_ee77452[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77452),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77452),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77452),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc552 : virtual bb52 {
+ int c;
+ virtual void bar(); // _ZN5cc5523barEv
+ ~cc552(); // tgen
+ cc552(); // tgen
+};
+//SIG(-1 cc552) C1{ VBC2{ VBC3{ v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void cc552 ::bar(){vfunc_called(this, "_ZN5cc5523barEv");}
+cc552 ::~cc552(){ note_dtor("cc552", this);} // tgen
+cc552 ::cc552(){ note_ctor("cc552", this);} // tgen
+
+static void Test_cc552()
+{
+ extern Class_Descriptor cd_cc552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc552, buf);
+ cc552 *dp, &lv = *(dp=new (buf) cc552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,16), "cc552");
+ check_base_class_offset(lv, (bb52*), ABISELECT(16,8), "cc552");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc552.c");
+ test_class_info(&lv, &cd_cc552);
+ dp->~cc552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc552(Test_cc552, "cc552", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc552C1Ev();
+extern void _ZN5cc552D1Ev();
+Name_Map name_map_cc552[] = {
+ NSPAIR(_ZN5cc552C1Ev),
+ NSPAIR(_ZN5cc552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc552[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc552[] = {
+ {&(_ZTV5cc552[4]), 4,16},
+ {&(_ZTV5cc552[9]), 9,16},
+ {&(_ZTV5cc552[14]), 14,16},
+ {&(_tg__ZTV4bb52__5cc552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static VTBL_ENTRY alt_thunk_names1345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc552 = { "cc552", // class name
+ bases_cc552, 2,
+ &(vtc_cc552[0]), // expected_vtbl_contents
+ &(vtt_cc552[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc552),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0552 : cc552 {
+ int d;
+ ~dd0552(); // tgen
+ dd0552(); // tgen
+};
+//SIG(-1 dd0552) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd0552 ::~dd0552(){ note_dtor("dd0552", this);} // tgen
+dd0552 ::dd0552(){ note_ctor("dd0552", this);} // tgen
+
+static void Test_dd0552()
+{
+ extern Class_Descriptor cd_dd0552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0552, buf);
+ dd0552 *dp, &lv = *(dp=new (buf) dd0552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd0552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(16,12), "dd0552");
+ check_base_class_offset(lv, (cc552*), 0, "dd0552");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0552.d");
+ test_class_info(&lv, &cd_dd0552);
+ dp->~dd0552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0552(Test_dd0552, "dd0552", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0552C1Ev();
+extern void _ZN6dd0552D1Ev();
+Name_Map name_map_dd0552[] = {
+ NSPAIR(_ZN6dd0552C1Ev),
+ NSPAIR(_ZN6dd0552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd0552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd0552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd0552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd0552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd0552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0552[] = {
+ {&(_ZTV6dd0552[4]), 4,16},
+ {&(_tg__ZTV5cc552__6dd0552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd0552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd0552[4]), 4,6},
+ {&(_ZTV6dd0552[9]), 9,16},
+ {&(_ZTV6dd0552[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd0552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd0552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static VTBL_ENTRY alt_thunk_names1346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0552 = { "dd0552", // class name
+ bases_dd0552, 3,
+ &(vtc_dd0552[0]), // expected_vtbl_contents
+ &(vtt_dd0552[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0552),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00552 : dd0552 {
+ int e;
+ ~ee00552(); // tgen
+ ee00552(); // tgen
+};
+//SIG(1 ee00552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee00552 ::~ee00552(){ note_dtor("ee00552", this);} // tgen
+ee00552 ::ee00552(){ note_ctor("ee00552", this);} // tgen
+
+static void Test_ee00552()
+{
+ extern Class_Descriptor cd_ee00552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00552, buf);
+ ee00552 *dp, &lv = *(dp=new (buf) ee00552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee00552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(24,16), "ee00552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), 0, "ee00552");
+ check_base_class_offset(lv, (dd0552*), 0, "ee00552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00552.e");
+ test_class_info(&lv, &cd_ee00552);
+ dp->~ee00552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00552(Test_ee00552, "ee00552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00552C1Ev();
+extern void _ZN7ee00552D1Ev();
+Name_Map name_map_ee00552[] = {
+ NSPAIR(_ZN7ee00552C1Ev),
+ NSPAIR(_ZN7ee00552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee00552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee00552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee00552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee00552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee00552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee00552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee00552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee00552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee00552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00552[] = {
+ {&(_ZTV7ee00552[4]), 4,16},
+ {&(_tg__ZTV6dd0552__7ee00552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee00552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee00552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee00552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee00552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee00552[4]), 4,6},
+ {&(_ZTV7ee00552[9]), 9,16},
+ {&(_ZTV7ee00552[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee00552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee00552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee00552[];
+extern VTBL_ENTRY _ZTV7ee00552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00552[];
+static VTBL_ENTRY alt_thunk_names1347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00552 = { "ee00552", // class name
+ bases_ee00552, 4,
+ &(vtc_ee00552[0]), // expected_vtbl_contents
+ &(vtt_ee00552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10552 : virtual dd0552 {
+ int e;
+ ~ee10552(); // tgen
+ ee10552(); // tgen
+};
+//SIG(1 ee10552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee10552 ::~ee10552(){ note_dtor("ee10552", this);} // tgen
+ee10552 ::ee10552(){ note_ctor("ee10552", this);} // tgen
+
+static void Test_ee10552()
+{
+ extern Class_Descriptor cd_ee10552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10552, buf);
+ ee10552 *dp, &lv = *(dp=new (buf) ee10552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee10552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(32,20), "ee10552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), ABISELECT(16,8), "ee10552");
+ check_base_class_offset(lv, (dd0552*), ABISELECT(16,8), "ee10552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10552.e");
+ test_class_info(&lv, &cd_ee10552);
+ dp->~ee10552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10552(Test_ee10552, "ee10552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10552C1Ev();
+extern void _ZN7ee10552D1Ev();
+Name_Map name_map_ee10552[] = {
+ NSPAIR(_ZN7ee10552C1Ev),
+ NSPAIR(_ZN7ee10552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee10552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10552[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee10552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee10552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee10552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee10552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee10552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee10552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee10552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee10552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10552[] = {
+ {&(_ZTV7ee10552[5]), 5,22},
+ {&(_ZTV7ee10552[10]), 10,22},
+ {&(_ZTV7ee10552[15]), 15,22},
+ {&(_ZTV7ee10552[20]), 20,22},
+ {&(_tg__ZTV6dd0552__7ee10552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee10552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee10552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee10552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee10552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee10552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee10552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee10552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10552[];
+extern VTBL_ENTRY _ZTV7ee10552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10552[];
+static VTBL_ENTRY alt_thunk_names1348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10552 = { "ee10552", // class name
+ bases_ee10552, 4,
+ &(vtc_ee10552[0]), // expected_vtbl_contents
+ &(vtt_ee10552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10552),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20552 : dd0552 {
+ int e;
+ virtual void foo(); // _ZN7ee205523fooEv
+ ~ee20552(); // tgen
+ ee20552(); // tgen
+};
+//SIG(1 ee20552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee20552 ::foo(){vfunc_called(this, "_ZN7ee205523fooEv");}
+ee20552 ::~ee20552(){ note_dtor("ee20552", this);} // tgen
+ee20552 ::ee20552(){ note_ctor("ee20552", this);} // tgen
+
+static void Test_ee20552()
+{
+ extern Class_Descriptor cd_ee20552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20552, buf);
+ ee20552 *dp, &lv = *(dp=new (buf) ee20552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee20552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(24,16), "ee20552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), 0, "ee20552");
+ check_base_class_offset(lv, (dd0552*), 0, "ee20552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20552.e");
+ test_class_info(&lv, &cd_ee20552);
+ dp->~ee20552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20552(Test_ee20552, "ee20552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20552C1Ev();
+extern void _ZN7ee20552D1Ev();
+Name_Map name_map_ee20552[] = {
+ NSPAIR(_ZN7ee20552C1Ev),
+ NSPAIR(_ZN7ee20552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee20552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN7ee205523fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee205523fooEv,_ZTv0_n12_N7ee205523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee205523fooEv,_ZThn24_N7ee205523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN7ee205523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee205523fooEv,_ZTv0_n12_N7ee205523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee20552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee20552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee20552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee20552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee20552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee20552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee20552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee20552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20552[] = {
+ {&(_ZTV7ee20552[4]), 4,17},
+ {&(_tg__ZTV6dd0552__7ee20552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee20552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee20552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee20552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee20552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee20552[4]), 4,6},
+ {&(_ZTV7ee20552[10]), 10,17},
+ {&(_ZTV7ee20552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee20552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee20552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee20552[];
+extern VTBL_ENTRY _ZTV7ee20552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20552[];
+static VTBL_ENTRY alt_thunk_names1349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee205523fooEv,_ZTv0_n12_N7ee205523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee205523fooEv,_ZThn24_N7ee205523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20552 = { "ee20552", // class name
+ bases_ee20552, 4,
+ &(vtc_ee20552[0]), // expected_vtbl_contents
+ &(vtt_ee20552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1349,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30552 : virtual dd0552 {
+ int e;
+ virtual void foo(); // _ZN7ee305523fooEv
+ ~ee30552(); // tgen
+ ee30552(); // tgen
+};
+//SIG(1 ee30552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee30552 ::foo(){vfunc_called(this, "_ZN7ee305523fooEv");}
+ee30552 ::~ee30552(){ note_dtor("ee30552", this);} // tgen
+ee30552 ::ee30552(){ note_ctor("ee30552", this);} // tgen
+
+static void Test_ee30552()
+{
+ extern Class_Descriptor cd_ee30552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30552, buf);
+ ee30552 *dp, &lv = *(dp=new (buf) ee30552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee30552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(32,20), "ee30552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), ABISELECT(16,8), "ee30552");
+ check_base_class_offset(lv, (dd0552*), ABISELECT(16,8), "ee30552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30552.e");
+ test_class_info(&lv, &cd_ee30552);
+ dp->~ee30552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30552(Test_ee30552, "ee30552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30552C1Ev();
+extern void _ZN7ee30552D1Ev();
+Name_Map name_map_ee30552[] = {
+ NSPAIR(_ZN7ee30552C1Ev),
+ NSPAIR(_ZN7ee30552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee30552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30552[];
+extern void _ZN7ee305523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee305523fooEv,_ZTv0_n12_N7ee305523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee305523fooEv,_ZThn28_N7ee305523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30552[0]),
+ (VTBL_ENTRY)&_ZN7ee305523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee305523fooEv,_ZTv0_n12_N7ee305523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee30552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee30552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee30552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee30552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee30552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee30552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee30552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee30552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30552[] = {
+ {&(_ZTV7ee30552[5]), 5,23},
+ {&(_ZTV7ee30552[11]), 11,23},
+ {&(_ZTV7ee30552[16]), 16,23},
+ {&(_ZTV7ee30552[21]), 21,23},
+ {&(_tg__ZTV6dd0552__7ee30552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee30552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee30552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee30552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee30552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee30552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee30552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee30552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30552[];
+extern VTBL_ENTRY _ZTV7ee30552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30552[];
+static VTBL_ENTRY alt_thunk_names1350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee305523fooEv,_ZTv0_n12_N7ee305523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee305523fooEv,_ZThn28_N7ee305523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30552 = { "ee30552", // class name
+ bases_ee30552, 4,
+ &(vtc_ee30552[0]), // expected_vtbl_contents
+ &(vtt_ee30552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40552 : dd0552 {
+ int e;
+ virtual void bar(); // _ZN7ee405523barEv
+ ~ee40552(); // tgen
+ ee40552(); // tgen
+};
+//SIG(1 ee40552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee40552 ::bar(){vfunc_called(this, "_ZN7ee405523barEv");}
+ee40552 ::~ee40552(){ note_dtor("ee40552", this);} // tgen
+ee40552 ::ee40552(){ note_ctor("ee40552", this);} // tgen
+
+static void Test_ee40552()
+{
+ extern Class_Descriptor cd_ee40552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40552, buf);
+ ee40552 *dp, &lv = *(dp=new (buf) ee40552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee40552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(24,16), "ee40552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), 0, "ee40552");
+ check_base_class_offset(lv, (dd0552*), 0, "ee40552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40552.e");
+ test_class_info(&lv, &cd_ee40552);
+ dp->~ee40552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40552(Test_ee40552, "ee40552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40552C1Ev();
+extern void _ZN7ee40552D1Ev();
+Name_Map name_map_ee40552[] = {
+ NSPAIR(_ZN7ee40552C1Ev),
+ NSPAIR(_ZN7ee40552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee40552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40552[];
+extern void _ZN7ee405523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405523barEv,_ZTv0_n16_N7ee405523barEv)();
+extern void ABISELECT(_ZThn24_N7ee405523barEv,_ZThn16_N7ee405523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee405523barEv,_ZTv0_n16_N7ee405523barEv)();
+extern void ABISELECT(_ZThn40_N7ee405523barEv,_ZThn24_N7ee405523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40552[0]),
+ (VTBL_ENTRY)&_ZN7ee405523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405523barEv,_ZTv0_n16_N7ee405523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee405523barEv,_ZTv0_n16_N7ee405523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee40552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee40552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee40552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee40552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee40552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee40552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee40552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee40552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40552[] = {
+ {&(_ZTV7ee40552[4]), 4,16},
+ {&(_tg__ZTV6dd0552__7ee40552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee40552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee40552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee40552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee40552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee40552[4]), 4,6},
+ {&(_ZTV7ee40552[9]), 9,16},
+ {&(_ZTV7ee40552[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee40552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee40552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee40552[];
+extern VTBL_ENTRY _ZTV7ee40552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40552[];
+static VTBL_ENTRY alt_thunk_names1351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee405523barEv,_ZTv0_n16_N7ee405523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee405523barEv,_ZThn24_N7ee405523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee405523barEv,_ZThn16_N7ee405523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40552 = { "ee40552", // class name
+ bases_ee40552, 4,
+ &(vtc_ee40552[0]), // expected_vtbl_contents
+ &(vtt_ee40552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50552 : virtual dd0552 {
+ int e;
+ virtual void bar(); // _ZN7ee505523barEv
+ ~ee50552(); // tgen
+ ee50552(); // tgen
+};
+//SIG(1 ee50552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee50552 ::bar(){vfunc_called(this, "_ZN7ee505523barEv");}
+ee50552 ::~ee50552(){ note_dtor("ee50552", this);} // tgen
+ee50552 ::ee50552(){ note_ctor("ee50552", this);} // tgen
+
+static void Test_ee50552()
+{
+ extern Class_Descriptor cd_ee50552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50552, buf);
+ ee50552 *dp, &lv = *(dp=new (buf) ee50552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee50552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(32,20), "ee50552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), ABISELECT(16,8), "ee50552");
+ check_base_class_offset(lv, (dd0552*), ABISELECT(16,8), "ee50552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50552.e");
+ test_class_info(&lv, &cd_ee50552);
+ dp->~ee50552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50552(Test_ee50552, "ee50552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50552C1Ev();
+extern void _ZN7ee50552D1Ev();
+Name_Map name_map_ee50552[] = {
+ NSPAIR(_ZN7ee50552C1Ev),
+ NSPAIR(_ZN7ee50552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee50552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50552[];
+extern void _ZN7ee505523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee505523barEv,_ZTv0_n20_N7ee505523barEv)();
+extern void ABISELECT(_ZThn16_N7ee505523barEv,_ZThn8_N7ee505523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee505523barEv,_ZTv0_n16_N7ee505523barEv)();
+extern void ABISELECT(_ZThn32_N7ee505523barEv,_ZThn20_N7ee505523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee505523barEv,_ZTv0_n16_N7ee505523barEv)();
+extern void ABISELECT(_ZThn48_N7ee505523barEv,_ZThn28_N7ee505523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50552[0]),
+ (VTBL_ENTRY)&_ZN7ee505523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee505523barEv,_ZTv0_n20_N7ee505523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505523barEv,_ZTv0_n16_N7ee505523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee505523barEv,_ZTv0_n16_N7ee505523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee50552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee50552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee50552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee50552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee50552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee50552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee50552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee50552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50552[] = {
+ {&(_ZTV7ee50552[5]), 5,23},
+ {&(_ZTV7ee50552[11]), 11,23},
+ {&(_ZTV7ee50552[16]), 16,23},
+ {&(_ZTV7ee50552[21]), 21,23},
+ {&(_tg__ZTV6dd0552__7ee50552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee50552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee50552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee50552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee50552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee50552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee50552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee50552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50552[];
+extern VTBL_ENTRY _ZTV7ee50552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50552[];
+static VTBL_ENTRY alt_thunk_names1352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee505523barEv,_ZTv0_n16_N7ee505523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee505523barEv,_ZThn28_N7ee505523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee505523barEv,_ZThn20_N7ee505523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee505523barEv,_ZTv0_n20_N7ee505523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee505523barEv,_ZThn8_N7ee505523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50552 = { "ee50552", // class name
+ bases_ee50552, 4,
+ &(vtc_ee50552[0]), // expected_vtbl_contents
+ &(vtt_ee50552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60552 : dd0552 {
+ int e;
+ virtual void foo(); // _ZN7ee605523fooEv
+ virtual void bar(); // _ZN7ee605523barEv
+ ~ee60552(); // tgen
+ ee60552(); // tgen
+};
+//SIG(1 ee60552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60552 ::foo(){vfunc_called(this, "_ZN7ee605523fooEv");}
+void ee60552 ::bar(){vfunc_called(this, "_ZN7ee605523barEv");}
+ee60552 ::~ee60552(){ note_dtor("ee60552", this);} // tgen
+ee60552 ::ee60552(){ note_ctor("ee60552", this);} // tgen
+
+static void Test_ee60552()
+{
+ extern Class_Descriptor cd_ee60552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60552, buf);
+ ee60552 *dp, &lv = *(dp=new (buf) ee60552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee60552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(24,16), "ee60552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), 0, "ee60552");
+ check_base_class_offset(lv, (dd0552*), 0, "ee60552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60552.e");
+ test_class_info(&lv, &cd_ee60552);
+ dp->~ee60552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60552(Test_ee60552, "ee60552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60552C1Ev();
+extern void _ZN7ee60552D1Ev();
+Name_Map name_map_ee60552[] = {
+ NSPAIR(_ZN7ee60552C1Ev),
+ NSPAIR(_ZN7ee60552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee60552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60552[];
+extern void _ZN7ee605523barEv();
+extern void _ZN7ee605523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee605523barEv,_ZTv0_n16_N7ee605523barEv)();
+extern void ABISELECT(_ZThn24_N7ee605523barEv,_ZThn16_N7ee605523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee605523fooEv,_ZTv0_n12_N7ee605523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee605523fooEv,_ZThn24_N7ee605523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee605523barEv,_ZTv0_n16_N7ee605523barEv)();
+extern void ABISELECT(_ZThn40_N7ee605523barEv,_ZThn24_N7ee605523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60552[0]),
+ (VTBL_ENTRY)&_ZN7ee605523barEv,
+ (VTBL_ENTRY)&_ZN7ee605523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605523barEv,_ZTv0_n16_N7ee605523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee605523fooEv,_ZTv0_n12_N7ee605523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee605523barEv,_ZTv0_n16_N7ee605523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee60552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee60552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee60552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee60552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee60552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee60552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee60552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee60552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60552[] = {
+ {&(_ZTV7ee60552[4]), 4,17},
+ {&(_tg__ZTV6dd0552__7ee60552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee60552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee60552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee60552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee60552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee60552[4]), 4,6},
+ {&(_ZTV7ee60552[10]), 10,17},
+ {&(_ZTV7ee60552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee60552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee60552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee60552[];
+extern VTBL_ENTRY _ZTV7ee60552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60552[];
+static VTBL_ENTRY alt_thunk_names1353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee605523fooEv,_ZTv0_n12_N7ee605523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee605523fooEv,_ZThn24_N7ee605523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee605523barEv,_ZTv0_n16_N7ee605523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee605523barEv,_ZThn24_N7ee605523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee605523barEv,_ZThn16_N7ee605523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60552 = { "ee60552", // class name
+ bases_ee60552, 4,
+ &(vtc_ee60552[0]), // expected_vtbl_contents
+ &(vtt_ee60552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70552 : virtual dd0552 {
+ int e;
+ virtual void foo(); // _ZN7ee705523fooEv
+ virtual void bar(); // _ZN7ee705523barEv
+ ~ee70552(); // tgen
+ ee70552(); // tgen
+};
+//SIG(1 ee70552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70552 ::foo(){vfunc_called(this, "_ZN7ee705523fooEv");}
+void ee70552 ::bar(){vfunc_called(this, "_ZN7ee705523barEv");}
+ee70552 ::~ee70552(){ note_dtor("ee70552", this);} // tgen
+ee70552 ::ee70552(){ note_ctor("ee70552", this);} // tgen
+
+static void Test_ee70552()
+{
+ extern Class_Descriptor cd_ee70552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70552, buf);
+ ee70552 *dp, &lv = *(dp=new (buf) ee70552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee70552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd0552*), ABISELECT(32,20), "ee70552");
+ check_base_class_offset(lv, (cc552*)(dd0552*), ABISELECT(16,8), "ee70552");
+ check_base_class_offset(lv, (dd0552*), ABISELECT(16,8), "ee70552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70552.e");
+ test_class_info(&lv, &cd_ee70552);
+ dp->~ee70552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70552(Test_ee70552, "ee70552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70552C1Ev();
+extern void _ZN7ee70552D1Ev();
+Name_Map name_map_ee70552[] = {
+ NSPAIR(_ZN7ee70552C1Ev),
+ NSPAIR(_ZN7ee70552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd0552;
+extern VTBL_ENTRY _ZTI6dd0552[];
+extern VTBL_ENTRY _ZTV6dd0552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0552[];
+static Base_Class bases_ee70552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0552, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70552[];
+extern void _ZN7ee705523fooEv();
+extern void _ZN7ee705523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee705523barEv,_ZTv0_n20_N7ee705523barEv)();
+extern void ABISELECT(_ZThn16_N7ee705523barEv,_ZThn8_N7ee705523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705523barEv,_ZTv0_n16_N7ee705523barEv)();
+extern void ABISELECT(_ZThn32_N7ee705523barEv,_ZThn20_N7ee705523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee705523fooEv,_ZTv0_n12_N7ee705523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee705523fooEv,_ZThn28_N7ee705523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee705523barEv,_ZTv0_n16_N7ee705523barEv)();
+extern void ABISELECT(_ZThn48_N7ee705523barEv,_ZThn28_N7ee705523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70552[0]),
+ (VTBL_ENTRY)&_ZN7ee705523fooEv,
+ (VTBL_ENTRY)&_ZN7ee705523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee705523barEv,_ZTv0_n20_N7ee705523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705523barEv,_ZTv0_n16_N7ee705523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee705523fooEv,_ZTv0_n12_N7ee705523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee705523barEv,_ZTv0_n16_N7ee705523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0552__7ee70552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd0552__7ee70552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd0552__7ee70552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd0552__7ee70552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0552__7ee70552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0552__7ee70552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee70552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee70552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70552[] = {
+ {&(_ZTV7ee70552[5]), 5,24},
+ {&(_ZTV7ee70552[12]), 12,24},
+ {&(_ZTV7ee70552[17]), 17,24},
+ {&(_ZTV7ee70552[22]), 22,24},
+ {&(_tg__ZTV6dd0552__7ee70552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd0552__7ee70552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd0552__7ee70552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd0552__7ee70552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0552__7ee70552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0552__7ee70552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee70552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee70552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70552[];
+extern VTBL_ENTRY _ZTV7ee70552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70552[];
+static VTBL_ENTRY alt_thunk_names1354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee705523fooEv,_ZTv0_n12_N7ee705523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee705523fooEv,_ZThn28_N7ee705523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee705523barEv,_ZTv0_n16_N7ee705523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee705523barEv,_ZThn28_N7ee705523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee705523barEv,_ZThn20_N7ee705523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee705523barEv,_ZTv0_n20_N7ee705523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee705523barEv,_ZThn8_N7ee705523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70552 = { "ee70552", // class name
+ bases_ee70552, 4,
+ &(vtc_ee70552[0]), // expected_vtbl_contents
+ &(vtt_ee70552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1552 : virtual cc552 {
+ int d;
+ ~dd1552(); // tgen
+ dd1552(); // tgen
+};
+//SIG(-1 dd1552) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+dd1552 ::~dd1552(){ note_dtor("dd1552", this);} // tgen
+dd1552 ::dd1552(){ note_ctor("dd1552", this);} // tgen
+
+static void Test_dd1552()
+{
+ extern Class_Descriptor cd_dd1552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1552, buf);
+ dd1552 *dp, &lv = *(dp=new (buf) dd1552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd1552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,16), "dd1552");
+ check_base_class_offset(lv, (cc552*), ABISELECT(16,8), "dd1552");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1552.d");
+ test_class_info(&lv, &cd_dd1552);
+ dp->~dd1552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1552(Test_dd1552, "dd1552", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1552C1Ev();
+extern void _ZN6dd1552D1Ev();
+Name_Map name_map_dd1552[] = {
+ NSPAIR(_ZN6dd1552C1Ev),
+ NSPAIR(_ZN6dd1552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd1552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ 5, //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 _ZTI6dd1552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd1552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd1552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd1552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1552[] = {
+ {&(_ZTV6dd1552[5]), 5,22},
+ {&(_ZTV6dd1552[10]), 10,22},
+ {&(_ZTV6dd1552[15]), 15,22},
+ {&(_ZTV6dd1552[20]), 20,22},
+ {&(_tg__ZTV5cc552__6dd1552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd1552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd1552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd1552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd1552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static VTBL_ENTRY alt_thunk_names1355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1552 = { "dd1552", // class name
+ bases_dd1552, 3,
+ &(vtc_dd1552[0]), // expected_vtbl_contents
+ &(vtt_dd1552[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1552),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1552),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01552 : dd1552 {
+ int e;
+ ~ee01552(); // tgen
+ ee01552(); // tgen
+};
+//SIG(1 ee01552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee01552 ::~ee01552(){ note_dtor("ee01552", this);} // tgen
+ee01552 ::ee01552(){ note_ctor("ee01552", this);} // tgen
+
+static void Test_ee01552()
+{
+ extern Class_Descriptor cd_ee01552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01552, buf);
+ ee01552 *dp, &lv = *(dp=new (buf) ee01552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee01552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee01552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(16,12), "ee01552");
+ check_base_class_offset(lv, (dd1552*), 0, "ee01552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01552.e");
+ test_class_info(&lv, &cd_ee01552);
+ dp->~ee01552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01552(Test_ee01552, "ee01552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01552C1Ev();
+extern void _ZN7ee01552D1Ev();
+Name_Map name_map_ee01552[] = {
+ NSPAIR(_ZN7ee01552C1Ev),
+ NSPAIR(_ZN7ee01552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee01552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01552[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee01552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee01552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee01552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee01552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee01552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee01552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee01552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee01552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee01552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01552[] = {
+ {&(_ZTV7ee01552[5]), 5,22},
+ {&(_tg__ZTV6dd1552__7ee01552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee01552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee01552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee01552[4]), 4,6},
+ {&(_ZTV7ee01552[10]), 10,22},
+ {&(_ZTV7ee01552[15]), 15,22},
+ {&(_ZTV7ee01552[20]), 20,22},
+ {&(_tg__ZTV5cc552__7ee01552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee01552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee01552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee01552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee01552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01552[];
+extern VTBL_ENTRY _ZTV7ee01552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01552[];
+static VTBL_ENTRY alt_thunk_names1356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01552 = { "ee01552", // class name
+ bases_ee01552, 4,
+ &(vtc_ee01552[0]), // expected_vtbl_contents
+ &(vtt_ee01552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01552),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11552 : virtual dd1552 {
+ int e;
+ ~ee11552(); // tgen
+ ee11552(); // tgen
+};
+//SIG(1 ee11552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} Fi}
+
+
+ee11552 ::~ee11552(){ note_dtor("ee11552", this);} // tgen
+ee11552 ::ee11552(){ note_ctor("ee11552", this);} // tgen
+
+static void Test_ee11552()
+{
+ extern Class_Descriptor cd_ee11552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11552, buf);
+ ee11552 *dp, &lv = *(dp=new (buf) ee11552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee11552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee11552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(32,16), "ee11552");
+ check_base_class_offset(lv, (dd1552*), ABISELECT(16,8), "ee11552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11552.e");
+ test_class_info(&lv, &cd_ee11552);
+ dp->~ee11552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11552(Test_ee11552, "ee11552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11552C1Ev();
+extern void _ZN7ee11552D1Ev();
+Name_Map name_map_ee11552[] = {
+ NSPAIR(_ZN7ee11552C1Ev),
+ NSPAIR(_ZN7ee11552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee11552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11552[];
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11552[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11552[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee11552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee11552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee11552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee11552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee11552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee11552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee11552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee11552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee11552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11552[] = {
+ {&(_ZTV7ee11552[6]), 6,28},
+ {&(_ZTV7ee11552[11]), 11,28},
+ {&(_ZTV7ee11552[16]), 16,28},
+ {&(_ZTV7ee11552[21]), 21,28},
+ {&(_ZTV7ee11552[26]), 26,28},
+ {&(_tg__ZTV6dd1552__7ee11552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee11552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee11552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee11552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee11552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee11552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee11552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee11552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee11552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11552[];
+extern VTBL_ENTRY _ZTV7ee11552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11552[];
+static VTBL_ENTRY alt_thunk_names1357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11552 = { "ee11552", // class name
+ bases_ee11552, 4,
+ &(vtc_ee11552[0]), // expected_vtbl_contents
+ &(vtt_ee11552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11552),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21552 : dd1552 {
+ int e;
+ virtual void foo(); // _ZN7ee215523fooEv
+ ~ee21552(); // tgen
+ ee21552(); // tgen
+};
+//SIG(1 ee21552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee21552 ::foo(){vfunc_called(this, "_ZN7ee215523fooEv");}
+ee21552 ::~ee21552(){ note_dtor("ee21552", this);} // tgen
+ee21552 ::ee21552(){ note_ctor("ee21552", this);} // tgen
+
+static void Test_ee21552()
+{
+ extern Class_Descriptor cd_ee21552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21552, buf);
+ ee21552 *dp, &lv = *(dp=new (buf) ee21552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee21552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee21552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(16,12), "ee21552");
+ check_base_class_offset(lv, (dd1552*), 0, "ee21552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21552.e");
+ test_class_info(&lv, &cd_ee21552);
+ dp->~ee21552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21552(Test_ee21552, "ee21552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21552C1Ev();
+extern void _ZN7ee21552D1Ev();
+Name_Map name_map_ee21552[] = {
+ NSPAIR(_ZN7ee21552C1Ev),
+ NSPAIR(_ZN7ee21552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee21552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21552[];
+extern void _ZN7ee215523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee215523fooEv,_ZTv0_n12_N7ee215523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee215523fooEv,_ZThn28_N7ee215523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21552[0]),
+ (VTBL_ENTRY)&_ZN7ee215523fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee215523fooEv,_ZTv0_n12_N7ee215523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee21552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee21552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee21552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee21552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee21552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee21552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee21552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee21552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee21552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21552[] = {
+ {&(_ZTV7ee21552[5]), 5,23},
+ {&(_tg__ZTV6dd1552__7ee21552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee21552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee21552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee21552[4]), 4,6},
+ {&(_ZTV7ee21552[11]), 11,23},
+ {&(_ZTV7ee21552[16]), 16,23},
+ {&(_ZTV7ee21552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee21552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee21552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee21552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee21552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee21552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21552[];
+extern VTBL_ENTRY _ZTV7ee21552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21552[];
+static VTBL_ENTRY alt_thunk_names1358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee215523fooEv,_ZTv0_n12_N7ee215523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee215523fooEv,_ZThn28_N7ee215523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21552 = { "ee21552", // class name
+ bases_ee21552, 4,
+ &(vtc_ee21552[0]), // expected_vtbl_contents
+ &(vtt_ee21552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31552 : virtual dd1552 {
+ int e;
+ virtual void foo(); // _ZN7ee315523fooEv
+ ~ee31552(); // tgen
+ ee31552(); // tgen
+};
+//SIG(1 ee31552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 Fi}
+
+
+void ee31552 ::foo(){vfunc_called(this, "_ZN7ee315523fooEv");}
+ee31552 ::~ee31552(){ note_dtor("ee31552", this);} // tgen
+ee31552 ::ee31552(){ note_ctor("ee31552", this);} // tgen
+
+static void Test_ee31552()
+{
+ extern Class_Descriptor cd_ee31552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31552, buf);
+ ee31552 *dp, &lv = *(dp=new (buf) ee31552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee31552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee31552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(32,16), "ee31552");
+ check_base_class_offset(lv, (dd1552*), ABISELECT(16,8), "ee31552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31552.e");
+ test_class_info(&lv, &cd_ee31552);
+ dp->~ee31552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31552(Test_ee31552, "ee31552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31552C1Ev();
+extern void _ZN7ee31552D1Ev();
+Name_Map name_map_ee31552[] = {
+ NSPAIR(_ZN7ee31552C1Ev),
+ NSPAIR(_ZN7ee31552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee31552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31552[];
+extern void _ZN7ee315523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee315523fooEv,_ZTv0_n12_N7ee315523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee315523fooEv,_ZThn32_N7ee315523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31552[0]),
+ (VTBL_ENTRY)&_ZN7ee315523fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31552[0]),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee315523fooEv,_ZTv0_n12_N7ee315523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee31552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee31552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee31552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee31552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee31552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee31552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee31552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee31552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee31552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31552[] = {
+ {&(_ZTV7ee31552[6]), 6,29},
+ {&(_ZTV7ee31552[12]), 12,29},
+ {&(_ZTV7ee31552[17]), 17,29},
+ {&(_ZTV7ee31552[22]), 22,29},
+ {&(_ZTV7ee31552[27]), 27,29},
+ {&(_tg__ZTV6dd1552__7ee31552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee31552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee31552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee31552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee31552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee31552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee31552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee31552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee31552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31552[];
+extern VTBL_ENTRY _ZTV7ee31552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31552[];
+static VTBL_ENTRY alt_thunk_names1359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee315523fooEv,_ZTv0_n12_N7ee315523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee315523fooEv,_ZThn32_N7ee315523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31552 = { "ee31552", // class name
+ bases_ee31552, 4,
+ &(vtc_ee31552[0]), // expected_vtbl_contents
+ &(vtt_ee31552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31552),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41552 : dd1552 {
+ int e;
+ virtual void bar(); // _ZN7ee415523barEv
+ ~ee41552(); // tgen
+ ee41552(); // tgen
+};
+//SIG(1 ee41552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee41552 ::bar(){vfunc_called(this, "_ZN7ee415523barEv");}
+ee41552 ::~ee41552(){ note_dtor("ee41552", this);} // tgen
+ee41552 ::ee41552(){ note_ctor("ee41552", this);} // tgen
+
+static void Test_ee41552()
+{
+ extern Class_Descriptor cd_ee41552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41552, buf);
+ ee41552 *dp, &lv = *(dp=new (buf) ee41552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee41552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee41552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(16,12), "ee41552");
+ check_base_class_offset(lv, (dd1552*), 0, "ee41552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41552.e");
+ test_class_info(&lv, &cd_ee41552);
+ dp->~ee41552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41552(Test_ee41552, "ee41552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41552C1Ev();
+extern void _ZN7ee41552D1Ev();
+Name_Map name_map_ee41552[] = {
+ NSPAIR(_ZN7ee41552C1Ev),
+ NSPAIR(_ZN7ee41552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee41552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41552[];
+extern void _ZN7ee415523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee415523barEv,_ZTv0_n20_N7ee415523barEv)();
+extern void ABISELECT(_ZThn16_N7ee415523barEv,_ZThn12_N7ee415523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee415523barEv,_ZTv0_n16_N7ee415523barEv)();
+extern void ABISELECT(_ZThn32_N7ee415523barEv,_ZThn20_N7ee415523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee415523barEv,_ZTv0_n16_N7ee415523barEv)();
+extern void ABISELECT(_ZThn48_N7ee415523barEv,_ZThn28_N7ee415523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41552[0]),
+ (VTBL_ENTRY)&_ZN7ee415523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee415523barEv,_ZTv0_n20_N7ee415523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415523barEv,_ZTv0_n16_N7ee415523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee415523barEv,_ZTv0_n16_N7ee415523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee41552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee41552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee41552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee41552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee41552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee41552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee41552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee41552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee41552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41552[] = {
+ {&(_ZTV7ee41552[5]), 5,23},
+ {&(_tg__ZTV6dd1552__7ee41552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee41552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee41552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee41552[4]), 4,6},
+ {&(_ZTV7ee41552[11]), 11,23},
+ {&(_ZTV7ee41552[16]), 16,23},
+ {&(_ZTV7ee41552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee41552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee41552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee41552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee41552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee41552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41552[];
+extern VTBL_ENTRY _ZTV7ee41552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41552[];
+static VTBL_ENTRY alt_thunk_names1360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee415523barEv,_ZTv0_n16_N7ee415523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee415523barEv,_ZThn28_N7ee415523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee415523barEv,_ZThn20_N7ee415523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee415523barEv,_ZTv0_n20_N7ee415523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee415523barEv,_ZThn12_N7ee415523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41552 = { "ee41552", // class name
+ bases_ee41552, 4,
+ &(vtc_ee41552[0]), // expected_vtbl_contents
+ &(vtt_ee41552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51552 : virtual dd1552 {
+ int e;
+ virtual void bar(); // _ZN7ee515523barEv
+ ~ee51552(); // tgen
+ ee51552(); // tgen
+};
+//SIG(1 ee51552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} Fi} v1 Fi}
+
+
+void ee51552 ::bar(){vfunc_called(this, "_ZN7ee515523barEv");}
+ee51552 ::~ee51552(){ note_dtor("ee51552", this);} // tgen
+ee51552 ::ee51552(){ note_ctor("ee51552", this);} // tgen
+
+static void Test_ee51552()
+{
+ extern Class_Descriptor cd_ee51552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51552, buf);
+ ee51552 *dp, &lv = *(dp=new (buf) ee51552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee51552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee51552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(32,16), "ee51552");
+ check_base_class_offset(lv, (dd1552*), ABISELECT(16,8), "ee51552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51552.e");
+ test_class_info(&lv, &cd_ee51552);
+ dp->~ee51552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51552(Test_ee51552, "ee51552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51552C1Ev();
+extern void _ZN7ee51552D1Ev();
+Name_Map name_map_ee51552[] = {
+ NSPAIR(_ZN7ee51552C1Ev),
+ NSPAIR(_ZN7ee51552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee51552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51552[];
+extern void _ZN7ee515523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee515523barEv,_ZTv0_n20_N7ee515523barEv)();
+extern void ABISELECT(_ZThn32_N7ee515523barEv,_ZThn16_N7ee515523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee515523barEv,_ZTv0_n16_N7ee515523barEv)();
+extern void ABISELECT(_ZThn48_N7ee515523barEv,_ZThn24_N7ee515523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee515523barEv,_ZTv0_n16_N7ee515523barEv)();
+extern void ABISELECT(_ZThn64_N7ee515523barEv,_ZThn32_N7ee515523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51552[0]),
+ (VTBL_ENTRY)&_ZN7ee515523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51552[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee515523barEv,_ZTv0_n20_N7ee515523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515523barEv,_ZTv0_n16_N7ee515523barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee515523barEv,_ZTv0_n16_N7ee515523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee51552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee51552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee51552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee51552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee51552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee51552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee51552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee51552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee51552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51552[] = {
+ {&(_ZTV7ee51552[6]), 6,29},
+ {&(_ZTV7ee51552[12]), 12,29},
+ {&(_ZTV7ee51552[17]), 17,29},
+ {&(_ZTV7ee51552[22]), 22,29},
+ {&(_ZTV7ee51552[27]), 27,29},
+ {&(_tg__ZTV6dd1552__7ee51552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee51552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee51552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee51552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee51552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee51552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee51552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee51552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee51552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51552[];
+extern VTBL_ENTRY _ZTV7ee51552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51552[];
+static VTBL_ENTRY alt_thunk_names1361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee515523barEv,_ZTv0_n16_N7ee515523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee515523barEv,_ZThn32_N7ee515523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee515523barEv,_ZThn24_N7ee515523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee515523barEv,_ZTv0_n20_N7ee515523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee515523barEv,_ZThn16_N7ee515523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51552 = { "ee51552", // class name
+ bases_ee51552, 4,
+ &(vtc_ee51552[0]), // expected_vtbl_contents
+ &(vtt_ee51552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51552),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61552 : dd1552 {
+ int e;
+ virtual void foo(); // _ZN7ee615523fooEv
+ virtual void bar(); // _ZN7ee615523barEv
+ ~ee61552(); // tgen
+ ee61552(); // tgen
+};
+//SIG(1 ee61552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61552 ::foo(){vfunc_called(this, "_ZN7ee615523fooEv");}
+void ee61552 ::bar(){vfunc_called(this, "_ZN7ee615523barEv");}
+ee61552 ::~ee61552(){ note_dtor("ee61552", this);} // tgen
+ee61552 ::ee61552(){ note_ctor("ee61552", this);} // tgen
+
+static void Test_ee61552()
+{
+ extern Class_Descriptor cd_ee61552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61552, buf);
+ ee61552 *dp, &lv = *(dp=new (buf) ee61552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee61552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee61552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(16,12), "ee61552");
+ check_base_class_offset(lv, (dd1552*), 0, "ee61552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61552.e");
+ test_class_info(&lv, &cd_ee61552);
+ dp->~ee61552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61552(Test_ee61552, "ee61552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61552C1Ev();
+extern void _ZN7ee61552D1Ev();
+Name_Map name_map_ee61552[] = {
+ NSPAIR(_ZN7ee61552C1Ev),
+ NSPAIR(_ZN7ee61552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee61552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61552[];
+extern void _ZN7ee615523fooEv();
+extern void _ZN7ee615523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee615523barEv,_ZTv0_n20_N7ee615523barEv)();
+extern void ABISELECT(_ZThn16_N7ee615523barEv,_ZThn12_N7ee615523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615523barEv,_ZTv0_n16_N7ee615523barEv)();
+extern void ABISELECT(_ZThn32_N7ee615523barEv,_ZThn20_N7ee615523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee615523fooEv,_ZTv0_n12_N7ee615523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee615523fooEv,_ZThn28_N7ee615523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee615523barEv,_ZTv0_n16_N7ee615523barEv)();
+extern void ABISELECT(_ZThn48_N7ee615523barEv,_ZThn28_N7ee615523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61552[0]),
+ (VTBL_ENTRY)&_ZN7ee615523fooEv,
+ (VTBL_ENTRY)&_ZN7ee615523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee615523barEv,_ZTv0_n20_N7ee615523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615523barEv,_ZTv0_n16_N7ee615523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee615523fooEv,_ZTv0_n12_N7ee615523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee615523barEv,_ZTv0_n16_N7ee615523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee61552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee61552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee61552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee61552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee61552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee61552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee61552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee61552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee61552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61552[] = {
+ {&(_ZTV7ee61552[5]), 5,24},
+ {&(_tg__ZTV6dd1552__7ee61552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee61552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee61552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee61552[4]), 4,6},
+ {&(_ZTV7ee61552[12]), 12,24},
+ {&(_ZTV7ee61552[17]), 17,24},
+ {&(_ZTV7ee61552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee61552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee61552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee61552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee61552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee61552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61552[];
+extern VTBL_ENTRY _ZTV7ee61552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61552[];
+static VTBL_ENTRY alt_thunk_names1362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee615523fooEv,_ZTv0_n12_N7ee615523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee615523fooEv,_ZThn28_N7ee615523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee615523barEv,_ZTv0_n16_N7ee615523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee615523barEv,_ZThn28_N7ee615523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee615523barEv,_ZThn20_N7ee615523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee615523barEv,_ZTv0_n20_N7ee615523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee615523barEv,_ZThn12_N7ee615523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61552 = { "ee61552", // class name
+ bases_ee61552, 4,
+ &(vtc_ee61552[0]), // expected_vtbl_contents
+ &(vtt_ee61552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71552 : virtual dd1552 {
+ int e;
+ virtual void foo(); // _ZN7ee715523fooEv
+ virtual void bar(); // _ZN7ee715523barEv
+ ~ee71552(); // tgen
+ ee71552(); // tgen
+};
+//SIG(1 ee71552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71552 ::foo(){vfunc_called(this, "_ZN7ee715523fooEv");}
+void ee71552 ::bar(){vfunc_called(this, "_ZN7ee715523barEv");}
+ee71552 ::~ee71552(){ note_dtor("ee71552", this);} // tgen
+ee71552 ::ee71552(){ note_ctor("ee71552", this);} // tgen
+
+static void Test_ee71552()
+{
+ extern Class_Descriptor cd_ee71552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71552, buf);
+ ee71552 *dp, &lv = *(dp=new (buf) ee71552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee71552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee71552");
+ check_base_class_offset(lv, (cc552*)(dd1552*), ABISELECT(32,16), "ee71552");
+ check_base_class_offset(lv, (dd1552*), ABISELECT(16,8), "ee71552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71552.e");
+ test_class_info(&lv, &cd_ee71552);
+ dp->~ee71552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71552(Test_ee71552, "ee71552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71552C1Ev();
+extern void _ZN7ee71552D1Ev();
+Name_Map name_map_ee71552[] = {
+ NSPAIR(_ZN7ee71552C1Ev),
+ NSPAIR(_ZN7ee71552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd1552;
+extern VTBL_ENTRY _ZTI6dd1552[];
+extern VTBL_ENTRY _ZTV6dd1552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1552[];
+static Base_Class bases_ee71552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1552, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71552[];
+extern void _ZN7ee715523fooEv();
+extern void _ZN7ee715523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee715523barEv,_ZTv0_n20_N7ee715523barEv)();
+extern void ABISELECT(_ZThn32_N7ee715523barEv,_ZThn16_N7ee715523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715523barEv,_ZTv0_n16_N7ee715523barEv)();
+extern void ABISELECT(_ZThn48_N7ee715523barEv,_ZThn24_N7ee715523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee715523fooEv,_ZTv0_n12_N7ee715523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee715523fooEv,_ZThn32_N7ee715523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee715523barEv,_ZTv0_n16_N7ee715523barEv)();
+extern void ABISELECT(_ZThn64_N7ee715523barEv,_ZThn32_N7ee715523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71552[0]),
+ (VTBL_ENTRY)&_ZN7ee715523fooEv,
+ (VTBL_ENTRY)&_ZN7ee715523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71552[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee715523barEv,_ZTv0_n20_N7ee715523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715523barEv,_ZTv0_n16_N7ee715523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee715523fooEv,_ZTv0_n12_N7ee715523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee715523barEv,_ZTv0_n16_N7ee715523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71552[];
+static VTBL_ENTRY _tg__ZTV6dd1552__7ee71552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd1552__7ee71552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1552__7ee71552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1552__7ee71552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee71552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee71552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee71552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee71552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee71552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71552[] = {
+ {&(_ZTV7ee71552[6]), 6,30},
+ {&(_ZTV7ee71552[13]), 13,30},
+ {&(_ZTV7ee71552[18]), 18,30},
+ {&(_ZTV7ee71552[23]), 23,30},
+ {&(_ZTV7ee71552[28]), 28,30},
+ {&(_tg__ZTV6dd1552__7ee71552[5]), 5,5},
+ {&(_tg__ZTV5cc552__6dd1552__7ee71552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd1552__7ee71552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1552__7ee71552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee71552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee71552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee71552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee71552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee71552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71552[];
+extern VTBL_ENTRY _ZTV7ee71552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71552[];
+static VTBL_ENTRY alt_thunk_names1363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee715523fooEv,_ZTv0_n12_N7ee715523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee715523fooEv,_ZThn32_N7ee715523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee715523barEv,_ZTv0_n16_N7ee715523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee715523barEv,_ZThn32_N7ee715523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee715523barEv,_ZThn24_N7ee715523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee715523barEv,_ZTv0_n20_N7ee715523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee715523barEv,_ZThn16_N7ee715523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71552 = { "ee71552", // class name
+ bases_ee71552, 4,
+ &(vtc_ee71552[0]), // expected_vtbl_contents
+ &(vtt_ee71552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71552),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2552 : cc552 {
+ int d;
+ virtual void foo(); // _ZN6dd25523fooEv
+ ~dd2552(); // tgen
+ dd2552(); // tgen
+};
+//SIG(-1 dd2552) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd2552 ::foo(){vfunc_called(this, "_ZN6dd25523fooEv");}
+dd2552 ::~dd2552(){ note_dtor("dd2552", this);} // tgen
+dd2552 ::dd2552(){ note_ctor("dd2552", this);} // tgen
+
+static void Test_dd2552()
+{
+ extern Class_Descriptor cd_dd2552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2552, buf);
+ dd2552 *dp, &lv = *(dp=new (buf) dd2552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd2552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(16,12), "dd2552");
+ check_base_class_offset(lv, (cc552*), 0, "dd2552");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2552.d");
+ test_class_info(&lv, &cd_dd2552);
+ dp->~dd2552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2552(Test_dd2552, "dd2552", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2552C1Ev();
+extern void _ZN6dd2552D1Ev();
+Name_Map name_map_dd2552[] = {
+ NSPAIR(_ZN6dd2552C1Ev),
+ NSPAIR(_ZN6dd2552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd2552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd2552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd2552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd2552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd2552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2552[] = {
+ {&(_ZTV6dd2552[4]), 4,17},
+ {&(_tg__ZTV5cc552__6dd2552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd2552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd2552[4]), 4,6},
+ {&(_ZTV6dd2552[10]), 10,17},
+ {&(_ZTV6dd2552[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd2552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd2552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static VTBL_ENTRY alt_thunk_names1364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2552 = { "dd2552", // class name
+ bases_dd2552, 3,
+ &(vtc_dd2552[0]), // expected_vtbl_contents
+ &(vtt_dd2552[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2552),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02552 : dd2552 {
+ int e;
+ ~ee02552(); // tgen
+ ee02552(); // tgen
+};
+//SIG(1 ee02552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee02552 ::~ee02552(){ note_dtor("ee02552", this);} // tgen
+ee02552 ::ee02552(){ note_ctor("ee02552", this);} // tgen
+
+static void Test_ee02552()
+{
+ extern Class_Descriptor cd_ee02552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02552, buf);
+ ee02552 *dp, &lv = *(dp=new (buf) ee02552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee02552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(24,16), "ee02552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), 0, "ee02552");
+ check_base_class_offset(lv, (dd2552*), 0, "ee02552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02552.e");
+ test_class_info(&lv, &cd_ee02552);
+ dp->~ee02552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02552(Test_ee02552, "ee02552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02552C1Ev();
+extern void _ZN7ee02552D1Ev();
+Name_Map name_map_ee02552[] = {
+ NSPAIR(_ZN7ee02552C1Ev),
+ NSPAIR(_ZN7ee02552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee02552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee02552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee02552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee02552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee02552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee02552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee02552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee02552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee02552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02552[] = {
+ {&(_ZTV7ee02552[4]), 4,17},
+ {&(_tg__ZTV6dd2552__7ee02552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee02552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee02552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee02552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee02552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee02552[4]), 4,6},
+ {&(_ZTV7ee02552[10]), 10,17},
+ {&(_ZTV7ee02552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee02552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee02552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee02552[];
+extern VTBL_ENTRY _ZTV7ee02552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02552[];
+static VTBL_ENTRY alt_thunk_names1365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02552 = { "ee02552", // class name
+ bases_ee02552, 4,
+ &(vtc_ee02552[0]), // expected_vtbl_contents
+ &(vtt_ee02552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12552 : virtual dd2552 {
+ int e;
+ ~ee12552(); // tgen
+ ee12552(); // tgen
+};
+//SIG(1 ee12552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee12552 ::~ee12552(){ note_dtor("ee12552", this);} // tgen
+ee12552 ::ee12552(){ note_ctor("ee12552", this);} // tgen
+
+static void Test_ee12552()
+{
+ extern Class_Descriptor cd_ee12552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12552, buf);
+ ee12552 *dp, &lv = *(dp=new (buf) ee12552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee12552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(32,20), "ee12552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), ABISELECT(16,8), "ee12552");
+ check_base_class_offset(lv, (dd2552*), ABISELECT(16,8), "ee12552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12552.e");
+ test_class_info(&lv, &cd_ee12552);
+ dp->~ee12552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12552(Test_ee12552, "ee12552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12552C1Ev();
+extern void _ZN7ee12552D1Ev();
+Name_Map name_map_ee12552[] = {
+ NSPAIR(_ZN7ee12552C1Ev),
+ NSPAIR(_ZN7ee12552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee12552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12552[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee12552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee12552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee12552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee12552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee12552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee12552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee12552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee12552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12552[] = {
+ {&(_ZTV7ee12552[5]), 5,24},
+ {&(_ZTV7ee12552[11]), 11,24},
+ {&(_ZTV7ee12552[17]), 17,24},
+ {&(_ZTV7ee12552[22]), 22,24},
+ {&(_tg__ZTV6dd2552__7ee12552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee12552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee12552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee12552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee12552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee12552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee12552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee12552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12552[];
+extern VTBL_ENTRY _ZTV7ee12552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12552[];
+static VTBL_ENTRY alt_thunk_names1366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12552 = { "ee12552", // class name
+ bases_ee12552, 4,
+ &(vtc_ee12552[0]), // expected_vtbl_contents
+ &(vtt_ee12552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1366,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22552 : dd2552 {
+ int e;
+ virtual void foo(); // _ZN7ee225523fooEv
+ ~ee22552(); // tgen
+ ee22552(); // tgen
+};
+//SIG(1 ee22552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22552 ::foo(){vfunc_called(this, "_ZN7ee225523fooEv");}
+ee22552 ::~ee22552(){ note_dtor("ee22552", this);} // tgen
+ee22552 ::ee22552(){ note_ctor("ee22552", this);} // tgen
+
+static void Test_ee22552()
+{
+ extern Class_Descriptor cd_ee22552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22552, buf);
+ ee22552 *dp, &lv = *(dp=new (buf) ee22552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee22552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(24,16), "ee22552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), 0, "ee22552");
+ check_base_class_offset(lv, (dd2552*), 0, "ee22552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22552.e");
+ test_class_info(&lv, &cd_ee22552);
+ dp->~ee22552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22552(Test_ee22552, "ee22552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22552C1Ev();
+extern void _ZN7ee22552D1Ev();
+Name_Map name_map_ee22552[] = {
+ NSPAIR(_ZN7ee22552C1Ev),
+ NSPAIR(_ZN7ee22552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee22552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN7ee225523fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee225523fooEv,_ZTv0_n12_N7ee225523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee225523fooEv,_ZThn24_N7ee225523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN7ee225523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee225523fooEv,_ZTv0_n12_N7ee225523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee22552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee22552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee22552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee22552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee22552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee22552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee22552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee22552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22552[] = {
+ {&(_ZTV7ee22552[4]), 4,17},
+ {&(_tg__ZTV6dd2552__7ee22552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee22552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee22552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee22552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee22552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee22552[4]), 4,6},
+ {&(_ZTV7ee22552[10]), 10,17},
+ {&(_ZTV7ee22552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee22552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee22552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee22552[];
+extern VTBL_ENTRY _ZTV7ee22552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22552[];
+static VTBL_ENTRY alt_thunk_names1367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee225523fooEv,_ZTv0_n12_N7ee225523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee225523fooEv,_ZThn24_N7ee225523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22552 = { "ee22552", // class name
+ bases_ee22552, 4,
+ &(vtc_ee22552[0]), // expected_vtbl_contents
+ &(vtt_ee22552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32552 : virtual dd2552 {
+ int e;
+ virtual void foo(); // _ZN7ee325523fooEv
+ ~ee32552(); // tgen
+ ee32552(); // tgen
+};
+//SIG(1 ee32552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32552 ::foo(){vfunc_called(this, "_ZN7ee325523fooEv");}
+ee32552 ::~ee32552(){ note_dtor("ee32552", this);} // tgen
+ee32552 ::ee32552(){ note_ctor("ee32552", this);} // tgen
+
+static void Test_ee32552()
+{
+ extern Class_Descriptor cd_ee32552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32552, buf);
+ ee32552 *dp, &lv = *(dp=new (buf) ee32552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee32552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(32,20), "ee32552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), ABISELECT(16,8), "ee32552");
+ check_base_class_offset(lv, (dd2552*), ABISELECT(16,8), "ee32552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32552.e");
+ test_class_info(&lv, &cd_ee32552);
+ dp->~ee32552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32552(Test_ee32552, "ee32552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32552C1Ev();
+extern void _ZN7ee32552D1Ev();
+Name_Map name_map_ee32552[] = {
+ NSPAIR(_ZN7ee32552C1Ev),
+ NSPAIR(_ZN7ee32552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee32552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32552[];
+extern void _ZN7ee325523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee325523fooEv,_ZTv0_n24_N7ee325523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee325523fooEv,_ZThn8_N7ee325523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee325523fooEv,_ZTv0_n12_N7ee325523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee325523fooEv,_ZThn28_N7ee325523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32552[0]),
+ (VTBL_ENTRY)&_ZN7ee325523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee325523fooEv,_ZTv0_n24_N7ee325523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee325523fooEv,_ZTv0_n12_N7ee325523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee32552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee32552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee32552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee32552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee32552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee32552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee32552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee32552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32552[] = {
+ {&(_ZTV7ee32552[5]), 5,25},
+ {&(_ZTV7ee32552[12]), 12,25},
+ {&(_ZTV7ee32552[18]), 18,25},
+ {&(_ZTV7ee32552[23]), 23,25},
+ {&(_tg__ZTV6dd2552__7ee32552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee32552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee32552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee32552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee32552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee32552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee32552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee32552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32552[];
+extern VTBL_ENTRY _ZTV7ee32552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32552[];
+static VTBL_ENTRY alt_thunk_names1368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee325523fooEv,_ZTv0_n12_N7ee325523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee325523fooEv,_ZThn28_N7ee325523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee325523fooEv,_ZTv0_n24_N7ee325523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee325523fooEv,_ZThn8_N7ee325523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32552 = { "ee32552", // class name
+ bases_ee32552, 4,
+ &(vtc_ee32552[0]), // expected_vtbl_contents
+ &(vtt_ee32552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32552),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42552 : dd2552 {
+ int e;
+ virtual void bar(); // _ZN7ee425523barEv
+ ~ee42552(); // tgen
+ ee42552(); // tgen
+};
+//SIG(1 ee42552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42552 ::bar(){vfunc_called(this, "_ZN7ee425523barEv");}
+ee42552 ::~ee42552(){ note_dtor("ee42552", this);} // tgen
+ee42552 ::ee42552(){ note_ctor("ee42552", this);} // tgen
+
+static void Test_ee42552()
+{
+ extern Class_Descriptor cd_ee42552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42552, buf);
+ ee42552 *dp, &lv = *(dp=new (buf) ee42552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee42552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(24,16), "ee42552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), 0, "ee42552");
+ check_base_class_offset(lv, (dd2552*), 0, "ee42552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42552.e");
+ test_class_info(&lv, &cd_ee42552);
+ dp->~ee42552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42552(Test_ee42552, "ee42552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42552C1Ev();
+extern void _ZN7ee42552D1Ev();
+Name_Map name_map_ee42552[] = {
+ NSPAIR(_ZN7ee42552C1Ev),
+ NSPAIR(_ZN7ee42552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee42552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42552[];
+extern void _ZN7ee425523barEv();
+extern void _ZN6dd25523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee425523barEv,_ZTv0_n16_N7ee425523barEv)();
+extern void ABISELECT(_ZThn24_N7ee425523barEv,_ZThn16_N7ee425523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee425523barEv,_ZTv0_n16_N7ee425523barEv)();
+extern void ABISELECT(_ZThn40_N7ee425523barEv,_ZThn24_N7ee425523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42552[0]),
+ (VTBL_ENTRY)&_ZN7ee425523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425523barEv,_ZTv0_n16_N7ee425523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee425523barEv,_ZTv0_n16_N7ee425523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee42552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee42552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee42552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee42552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee42552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee42552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee42552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee42552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42552[] = {
+ {&(_ZTV7ee42552[4]), 4,17},
+ {&(_tg__ZTV6dd2552__7ee42552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee42552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee42552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee42552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee42552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee42552[4]), 4,6},
+ {&(_ZTV7ee42552[10]), 10,17},
+ {&(_ZTV7ee42552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee42552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee42552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee42552[];
+extern VTBL_ENTRY _ZTV7ee42552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42552[];
+static VTBL_ENTRY alt_thunk_names1369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee425523barEv,_ZTv0_n16_N7ee425523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee425523barEv,_ZThn24_N7ee425523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee425523barEv,_ZThn16_N7ee425523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42552 = { "ee42552", // class name
+ bases_ee42552, 4,
+ &(vtc_ee42552[0]), // expected_vtbl_contents
+ &(vtt_ee42552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52552 : virtual dd2552 {
+ int e;
+ virtual void bar(); // _ZN7ee525523barEv
+ ~ee52552(); // tgen
+ ee52552(); // tgen
+};
+//SIG(1 ee52552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52552 ::bar(){vfunc_called(this, "_ZN7ee525523barEv");}
+ee52552 ::~ee52552(){ note_dtor("ee52552", this);} // tgen
+ee52552 ::ee52552(){ note_ctor("ee52552", this);} // tgen
+
+static void Test_ee52552()
+{
+ extern Class_Descriptor cd_ee52552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52552, buf);
+ ee52552 *dp, &lv = *(dp=new (buf) ee52552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee52552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(32,20), "ee52552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), ABISELECT(16,8), "ee52552");
+ check_base_class_offset(lv, (dd2552*), ABISELECT(16,8), "ee52552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52552.e");
+ test_class_info(&lv, &cd_ee52552);
+ dp->~ee52552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52552(Test_ee52552, "ee52552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52552C1Ev();
+extern void _ZN7ee52552D1Ev();
+Name_Map name_map_ee52552[] = {
+ NSPAIR(_ZN7ee52552C1Ev),
+ NSPAIR(_ZN7ee52552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee52552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52552[];
+extern void _ZN7ee525523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee525523barEv,_ZTv0_n20_N7ee525523barEv)();
+extern void ABISELECT(_ZThn16_N7ee525523barEv,_ZThn8_N7ee525523barEv)() __attribute__((weak));
+extern void _ZN6dd25523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee525523barEv,_ZTv0_n16_N7ee525523barEv)();
+extern void ABISELECT(_ZThn32_N7ee525523barEv,_ZThn20_N7ee525523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee525523barEv,_ZTv0_n16_N7ee525523barEv)();
+extern void ABISELECT(_ZThn48_N7ee525523barEv,_ZThn28_N7ee525523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52552[0]),
+ (VTBL_ENTRY)&_ZN7ee525523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee525523barEv,_ZTv0_n20_N7ee525523barEv),
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525523barEv,_ZTv0_n16_N7ee525523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee525523barEv,_ZTv0_n16_N7ee525523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee52552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee52552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee52552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee52552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee52552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee52552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee52552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee52552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52552[] = {
+ {&(_ZTV7ee52552[5]), 5,25},
+ {&(_ZTV7ee52552[12]), 12,25},
+ {&(_ZTV7ee52552[18]), 18,25},
+ {&(_ZTV7ee52552[23]), 23,25},
+ {&(_tg__ZTV6dd2552__7ee52552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee52552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee52552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee52552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee52552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee52552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee52552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee52552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52552[];
+extern VTBL_ENTRY _ZTV7ee52552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52552[];
+static VTBL_ENTRY alt_thunk_names1370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee525523barEv,_ZTv0_n16_N7ee525523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee525523barEv,_ZThn28_N7ee525523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee525523barEv,_ZThn20_N7ee525523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee525523barEv,_ZTv0_n20_N7ee525523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee525523barEv,_ZThn8_N7ee525523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52552 = { "ee52552", // class name
+ bases_ee52552, 4,
+ &(vtc_ee52552[0]), // expected_vtbl_contents
+ &(vtt_ee52552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52552),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62552 : dd2552 {
+ int e;
+ virtual void foo(); // _ZN7ee625523fooEv
+ virtual void bar(); // _ZN7ee625523barEv
+ ~ee62552(); // tgen
+ ee62552(); // tgen
+};
+//SIG(1 ee62552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62552 ::foo(){vfunc_called(this, "_ZN7ee625523fooEv");}
+void ee62552 ::bar(){vfunc_called(this, "_ZN7ee625523barEv");}
+ee62552 ::~ee62552(){ note_dtor("ee62552", this);} // tgen
+ee62552 ::ee62552(){ note_ctor("ee62552", this);} // tgen
+
+static void Test_ee62552()
+{
+ extern Class_Descriptor cd_ee62552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62552, buf);
+ ee62552 *dp, &lv = *(dp=new (buf) ee62552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee62552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(24,16), "ee62552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), 0, "ee62552");
+ check_base_class_offset(lv, (dd2552*), 0, "ee62552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62552.e");
+ test_class_info(&lv, &cd_ee62552);
+ dp->~ee62552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62552(Test_ee62552, "ee62552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62552C1Ev();
+extern void _ZN7ee62552D1Ev();
+Name_Map name_map_ee62552[] = {
+ NSPAIR(_ZN7ee62552C1Ev),
+ NSPAIR(_ZN7ee62552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee62552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62552[];
+extern void _ZN7ee625523barEv();
+extern void _ZN7ee625523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee625523barEv,_ZTv0_n16_N7ee625523barEv)();
+extern void ABISELECT(_ZThn24_N7ee625523barEv,_ZThn16_N7ee625523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee625523fooEv,_ZTv0_n12_N7ee625523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee625523fooEv,_ZThn24_N7ee625523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee625523barEv,_ZTv0_n16_N7ee625523barEv)();
+extern void ABISELECT(_ZThn40_N7ee625523barEv,_ZThn24_N7ee625523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62552[0]),
+ (VTBL_ENTRY)&_ZN7ee625523barEv,
+ (VTBL_ENTRY)&_ZN7ee625523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625523barEv,_ZTv0_n16_N7ee625523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee625523fooEv,_ZTv0_n12_N7ee625523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee625523barEv,_ZTv0_n16_N7ee625523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee62552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee62552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee62552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee62552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee62552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee62552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee62552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee62552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62552[] = {
+ {&(_ZTV7ee62552[4]), 4,17},
+ {&(_tg__ZTV6dd2552__7ee62552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee62552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee62552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee62552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee62552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee62552[4]), 4,6},
+ {&(_ZTV7ee62552[10]), 10,17},
+ {&(_ZTV7ee62552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee62552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee62552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee62552[];
+extern VTBL_ENTRY _ZTV7ee62552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62552[];
+static VTBL_ENTRY alt_thunk_names1371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd25523fooEv,_ZThn24_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee625523fooEv,_ZTv0_n12_N7ee625523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee625523fooEv,_ZThn24_N7ee625523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee625523barEv,_ZTv0_n16_N7ee625523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee625523barEv,_ZThn24_N7ee625523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee625523barEv,_ZThn16_N7ee625523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62552 = { "ee62552", // class name
+ bases_ee62552, 4,
+ &(vtc_ee62552[0]), // expected_vtbl_contents
+ &(vtt_ee62552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72552 : virtual dd2552 {
+ int e;
+ virtual void foo(); // _ZN7ee725523fooEv
+ virtual void bar(); // _ZN7ee725523barEv
+ ~ee72552(); // tgen
+ ee72552(); // tgen
+};
+//SIG(1 ee72552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72552 ::foo(){vfunc_called(this, "_ZN7ee725523fooEv");}
+void ee72552 ::bar(){vfunc_called(this, "_ZN7ee725523barEv");}
+ee72552 ::~ee72552(){ note_dtor("ee72552", this);} // tgen
+ee72552 ::ee72552(){ note_ctor("ee72552", this);} // tgen
+
+static void Test_ee72552()
+{
+ extern Class_Descriptor cd_ee72552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72552, buf);
+ ee72552 *dp, &lv = *(dp=new (buf) ee72552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee72552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd2552*), ABISELECT(32,20), "ee72552");
+ check_base_class_offset(lv, (cc552*)(dd2552*), ABISELECT(16,8), "ee72552");
+ check_base_class_offset(lv, (dd2552*), ABISELECT(16,8), "ee72552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72552.e");
+ test_class_info(&lv, &cd_ee72552);
+ dp->~ee72552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72552(Test_ee72552, "ee72552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72552C1Ev();
+extern void _ZN7ee72552D1Ev();
+Name_Map name_map_ee72552[] = {
+ NSPAIR(_ZN7ee72552C1Ev),
+ NSPAIR(_ZN7ee72552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd2552;
+extern VTBL_ENTRY _ZTI6dd2552[];
+extern VTBL_ENTRY _ZTV6dd2552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2552[];
+static Base_Class bases_ee72552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72552[];
+extern void _ZN7ee725523fooEv();
+extern void _ZN7ee725523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee725523barEv,_ZTv0_n20_N7ee725523barEv)();
+extern void ABISELECT(_ZThn16_N7ee725523barEv,_ZThn8_N7ee725523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee725523fooEv,_ZTv0_n24_N7ee725523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee725523fooEv,_ZThn8_N7ee725523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725523barEv,_ZTv0_n16_N7ee725523barEv)();
+extern void ABISELECT(_ZThn32_N7ee725523barEv,_ZThn20_N7ee725523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee725523fooEv,_ZTv0_n12_N7ee725523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee725523fooEv,_ZThn28_N7ee725523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee725523barEv,_ZTv0_n16_N7ee725523barEv)();
+extern void ABISELECT(_ZThn48_N7ee725523barEv,_ZThn28_N7ee725523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72552[0]),
+ (VTBL_ENTRY)&_ZN7ee725523fooEv,
+ (VTBL_ENTRY)&_ZN7ee725523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee725523barEv,_ZTv0_n20_N7ee725523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee725523fooEv,_ZTv0_n24_N7ee725523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725523barEv,_ZTv0_n16_N7ee725523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee725523fooEv,_ZTv0_n12_N7ee725523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee725523barEv,_ZTv0_n16_N7ee725523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72552[];
+extern void _ZN5cc5523barEv();
+extern void _ZN6dd25523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2552__7ee72552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ (VTBL_ENTRY)&_ZN6dd25523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd2552__7ee72552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd2552__7ee72552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd2552__7ee72552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2552__7ee72552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2552__7ee72552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee72552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee72552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72552[] = {
+ {&(_ZTV7ee72552[5]), 5,26},
+ {&(_ZTV7ee72552[13]), 13,26},
+ {&(_ZTV7ee72552[19]), 19,26},
+ {&(_ZTV7ee72552[24]), 24,26},
+ {&(_tg__ZTV6dd2552__7ee72552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd2552__7ee72552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd2552__7ee72552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd2552__7ee72552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2552__7ee72552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2552__7ee72552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee72552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee72552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72552[];
+extern VTBL_ENTRY _ZTV7ee72552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72552[];
+static VTBL_ENTRY alt_thunk_names1372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd25523fooEv,_ZTv0_n12_N6dd25523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd25523fooEv,_ZThn20_N6dd25523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee725523fooEv,_ZTv0_n12_N7ee725523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee725523fooEv,_ZThn28_N7ee725523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee725523barEv,_ZTv0_n16_N7ee725523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee725523barEv,_ZThn28_N7ee725523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee725523barEv,_ZThn20_N7ee725523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee725523fooEv,_ZTv0_n24_N7ee725523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725523fooEv,_ZThn8_N7ee725523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee725523barEv,_ZTv0_n20_N7ee725523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee725523barEv,_ZThn8_N7ee725523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72552 = { "ee72552", // class name
+ bases_ee72552, 4,
+ &(vtc_ee72552[0]), // expected_vtbl_contents
+ &(vtt_ee72552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72552),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3552 : virtual cc552 {
+ int d;
+ virtual void foo(); // _ZN6dd35523fooEv
+ ~dd3552(); // tgen
+ dd3552(); // tgen
+};
+//SIG(-1 dd3552) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void dd3552 ::foo(){vfunc_called(this, "_ZN6dd35523fooEv");}
+dd3552 ::~dd3552(){ note_dtor("dd3552", this);} // tgen
+dd3552 ::dd3552(){ note_ctor("dd3552", this);} // tgen
+
+static void Test_dd3552()
+{
+ extern Class_Descriptor cd_dd3552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3552, buf);
+ dd3552 *dp, &lv = *(dp=new (buf) dd3552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd3552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,16), "dd3552");
+ check_base_class_offset(lv, (cc552*), ABISELECT(16,8), "dd3552");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3552.d");
+ test_class_info(&lv, &cd_dd3552);
+ dp->~dd3552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3552(Test_dd3552, "dd3552", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3552C1Ev();
+extern void _ZN6dd3552D1Ev();
+Name_Map name_map_dd3552[] = {
+ NSPAIR(_ZN6dd3552C1Ev),
+ NSPAIR(_ZN6dd3552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd3552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd3552[];
+extern void _ZN6dd35523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd3552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd3552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd3552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3552[] = {
+ {&(_ZTV6dd3552[5]), 5,23},
+ {&(_ZTV6dd3552[11]), 11,23},
+ {&(_ZTV6dd3552[16]), 16,23},
+ {&(_ZTV6dd3552[21]), 21,23},
+ {&(_tg__ZTV5cc552__6dd3552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd3552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd3552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd3552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd3552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static VTBL_ENTRY alt_thunk_names1373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3552 = { "dd3552", // class name
+ bases_dd3552, 3,
+ &(vtc_dd3552[0]), // expected_vtbl_contents
+ &(vtt_dd3552[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3552),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03552 : dd3552 {
+ int e;
+ ~ee03552(); // tgen
+ ee03552(); // tgen
+};
+//SIG(1 ee03552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee03552 ::~ee03552(){ note_dtor("ee03552", this);} // tgen
+ee03552 ::ee03552(){ note_ctor("ee03552", this);} // tgen
+
+static void Test_ee03552()
+{
+ extern Class_Descriptor cd_ee03552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03552, buf);
+ ee03552 *dp, &lv = *(dp=new (buf) ee03552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee03552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee03552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(16,12), "ee03552");
+ check_base_class_offset(lv, (dd3552*), 0, "ee03552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03552.e");
+ test_class_info(&lv, &cd_ee03552);
+ dp->~ee03552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03552(Test_ee03552, "ee03552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03552C1Ev();
+extern void _ZN7ee03552D1Ev();
+Name_Map name_map_ee03552[] = {
+ NSPAIR(_ZN7ee03552C1Ev),
+ NSPAIR(_ZN7ee03552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee03552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03552[];
+extern void _ZN6dd35523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee03552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee03552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee03552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee03552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee03552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee03552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee03552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee03552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee03552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03552[] = {
+ {&(_ZTV7ee03552[5]), 5,23},
+ {&(_tg__ZTV6dd3552__7ee03552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee03552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee03552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee03552[4]), 4,6},
+ {&(_ZTV7ee03552[11]), 11,23},
+ {&(_ZTV7ee03552[16]), 16,23},
+ {&(_ZTV7ee03552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee03552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee03552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee03552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee03552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee03552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03552[];
+extern VTBL_ENTRY _ZTV7ee03552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03552[];
+static VTBL_ENTRY alt_thunk_names1374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03552 = { "ee03552", // class name
+ bases_ee03552, 4,
+ &(vtc_ee03552[0]), // expected_vtbl_contents
+ &(vtt_ee03552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13552 : virtual dd3552 {
+ int e;
+ ~ee13552(); // tgen
+ ee13552(); // tgen
+};
+//SIG(1 ee13552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} Fi}
+
+
+ee13552 ::~ee13552(){ note_dtor("ee13552", this);} // tgen
+ee13552 ::ee13552(){ note_ctor("ee13552", this);} // tgen
+
+static void Test_ee13552()
+{
+ extern Class_Descriptor cd_ee13552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13552, buf);
+ ee13552 *dp, &lv = *(dp=new (buf) ee13552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee13552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee13552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(32,16), "ee13552");
+ check_base_class_offset(lv, (dd3552*), ABISELECT(16,8), "ee13552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13552.e");
+ test_class_info(&lv, &cd_ee13552);
+ dp->~ee13552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13552(Test_ee13552, "ee13552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13552C1Ev();
+extern void _ZN7ee13552D1Ev();
+Name_Map name_map_ee13552[] = {
+ NSPAIR(_ZN7ee13552C1Ev),
+ NSPAIR(_ZN7ee13552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee13552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13552[];
+extern void _ZN6dd35523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13552[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee13552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee13552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee13552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee13552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee13552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee13552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee13552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee13552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee13552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13552[] = {
+ {&(_ZTV7ee13552[6]), 6,30},
+ {&(_ZTV7ee13552[12]), 12,30},
+ {&(_ZTV7ee13552[18]), 18,30},
+ {&(_ZTV7ee13552[23]), 23,30},
+ {&(_ZTV7ee13552[28]), 28,30},
+ {&(_tg__ZTV6dd3552__7ee13552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee13552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee13552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee13552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee13552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee13552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee13552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee13552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee13552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13552[];
+extern VTBL_ENTRY _ZTV7ee13552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13552[];
+static VTBL_ENTRY alt_thunk_names1375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13552 = { "ee13552", // class name
+ bases_ee13552, 4,
+ &(vtc_ee13552[0]), // expected_vtbl_contents
+ &(vtt_ee13552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13552),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23552 : dd3552 {
+ int e;
+ virtual void foo(); // _ZN7ee235523fooEv
+ ~ee23552(); // tgen
+ ee23552(); // tgen
+};
+//SIG(1 ee23552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23552 ::foo(){vfunc_called(this, "_ZN7ee235523fooEv");}
+ee23552 ::~ee23552(){ note_dtor("ee23552", this);} // tgen
+ee23552 ::ee23552(){ note_ctor("ee23552", this);} // tgen
+
+static void Test_ee23552()
+{
+ extern Class_Descriptor cd_ee23552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23552, buf);
+ ee23552 *dp, &lv = *(dp=new (buf) ee23552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee23552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee23552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(16,12), "ee23552");
+ check_base_class_offset(lv, (dd3552*), 0, "ee23552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23552.e");
+ test_class_info(&lv, &cd_ee23552);
+ dp->~ee23552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23552(Test_ee23552, "ee23552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23552C1Ev();
+extern void _ZN7ee23552D1Ev();
+Name_Map name_map_ee23552[] = {
+ NSPAIR(_ZN7ee23552C1Ev),
+ NSPAIR(_ZN7ee23552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee23552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23552[];
+extern void _ZN7ee235523fooEv();
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee235523fooEv,_ZTv0_n12_N7ee235523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee235523fooEv,_ZThn28_N7ee235523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23552[0]),
+ (VTBL_ENTRY)&_ZN7ee235523fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee235523fooEv,_ZTv0_n12_N7ee235523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee23552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee23552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee23552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee23552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee23552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee23552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee23552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee23552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee23552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23552[] = {
+ {&(_ZTV7ee23552[5]), 5,23},
+ {&(_tg__ZTV6dd3552__7ee23552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee23552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee23552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee23552[4]), 4,6},
+ {&(_ZTV7ee23552[11]), 11,23},
+ {&(_ZTV7ee23552[16]), 16,23},
+ {&(_ZTV7ee23552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee23552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee23552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee23552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee23552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee23552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23552[];
+extern VTBL_ENTRY _ZTV7ee23552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23552[];
+static VTBL_ENTRY alt_thunk_names1376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee235523fooEv,_ZTv0_n12_N7ee235523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee235523fooEv,_ZThn28_N7ee235523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23552 = { "ee23552", // class name
+ bases_ee23552, 4,
+ &(vtc_ee23552[0]), // expected_vtbl_contents
+ &(vtt_ee23552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33552 : virtual dd3552 {
+ int e;
+ virtual void foo(); // _ZN7ee335523fooEv
+ ~ee33552(); // tgen
+ ee33552(); // tgen
+};
+//SIG(1 ee33552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33552 ::foo(){vfunc_called(this, "_ZN7ee335523fooEv");}
+ee33552 ::~ee33552(){ note_dtor("ee33552", this);} // tgen
+ee33552 ::ee33552(){ note_ctor("ee33552", this);} // tgen
+
+static void Test_ee33552()
+{
+ extern Class_Descriptor cd_ee33552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33552, buf);
+ ee33552 *dp, &lv = *(dp=new (buf) ee33552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee33552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee33552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(32,16), "ee33552");
+ check_base_class_offset(lv, (dd3552*), ABISELECT(16,8), "ee33552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33552.e");
+ test_class_info(&lv, &cd_ee33552);
+ dp->~ee33552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33552(Test_ee33552, "ee33552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33552C1Ev();
+extern void _ZN7ee33552D1Ev();
+Name_Map name_map_ee33552[] = {
+ NSPAIR(_ZN7ee33552C1Ev),
+ NSPAIR(_ZN7ee33552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee33552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33552[];
+extern void _ZN7ee335523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee335523fooEv,_ZTv0_n24_N7ee335523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee335523fooEv,_ZThn8_N7ee335523fooEv)() __attribute__((weak));
+extern void _ZN5cc5523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee335523fooEv,_ZTv0_n12_N7ee335523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee335523fooEv,_ZThn32_N7ee335523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33552[0]),
+ (VTBL_ENTRY)&_ZN7ee335523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee335523fooEv,_ZTv0_n24_N7ee335523fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee335523fooEv,_ZTv0_n12_N7ee335523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee33552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee33552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee33552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee33552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee33552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee33552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee33552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee33552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee33552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33552[] = {
+ {&(_ZTV7ee33552[6]), 6,31},
+ {&(_ZTV7ee33552[13]), 13,31},
+ {&(_ZTV7ee33552[19]), 19,31},
+ {&(_ZTV7ee33552[24]), 24,31},
+ {&(_ZTV7ee33552[29]), 29,31},
+ {&(_tg__ZTV6dd3552__7ee33552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee33552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee33552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee33552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee33552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee33552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee33552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee33552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee33552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33552[];
+extern VTBL_ENTRY _ZTV7ee33552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33552[];
+static VTBL_ENTRY alt_thunk_names1377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee335523fooEv,_ZTv0_n12_N7ee335523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee335523fooEv,_ZThn32_N7ee335523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee335523fooEv,_ZTv0_n24_N7ee335523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee335523fooEv,_ZThn8_N7ee335523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33552 = { "ee33552", // class name
+ bases_ee33552, 4,
+ &(vtc_ee33552[0]), // expected_vtbl_contents
+ &(vtt_ee33552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33552),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43552 : dd3552 {
+ int e;
+ virtual void bar(); // _ZN7ee435523barEv
+ ~ee43552(); // tgen
+ ee43552(); // tgen
+};
+//SIG(1 ee43552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43552 ::bar(){vfunc_called(this, "_ZN7ee435523barEv");}
+ee43552 ::~ee43552(){ note_dtor("ee43552", this);} // tgen
+ee43552 ::ee43552(){ note_ctor("ee43552", this);} // tgen
+
+static void Test_ee43552()
+{
+ extern Class_Descriptor cd_ee43552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43552, buf);
+ ee43552 *dp, &lv = *(dp=new (buf) ee43552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee43552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee43552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(16,12), "ee43552");
+ check_base_class_offset(lv, (dd3552*), 0, "ee43552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43552.e");
+ test_class_info(&lv, &cd_ee43552);
+ dp->~ee43552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43552(Test_ee43552, "ee43552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43552C1Ev();
+extern void _ZN7ee43552D1Ev();
+Name_Map name_map_ee43552[] = {
+ NSPAIR(_ZN7ee43552C1Ev),
+ NSPAIR(_ZN7ee43552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee43552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43552[];
+extern void _ZN6dd35523fooEv();
+extern void _ZN7ee435523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee435523barEv,_ZTv0_n20_N7ee435523barEv)();
+extern void ABISELECT(_ZThn16_N7ee435523barEv,_ZThn12_N7ee435523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435523barEv,_ZTv0_n16_N7ee435523barEv)();
+extern void ABISELECT(_ZThn32_N7ee435523barEv,_ZThn20_N7ee435523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee435523barEv,_ZTv0_n16_N7ee435523barEv)();
+extern void ABISELECT(_ZThn48_N7ee435523barEv,_ZThn28_N7ee435523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+ (VTBL_ENTRY)&_ZN7ee435523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee435523barEv,_ZTv0_n20_N7ee435523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435523barEv,_ZTv0_n16_N7ee435523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee435523barEv,_ZTv0_n16_N7ee435523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee43552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee43552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee43552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee43552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee43552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee43552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee43552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee43552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee43552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43552[] = {
+ {&(_ZTV7ee43552[5]), 5,24},
+ {&(_tg__ZTV6dd3552__7ee43552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee43552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee43552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee43552[4]), 4,6},
+ {&(_ZTV7ee43552[12]), 12,24},
+ {&(_ZTV7ee43552[17]), 17,24},
+ {&(_ZTV7ee43552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee43552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee43552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee43552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee43552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee43552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43552[];
+extern VTBL_ENTRY _ZTV7ee43552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43552[];
+static VTBL_ENTRY alt_thunk_names1378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee435523barEv,_ZTv0_n16_N7ee435523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee435523barEv,_ZThn28_N7ee435523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee435523barEv,_ZThn20_N7ee435523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee435523barEv,_ZTv0_n20_N7ee435523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee435523barEv,_ZThn12_N7ee435523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43552 = { "ee43552", // class name
+ bases_ee43552, 4,
+ &(vtc_ee43552[0]), // expected_vtbl_contents
+ &(vtt_ee43552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53552 : virtual dd3552 {
+ int e;
+ virtual void bar(); // _ZN7ee535523barEv
+ ~ee53552(); // tgen
+ ee53552(); // tgen
+};
+//SIG(1 ee53552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53552 ::bar(){vfunc_called(this, "_ZN7ee535523barEv");}
+ee53552 ::~ee53552(){ note_dtor("ee53552", this);} // tgen
+ee53552 ::ee53552(){ note_ctor("ee53552", this);} // tgen
+
+static void Test_ee53552()
+{
+ extern Class_Descriptor cd_ee53552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53552, buf);
+ ee53552 *dp, &lv = *(dp=new (buf) ee53552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee53552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee53552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(32,16), "ee53552");
+ check_base_class_offset(lv, (dd3552*), ABISELECT(16,8), "ee53552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53552.e");
+ test_class_info(&lv, &cd_ee53552);
+ dp->~ee53552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53552(Test_ee53552, "ee53552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53552C1Ev();
+extern void _ZN7ee53552D1Ev();
+Name_Map name_map_ee53552[] = {
+ NSPAIR(_ZN7ee53552C1Ev),
+ NSPAIR(_ZN7ee53552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee53552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53552[];
+extern void _ZN7ee535523barEv();
+extern void _ZN6dd35523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee535523barEv,_ZTv0_n20_N7ee535523barEv)();
+extern void ABISELECT(_ZThn32_N7ee535523barEv,_ZThn16_N7ee535523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535523barEv,_ZTv0_n16_N7ee535523barEv)();
+extern void ABISELECT(_ZThn48_N7ee535523barEv,_ZThn24_N7ee535523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee535523barEv,_ZTv0_n16_N7ee535523barEv)();
+extern void ABISELECT(_ZThn64_N7ee535523barEv,_ZThn32_N7ee535523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53552[0]),
+ (VTBL_ENTRY)&_ZN7ee535523barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee535523barEv,_ZTv0_n20_N7ee535523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535523barEv,_ZTv0_n16_N7ee535523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee535523barEv,_ZTv0_n16_N7ee535523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee53552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee53552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee53552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee53552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee53552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee53552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee53552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee53552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee53552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53552[] = {
+ {&(_ZTV7ee53552[6]), 6,31},
+ {&(_ZTV7ee53552[13]), 13,31},
+ {&(_ZTV7ee53552[19]), 19,31},
+ {&(_ZTV7ee53552[24]), 24,31},
+ {&(_ZTV7ee53552[29]), 29,31},
+ {&(_tg__ZTV6dd3552__7ee53552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee53552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee53552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee53552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee53552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee53552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee53552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee53552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee53552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53552[];
+extern VTBL_ENTRY _ZTV7ee53552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53552[];
+static VTBL_ENTRY alt_thunk_names1379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee535523barEv,_ZTv0_n16_N7ee535523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee535523barEv,_ZThn32_N7ee535523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee535523barEv,_ZThn24_N7ee535523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee535523barEv,_ZTv0_n20_N7ee535523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee535523barEv,_ZThn16_N7ee535523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53552 = { "ee53552", // class name
+ bases_ee53552, 4,
+ &(vtc_ee53552[0]), // expected_vtbl_contents
+ &(vtt_ee53552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53552),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63552 : dd3552 {
+ int e;
+ virtual void foo(); // _ZN7ee635523fooEv
+ virtual void bar(); // _ZN7ee635523barEv
+ ~ee63552(); // tgen
+ ee63552(); // tgen
+};
+//SIG(1 ee63552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63552 ::foo(){vfunc_called(this, "_ZN7ee635523fooEv");}
+void ee63552 ::bar(){vfunc_called(this, "_ZN7ee635523barEv");}
+ee63552 ::~ee63552(){ note_dtor("ee63552", this);} // tgen
+ee63552 ::ee63552(){ note_ctor("ee63552", this);} // tgen
+
+static void Test_ee63552()
+{
+ extern Class_Descriptor cd_ee63552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63552, buf);
+ ee63552 *dp, &lv = *(dp=new (buf) ee63552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee63552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee63552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(16,12), "ee63552");
+ check_base_class_offset(lv, (dd3552*), 0, "ee63552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63552.e");
+ test_class_info(&lv, &cd_ee63552);
+ dp->~ee63552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63552(Test_ee63552, "ee63552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63552C1Ev();
+extern void _ZN7ee63552D1Ev();
+Name_Map name_map_ee63552[] = {
+ NSPAIR(_ZN7ee63552C1Ev),
+ NSPAIR(_ZN7ee63552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee63552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63552[];
+extern void _ZN7ee635523fooEv();
+extern void _ZN7ee635523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee635523barEv,_ZTv0_n20_N7ee635523barEv)();
+extern void ABISELECT(_ZThn16_N7ee635523barEv,_ZThn12_N7ee635523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635523barEv,_ZTv0_n16_N7ee635523barEv)();
+extern void ABISELECT(_ZThn32_N7ee635523barEv,_ZThn20_N7ee635523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee635523fooEv,_ZTv0_n12_N7ee635523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee635523fooEv,_ZThn28_N7ee635523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee635523barEv,_ZTv0_n16_N7ee635523barEv)();
+extern void ABISELECT(_ZThn48_N7ee635523barEv,_ZThn28_N7ee635523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63552[0]),
+ (VTBL_ENTRY)&_ZN7ee635523fooEv,
+ (VTBL_ENTRY)&_ZN7ee635523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee635523barEv,_ZTv0_n20_N7ee635523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635523barEv,_ZTv0_n16_N7ee635523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee635523fooEv,_ZTv0_n12_N7ee635523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee635523barEv,_ZTv0_n16_N7ee635523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee63552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee63552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee63552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee63552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee63552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee63552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee63552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee63552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee63552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63552[] = {
+ {&(_ZTV7ee63552[5]), 5,24},
+ {&(_tg__ZTV6dd3552__7ee63552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee63552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee63552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee63552[4]), 4,6},
+ {&(_ZTV7ee63552[12]), 12,24},
+ {&(_ZTV7ee63552[17]), 17,24},
+ {&(_ZTV7ee63552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee63552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee63552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee63552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee63552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee63552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63552[];
+extern VTBL_ENTRY _ZTV7ee63552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63552[];
+static VTBL_ENTRY alt_thunk_names1380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn28_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee635523fooEv,_ZTv0_n12_N7ee635523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee635523fooEv,_ZThn28_N7ee635523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee635523barEv,_ZTv0_n16_N7ee635523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee635523barEv,_ZThn28_N7ee635523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee635523barEv,_ZThn20_N7ee635523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee635523barEv,_ZTv0_n20_N7ee635523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee635523barEv,_ZThn12_N7ee635523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63552 = { "ee63552", // class name
+ bases_ee63552, 4,
+ &(vtc_ee63552[0]), // expected_vtbl_contents
+ &(vtt_ee63552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73552 : virtual dd3552 {
+ int e;
+ virtual void foo(); // _ZN7ee735523fooEv
+ virtual void bar(); // _ZN7ee735523barEv
+ ~ee73552(); // tgen
+ ee73552(); // tgen
+};
+//SIG(1 ee73552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73552 ::foo(){vfunc_called(this, "_ZN7ee735523fooEv");}
+void ee73552 ::bar(){vfunc_called(this, "_ZN7ee735523barEv");}
+ee73552 ::~ee73552(){ note_dtor("ee73552", this);} // tgen
+ee73552 ::ee73552(){ note_ctor("ee73552", this);} // tgen
+
+static void Test_ee73552()
+{
+ extern Class_Descriptor cd_ee73552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73552, buf);
+ ee73552 *dp, &lv = *(dp=new (buf) ee73552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee73552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee73552");
+ check_base_class_offset(lv, (cc552*)(dd3552*), ABISELECT(32,16), "ee73552");
+ check_base_class_offset(lv, (dd3552*), ABISELECT(16,8), "ee73552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73552.e");
+ test_class_info(&lv, &cd_ee73552);
+ dp->~ee73552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73552(Test_ee73552, "ee73552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73552C1Ev();
+extern void _ZN7ee73552D1Ev();
+Name_Map name_map_ee73552[] = {
+ NSPAIR(_ZN7ee73552C1Ev),
+ NSPAIR(_ZN7ee73552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd3552;
+extern VTBL_ENTRY _ZTI6dd3552[];
+extern VTBL_ENTRY _ZTV6dd3552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3552[];
+static Base_Class bases_ee73552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3552, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73552[];
+extern void _ZN7ee735523fooEv();
+extern void _ZN7ee735523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee735523fooEv,_ZTv0_n24_N7ee735523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee735523fooEv,_ZThn8_N7ee735523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee735523barEv,_ZTv0_n20_N7ee735523barEv)();
+extern void ABISELECT(_ZThn32_N7ee735523barEv,_ZThn16_N7ee735523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735523barEv,_ZTv0_n16_N7ee735523barEv)();
+extern void ABISELECT(_ZThn48_N7ee735523barEv,_ZThn24_N7ee735523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee735523fooEv,_ZTv0_n12_N7ee735523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee735523fooEv,_ZThn32_N7ee735523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee735523barEv,_ZTv0_n16_N7ee735523barEv)();
+extern void ABISELECT(_ZThn64_N7ee735523barEv,_ZThn32_N7ee735523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73552[0]),
+ (VTBL_ENTRY)&_ZN7ee735523fooEv,
+ (VTBL_ENTRY)&_ZN7ee735523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee735523fooEv,_ZTv0_n24_N7ee735523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee735523barEv,_ZTv0_n20_N7ee735523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735523barEv,_ZTv0_n16_N7ee735523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee735523fooEv,_ZTv0_n12_N7ee735523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee735523barEv,_ZTv0_n16_N7ee735523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73552[];
+extern void _ZN6dd35523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3552__7ee73552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN6dd35523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd3552__7ee73552[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3552__7ee73552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3552__7ee73552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee73552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee73552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee73552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee73552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee73552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73552[] = {
+ {&(_ZTV7ee73552[6]), 6,32},
+ {&(_ZTV7ee73552[14]), 14,32},
+ {&(_ZTV7ee73552[20]), 20,32},
+ {&(_ZTV7ee73552[25]), 25,32},
+ {&(_ZTV7ee73552[30]), 30,32},
+ {&(_tg__ZTV6dd3552__7ee73552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd3552__7ee73552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd3552__7ee73552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3552__7ee73552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee73552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee73552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee73552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee73552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee73552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73552[];
+extern VTBL_ENTRY _ZTV7ee73552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73552[];
+static VTBL_ENTRY alt_thunk_names1381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd35523fooEv,_ZTv0_n12_N6dd35523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd35523fooEv,_ZThn24_N6dd35523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee735523fooEv,_ZTv0_n12_N7ee735523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee735523fooEv,_ZThn32_N7ee735523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee735523barEv,_ZTv0_n16_N7ee735523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee735523barEv,_ZThn32_N7ee735523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee735523barEv,_ZThn24_N7ee735523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee735523barEv,_ZTv0_n20_N7ee735523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee735523barEv,_ZThn16_N7ee735523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee735523fooEv,_ZTv0_n24_N7ee735523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee735523fooEv,_ZThn8_N7ee735523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73552 = { "ee73552", // class name
+ bases_ee73552, 4,
+ &(vtc_ee73552[0]), // expected_vtbl_contents
+ &(vtt_ee73552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73552),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4552 : cc552 {
+ int d;
+ virtual void bar(); // _ZN6dd45523barEv
+ ~dd4552(); // tgen
+ dd4552(); // tgen
+};
+//SIG(-1 dd4552) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd4552 ::bar(){vfunc_called(this, "_ZN6dd45523barEv");}
+dd4552 ::~dd4552(){ note_dtor("dd4552", this);} // tgen
+dd4552 ::dd4552(){ note_ctor("dd4552", this);} // tgen
+
+static void Test_dd4552()
+{
+ extern Class_Descriptor cd_dd4552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4552, buf);
+ dd4552 *dp, &lv = *(dp=new (buf) dd4552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd4552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(16,12), "dd4552");
+ check_base_class_offset(lv, (cc552*), 0, "dd4552");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4552.d");
+ test_class_info(&lv, &cd_dd4552);
+ dp->~dd4552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4552(Test_dd4552, "dd4552", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4552C1Ev();
+extern void _ZN6dd4552D1Ev();
+Name_Map name_map_dd4552[] = {
+ NSPAIR(_ZN6dd4552C1Ev),
+ NSPAIR(_ZN6dd4552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd4552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 5, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern void _ZN6dd45523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd4552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd4552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd4552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd4552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4552[] = {
+ {&(_ZTV6dd4552[4]), 4,16},
+ {&(_tg__ZTV5cc552__6dd4552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd4552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd4552[4]), 4,6},
+ {&(_ZTV6dd4552[9]), 9,16},
+ {&(_ZTV6dd4552[14]), 14,16},
+ {&(_tg__ZTV4bb52__6dd4552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd4552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static VTBL_ENTRY alt_thunk_names1382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4552 = { "dd4552", // class name
+ bases_dd4552, 3,
+ &(vtc_dd4552[0]), // expected_vtbl_contents
+ &(vtt_dd4552[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4552),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04552 : dd4552 {
+ int e;
+ ~ee04552(); // tgen
+ ee04552(); // tgen
+};
+//SIG(1 ee04552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee04552 ::~ee04552(){ note_dtor("ee04552", this);} // tgen
+ee04552 ::ee04552(){ note_ctor("ee04552", this);} // tgen
+
+static void Test_ee04552()
+{
+ extern Class_Descriptor cd_ee04552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04552, buf);
+ ee04552 *dp, &lv = *(dp=new (buf) ee04552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee04552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(24,16), "ee04552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), 0, "ee04552");
+ check_base_class_offset(lv, (dd4552*), 0, "ee04552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04552.e");
+ test_class_info(&lv, &cd_ee04552);
+ dp->~ee04552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04552(Test_ee04552, "ee04552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04552C1Ev();
+extern void _ZN7ee04552D1Ev();
+Name_Map name_map_ee04552[] = {
+ NSPAIR(_ZN7ee04552C1Ev),
+ NSPAIR(_ZN7ee04552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee04552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04552[];
+extern void _ZN6dd45523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee04552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee04552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee04552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee04552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee04552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee04552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee04552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee04552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee04552[] = {
+ {&(_ZTV7ee04552[4]), 4,16},
+ {&(_tg__ZTV6dd4552__7ee04552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee04552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee04552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee04552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee04552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee04552[4]), 4,6},
+ {&(_ZTV7ee04552[9]), 9,16},
+ {&(_ZTV7ee04552[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee04552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee04552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee04552[];
+extern VTBL_ENTRY _ZTV7ee04552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04552[];
+static VTBL_ENTRY alt_thunk_names1383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04552 = { "ee04552", // class name
+ bases_ee04552, 4,
+ &(vtc_ee04552[0]), // expected_vtbl_contents
+ &(vtt_ee04552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14552 : virtual dd4552 {
+ int e;
+ ~ee14552(); // tgen
+ ee14552(); // tgen
+};
+//SIG(1 ee14552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee14552 ::~ee14552(){ note_dtor("ee14552", this);} // tgen
+ee14552 ::ee14552(){ note_ctor("ee14552", this);} // tgen
+
+static void Test_ee14552()
+{
+ extern Class_Descriptor cd_ee14552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14552, buf);
+ ee14552 *dp, &lv = *(dp=new (buf) ee14552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee14552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(32,20), "ee14552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), ABISELECT(16,8), "ee14552");
+ check_base_class_offset(lv, (dd4552*), ABISELECT(16,8), "ee14552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14552.e");
+ test_class_info(&lv, &cd_ee14552);
+ dp->~ee14552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14552(Test_ee14552, "ee14552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14552C1Ev();
+extern void _ZN7ee14552D1Ev();
+Name_Map name_map_ee14552[] = {
+ NSPAIR(_ZN7ee14552C1Ev),
+ NSPAIR(_ZN7ee14552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee14552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14552[];
+extern void _ZN6dd45523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14552[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee14552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee14552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee14552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee14552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee14552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee14552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee14552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee14552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee14552[] = {
+ {&(_ZTV7ee14552[5]), 5,22},
+ {&(_ZTV7ee14552[10]), 10,22},
+ {&(_ZTV7ee14552[15]), 15,22},
+ {&(_ZTV7ee14552[20]), 20,22},
+ {&(_tg__ZTV6dd4552__7ee14552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee14552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee14552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee14552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee14552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee14552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee14552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee14552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14552[];
+extern VTBL_ENTRY _ZTV7ee14552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14552[];
+static VTBL_ENTRY alt_thunk_names1384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14552 = { "ee14552", // class name
+ bases_ee14552, 4,
+ &(vtc_ee14552[0]), // expected_vtbl_contents
+ &(vtt_ee14552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14552),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24552 : dd4552 {
+ int e;
+ virtual void foo(); // _ZN7ee245523fooEv
+ ~ee24552(); // tgen
+ ee24552(); // tgen
+};
+//SIG(1 ee24552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24552 ::foo(){vfunc_called(this, "_ZN7ee245523fooEv");}
+ee24552 ::~ee24552(){ note_dtor("ee24552", this);} // tgen
+ee24552 ::ee24552(){ note_ctor("ee24552", this);} // tgen
+
+static void Test_ee24552()
+{
+ extern Class_Descriptor cd_ee24552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24552, buf);
+ ee24552 *dp, &lv = *(dp=new (buf) ee24552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee24552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(24,16), "ee24552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), 0, "ee24552");
+ check_base_class_offset(lv, (dd4552*), 0, "ee24552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24552.e");
+ test_class_info(&lv, &cd_ee24552);
+ dp->~ee24552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24552(Test_ee24552, "ee24552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24552C1Ev();
+extern void _ZN7ee24552D1Ev();
+Name_Map name_map_ee24552[] = {
+ NSPAIR(_ZN7ee24552C1Ev),
+ NSPAIR(_ZN7ee24552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee24552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24552[];
+extern void _ZN6dd45523barEv();
+extern void _ZN7ee245523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee245523fooEv,_ZTv0_n12_N7ee245523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee245523fooEv,_ZThn24_N7ee245523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+ (VTBL_ENTRY)&_ZN7ee245523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee245523fooEv,_ZTv0_n12_N7ee245523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee24552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee24552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee24552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee24552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee24552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee24552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee24552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee24552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee24552[] = {
+ {&(_ZTV7ee24552[4]), 4,17},
+ {&(_tg__ZTV6dd4552__7ee24552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee24552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee24552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee24552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee24552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee24552[4]), 4,6},
+ {&(_ZTV7ee24552[10]), 10,17},
+ {&(_ZTV7ee24552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee24552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee24552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee24552[];
+extern VTBL_ENTRY _ZTV7ee24552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24552[];
+static VTBL_ENTRY alt_thunk_names1385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee245523fooEv,_ZTv0_n12_N7ee245523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee245523fooEv,_ZThn24_N7ee245523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24552 = { "ee24552", // class name
+ bases_ee24552, 4,
+ &(vtc_ee24552[0]), // expected_vtbl_contents
+ &(vtt_ee24552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34552 : virtual dd4552 {
+ int e;
+ virtual void foo(); // _ZN7ee345523fooEv
+ ~ee34552(); // tgen
+ ee34552(); // tgen
+};
+//SIG(1 ee34552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34552 ::foo(){vfunc_called(this, "_ZN7ee345523fooEv");}
+ee34552 ::~ee34552(){ note_dtor("ee34552", this);} // tgen
+ee34552 ::ee34552(){ note_ctor("ee34552", this);} // tgen
+
+static void Test_ee34552()
+{
+ extern Class_Descriptor cd_ee34552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34552, buf);
+ ee34552 *dp, &lv = *(dp=new (buf) ee34552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee34552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(32,20), "ee34552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), ABISELECT(16,8), "ee34552");
+ check_base_class_offset(lv, (dd4552*), ABISELECT(16,8), "ee34552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34552.e");
+ test_class_info(&lv, &cd_ee34552);
+ dp->~ee34552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34552(Test_ee34552, "ee34552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34552C1Ev();
+extern void _ZN7ee34552D1Ev();
+Name_Map name_map_ee34552[] = {
+ NSPAIR(_ZN7ee34552C1Ev),
+ NSPAIR(_ZN7ee34552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee34552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34552[];
+extern void _ZN7ee345523fooEv();
+extern void _ZN6dd45523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee345523fooEv,_ZTv0_n12_N7ee345523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee345523fooEv,_ZThn28_N7ee345523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34552[0]),
+ (VTBL_ENTRY)&_ZN7ee345523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee345523fooEv,_ZTv0_n12_N7ee345523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee34552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee34552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee34552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee34552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee34552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee34552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee34552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee34552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee34552[] = {
+ {&(_ZTV7ee34552[5]), 5,23},
+ {&(_ZTV7ee34552[11]), 11,23},
+ {&(_ZTV7ee34552[16]), 16,23},
+ {&(_ZTV7ee34552[21]), 21,23},
+ {&(_tg__ZTV6dd4552__7ee34552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee34552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee34552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee34552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee34552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee34552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee34552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee34552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34552[];
+extern VTBL_ENTRY _ZTV7ee34552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34552[];
+static VTBL_ENTRY alt_thunk_names1386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee345523fooEv,_ZTv0_n12_N7ee345523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee345523fooEv,_ZThn28_N7ee345523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34552 = { "ee34552", // class name
+ bases_ee34552, 4,
+ &(vtc_ee34552[0]), // expected_vtbl_contents
+ &(vtt_ee34552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1386,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44552 : dd4552 {
+ int e;
+ virtual void bar(); // _ZN7ee445523barEv
+ ~ee44552(); // tgen
+ ee44552(); // tgen
+};
+//SIG(1 ee44552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44552 ::bar(){vfunc_called(this, "_ZN7ee445523barEv");}
+ee44552 ::~ee44552(){ note_dtor("ee44552", this);} // tgen
+ee44552 ::ee44552(){ note_ctor("ee44552", this);} // tgen
+
+static void Test_ee44552()
+{
+ extern Class_Descriptor cd_ee44552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44552, buf);
+ ee44552 *dp, &lv = *(dp=new (buf) ee44552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee44552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(24,16), "ee44552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), 0, "ee44552");
+ check_base_class_offset(lv, (dd4552*), 0, "ee44552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44552.e");
+ test_class_info(&lv, &cd_ee44552);
+ dp->~ee44552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44552(Test_ee44552, "ee44552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44552C1Ev();
+extern void _ZN7ee44552D1Ev();
+Name_Map name_map_ee44552[] = {
+ NSPAIR(_ZN7ee44552C1Ev),
+ NSPAIR(_ZN7ee44552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee44552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44552[];
+extern void _ZN7ee445523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445523barEv,_ZTv0_n16_N7ee445523barEv)();
+extern void ABISELECT(_ZThn24_N7ee445523barEv,_ZThn16_N7ee445523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee445523barEv,_ZTv0_n16_N7ee445523barEv)();
+extern void ABISELECT(_ZThn40_N7ee445523barEv,_ZThn24_N7ee445523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44552[0]),
+ (VTBL_ENTRY)&_ZN7ee445523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445523barEv,_ZTv0_n16_N7ee445523barEv),
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee445523barEv,_ZTv0_n16_N7ee445523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee44552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee44552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee44552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee44552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee44552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee44552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee44552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee44552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee44552[] = {
+ {&(_ZTV7ee44552[4]), 4,16},
+ {&(_tg__ZTV6dd4552__7ee44552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee44552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee44552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee44552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee44552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee44552[4]), 4,6},
+ {&(_ZTV7ee44552[9]), 9,16},
+ {&(_ZTV7ee44552[14]), 14,16},
+ {&(_tg__ZTV4bb52__7ee44552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee44552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee44552[];
+extern VTBL_ENTRY _ZTV7ee44552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44552[];
+static VTBL_ENTRY alt_thunk_names1387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee445523barEv,_ZTv0_n16_N7ee445523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee445523barEv,_ZThn24_N7ee445523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee445523barEv,_ZThn16_N7ee445523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44552 = { "ee44552", // class name
+ bases_ee44552, 4,
+ &(vtc_ee44552[0]), // expected_vtbl_contents
+ &(vtt_ee44552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44552),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54552 : virtual dd4552 {
+ int e;
+ virtual void bar(); // _ZN7ee545523barEv
+ ~ee54552(); // tgen
+ ee54552(); // tgen
+};
+//SIG(1 ee54552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54552 ::bar(){vfunc_called(this, "_ZN7ee545523barEv");}
+ee54552 ::~ee54552(){ note_dtor("ee54552", this);} // tgen
+ee54552 ::ee54552(){ note_ctor("ee54552", this);} // tgen
+
+static void Test_ee54552()
+{
+ extern Class_Descriptor cd_ee54552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54552, buf);
+ ee54552 *dp, &lv = *(dp=new (buf) ee54552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee54552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(32,20), "ee54552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), ABISELECT(16,8), "ee54552");
+ check_base_class_offset(lv, (dd4552*), ABISELECT(16,8), "ee54552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54552.e");
+ test_class_info(&lv, &cd_ee54552);
+ dp->~ee54552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54552(Test_ee54552, "ee54552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54552C1Ev();
+extern void _ZN7ee54552D1Ev();
+Name_Map name_map_ee54552[] = {
+ NSPAIR(_ZN7ee54552C1Ev),
+ NSPAIR(_ZN7ee54552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee54552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54552[];
+extern void _ZN7ee545523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee545523barEv,_ZTv0_n20_N7ee545523barEv)();
+extern void ABISELECT(_ZThn16_N7ee545523barEv,_ZThn8_N7ee545523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee545523barEv,_ZTv0_n16_N7ee545523barEv)();
+extern void ABISELECT(_ZThn32_N7ee545523barEv,_ZThn20_N7ee545523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee545523barEv,_ZTv0_n16_N7ee545523barEv)();
+extern void ABISELECT(_ZThn48_N7ee545523barEv,_ZThn28_N7ee545523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54552[0]),
+ (VTBL_ENTRY)&_ZN7ee545523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee545523barEv,_ZTv0_n20_N7ee545523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545523barEv,_ZTv0_n16_N7ee545523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee545523barEv,_ZTv0_n16_N7ee545523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee54552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee54552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee54552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee54552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee54552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee54552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee54552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee54552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee54552[] = {
+ {&(_ZTV7ee54552[5]), 5,23},
+ {&(_ZTV7ee54552[11]), 11,23},
+ {&(_ZTV7ee54552[16]), 16,23},
+ {&(_ZTV7ee54552[21]), 21,23},
+ {&(_tg__ZTV6dd4552__7ee54552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee54552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee54552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee54552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee54552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee54552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee54552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee54552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54552[];
+extern VTBL_ENTRY _ZTV7ee54552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54552[];
+static VTBL_ENTRY alt_thunk_names1388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee545523barEv,_ZTv0_n16_N7ee545523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee545523barEv,_ZThn28_N7ee545523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee545523barEv,_ZThn20_N7ee545523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee545523barEv,_ZTv0_n20_N7ee545523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee545523barEv,_ZThn8_N7ee545523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54552 = { "ee54552", // class name
+ bases_ee54552, 4,
+ &(vtc_ee54552[0]), // expected_vtbl_contents
+ &(vtt_ee54552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64552 : dd4552 {
+ int e;
+ virtual void foo(); // _ZN7ee645523fooEv
+ virtual void bar(); // _ZN7ee645523barEv
+ ~ee64552(); // tgen
+ ee64552(); // tgen
+};
+//SIG(1 ee64552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64552 ::foo(){vfunc_called(this, "_ZN7ee645523fooEv");}
+void ee64552 ::bar(){vfunc_called(this, "_ZN7ee645523barEv");}
+ee64552 ::~ee64552(){ note_dtor("ee64552", this);} // tgen
+ee64552 ::ee64552(){ note_ctor("ee64552", this);} // tgen
+
+static void Test_ee64552()
+{
+ extern Class_Descriptor cd_ee64552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64552, buf);
+ ee64552 *dp, &lv = *(dp=new (buf) ee64552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee64552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(24,16), "ee64552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), 0, "ee64552");
+ check_base_class_offset(lv, (dd4552*), 0, "ee64552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64552.e");
+ test_class_info(&lv, &cd_ee64552);
+ dp->~ee64552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64552(Test_ee64552, "ee64552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64552C1Ev();
+extern void _ZN7ee64552D1Ev();
+Name_Map name_map_ee64552[] = {
+ NSPAIR(_ZN7ee64552C1Ev),
+ NSPAIR(_ZN7ee64552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee64552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64552[];
+extern void _ZN7ee645523barEv();
+extern void _ZN7ee645523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee645523barEv,_ZTv0_n16_N7ee645523barEv)();
+extern void ABISELECT(_ZThn24_N7ee645523barEv,_ZThn16_N7ee645523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee645523fooEv,_ZTv0_n12_N7ee645523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee645523fooEv,_ZThn24_N7ee645523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee645523barEv,_ZTv0_n16_N7ee645523barEv)();
+extern void ABISELECT(_ZThn40_N7ee645523barEv,_ZThn24_N7ee645523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64552[0]),
+ (VTBL_ENTRY)&_ZN7ee645523barEv,
+ (VTBL_ENTRY)&_ZN7ee645523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645523barEv,_ZTv0_n16_N7ee645523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee645523fooEv,_ZTv0_n12_N7ee645523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee645523barEv,_ZTv0_n16_N7ee645523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee64552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee64552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee64552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee64552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee64552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee64552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee64552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee64552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee64552[] = {
+ {&(_ZTV7ee64552[4]), 4,17},
+ {&(_tg__ZTV6dd4552__7ee64552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee64552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee64552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee64552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee64552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee64552[4]), 4,6},
+ {&(_ZTV7ee64552[10]), 10,17},
+ {&(_ZTV7ee64552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee64552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee64552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee64552[];
+extern VTBL_ENTRY _ZTV7ee64552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64552[];
+static VTBL_ENTRY alt_thunk_names1389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd45523barEv,_ZThn24_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd45523barEv,_ZThn16_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee645523fooEv,_ZTv0_n12_N7ee645523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee645523fooEv,_ZThn24_N7ee645523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee645523barEv,_ZTv0_n16_N7ee645523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee645523barEv,_ZThn24_N7ee645523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee645523barEv,_ZThn16_N7ee645523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64552 = { "ee64552", // class name
+ bases_ee64552, 4,
+ &(vtc_ee64552[0]), // expected_vtbl_contents
+ &(vtt_ee64552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74552 : virtual dd4552 {
+ int e;
+ virtual void foo(); // _ZN7ee745523fooEv
+ virtual void bar(); // _ZN7ee745523barEv
+ ~ee74552(); // tgen
+ ee74552(); // tgen
+};
+//SIG(1 ee74552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74552 ::foo(){vfunc_called(this, "_ZN7ee745523fooEv");}
+void ee74552 ::bar(){vfunc_called(this, "_ZN7ee745523barEv");}
+ee74552 ::~ee74552(){ note_dtor("ee74552", this);} // tgen
+ee74552 ::ee74552(){ note_ctor("ee74552", this);} // tgen
+
+static void Test_ee74552()
+{
+ extern Class_Descriptor cd_ee74552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74552, buf);
+ ee74552 *dp, &lv = *(dp=new (buf) ee74552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee74552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd4552*), ABISELECT(32,20), "ee74552");
+ check_base_class_offset(lv, (cc552*)(dd4552*), ABISELECT(16,8), "ee74552");
+ check_base_class_offset(lv, (dd4552*), ABISELECT(16,8), "ee74552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74552.e");
+ test_class_info(&lv, &cd_ee74552);
+ dp->~ee74552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74552(Test_ee74552, "ee74552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74552C1Ev();
+extern void _ZN7ee74552D1Ev();
+Name_Map name_map_ee74552[] = {
+ NSPAIR(_ZN7ee74552C1Ev),
+ NSPAIR(_ZN7ee74552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd4552;
+extern VTBL_ENTRY _ZTI6dd4552[];
+extern VTBL_ENTRY _ZTV6dd4552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4552[];
+static Base_Class bases_ee74552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4552, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74552[];
+extern void _ZN7ee745523fooEv();
+extern void _ZN7ee745523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee745523barEv,_ZTv0_n20_N7ee745523barEv)();
+extern void ABISELECT(_ZThn16_N7ee745523barEv,_ZThn8_N7ee745523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745523barEv,_ZTv0_n16_N7ee745523barEv)();
+extern void ABISELECT(_ZThn32_N7ee745523barEv,_ZThn20_N7ee745523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee745523fooEv,_ZTv0_n12_N7ee745523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee745523fooEv,_ZThn28_N7ee745523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee745523barEv,_ZTv0_n16_N7ee745523barEv)();
+extern void ABISELECT(_ZThn48_N7ee745523barEv,_ZThn28_N7ee745523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74552[0]),
+ (VTBL_ENTRY)&_ZN7ee745523fooEv,
+ (VTBL_ENTRY)&_ZN7ee745523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee745523barEv,_ZTv0_n20_N7ee745523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745523barEv,_ZTv0_n16_N7ee745523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee745523fooEv,_ZTv0_n12_N7ee745523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee745523barEv,_ZTv0_n16_N7ee745523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74552[];
+extern void _ZN6dd45523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4552__7ee74552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN6dd45523barEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd4552__7ee74552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd4552__7ee74552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd4552__7ee74552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4552__7ee74552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv)();
+extern void ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4552__7ee74552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee74552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee74552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee74552[] = {
+ {&(_ZTV7ee74552[5]), 5,24},
+ {&(_ZTV7ee74552[12]), 12,24},
+ {&(_ZTV7ee74552[17]), 17,24},
+ {&(_ZTV7ee74552[22]), 22,24},
+ {&(_tg__ZTV6dd4552__7ee74552[4]), 4,5},
+ {&(_tg__ZTV5cc5526dd4552__7ee74552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd4552__7ee74552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd4552__7ee74552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4552__7ee74552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4552__7ee74552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee74552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee74552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74552[];
+extern VTBL_ENTRY _ZTV7ee74552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74552[];
+static VTBL_ENTRY alt_thunk_names1390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd45523barEv,_ZTv0_n16_N6dd45523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd45523barEv,_ZThn20_N6dd45523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd45523barEv,_ZThn12_N6dd45523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee745523fooEv,_ZTv0_n12_N7ee745523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee745523fooEv,_ZThn28_N7ee745523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee745523barEv,_ZTv0_n16_N7ee745523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee745523barEv,_ZThn28_N7ee745523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee745523barEv,_ZThn20_N7ee745523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee745523barEv,_ZTv0_n20_N7ee745523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee745523barEv,_ZThn8_N7ee745523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74552 = { "ee74552", // class name
+ bases_ee74552, 4,
+ &(vtc_ee74552[0]), // expected_vtbl_contents
+ &(vtt_ee74552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5552 : virtual cc552 {
+ int d;
+ virtual void bar(); // _ZN6dd55523barEv
+ ~dd5552(); // tgen
+ dd5552(); // tgen
+};
+//SIG(-1 dd5552) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void dd5552 ::bar(){vfunc_called(this, "_ZN6dd55523barEv");}
+dd5552 ::~dd5552(){ note_dtor("dd5552", this);} // tgen
+dd5552 ::dd5552(){ note_ctor("dd5552", this);} // tgen
+
+static void Test_dd5552()
+{
+ extern Class_Descriptor cd_dd5552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5552, buf);
+ dd5552 *dp, &lv = *(dp=new (buf) dd5552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd5552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,16), "dd5552");
+ check_base_class_offset(lv, (cc552*), ABISELECT(16,8), "dd5552");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5552.d");
+ test_class_info(&lv, &cd_dd5552);
+ dp->~dd5552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5552(Test_dd5552, "dd5552", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5552C1Ev();
+extern void _ZN6dd5552D1Ev();
+Name_Map name_map_dd5552[] = {
+ NSPAIR(_ZN6dd5552C1Ev),
+ NSPAIR(_ZN6dd5552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd5552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ 6, //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 _ZTI6dd5552[];
+extern void _ZN6dd55523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd5552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd5552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd5552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5552[] = {
+ {&(_ZTV6dd5552[5]), 5,23},
+ {&(_ZTV6dd5552[11]), 11,23},
+ {&(_ZTV6dd5552[16]), 16,23},
+ {&(_ZTV6dd5552[21]), 21,23},
+ {&(_tg__ZTV5cc552__6dd5552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd5552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd5552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd5552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd5552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static VTBL_ENTRY alt_thunk_names1391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5552 = { "dd5552", // class name
+ bases_dd5552, 3,
+ &(vtc_dd5552[0]), // expected_vtbl_contents
+ &(vtt_dd5552[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5552),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05552 : dd5552 {
+ int e;
+ ~ee05552(); // tgen
+ ee05552(); // tgen
+};
+//SIG(1 ee05552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee05552 ::~ee05552(){ note_dtor("ee05552", this);} // tgen
+ee05552 ::ee05552(){ note_ctor("ee05552", this);} // tgen
+
+static void Test_ee05552()
+{
+ extern Class_Descriptor cd_ee05552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05552, buf);
+ ee05552 *dp, &lv = *(dp=new (buf) ee05552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee05552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee05552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(16,12), "ee05552");
+ check_base_class_offset(lv, (dd5552*), 0, "ee05552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05552.e");
+ test_class_info(&lv, &cd_ee05552);
+ dp->~ee05552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05552(Test_ee05552, "ee05552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05552C1Ev();
+extern void _ZN7ee05552D1Ev();
+Name_Map name_map_ee05552[] = {
+ NSPAIR(_ZN7ee05552C1Ev),
+ NSPAIR(_ZN7ee05552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee05552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05552[];
+extern void _ZN6dd55523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee05552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee05552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee05552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee05552[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee05552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee05552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee05552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee05552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee05552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05552[] = {
+ {&(_ZTV7ee05552[5]), 5,23},
+ {&(_tg__ZTV6dd5552__7ee05552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee05552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee05552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee05552[4]), 4,6},
+ {&(_ZTV7ee05552[11]), 11,23},
+ {&(_ZTV7ee05552[16]), 16,23},
+ {&(_ZTV7ee05552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee05552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee05552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee05552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee05552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee05552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05552[];
+extern VTBL_ENTRY _ZTV7ee05552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05552[];
+static VTBL_ENTRY alt_thunk_names1392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05552 = { "ee05552", // class name
+ bases_ee05552, 4,
+ &(vtc_ee05552[0]), // expected_vtbl_contents
+ &(vtt_ee05552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15552 : virtual dd5552 {
+ int e;
+ ~ee15552(); // tgen
+ ee15552(); // tgen
+};
+//SIG(1 ee15552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} Fi}
+
+
+ee15552 ::~ee15552(){ note_dtor("ee15552", this);} // tgen
+ee15552 ::ee15552(){ note_ctor("ee15552", this);} // tgen
+
+static void Test_ee15552()
+{
+ extern Class_Descriptor cd_ee15552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15552, buf);
+ ee15552 *dp, &lv = *(dp=new (buf) ee15552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee15552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee15552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(32,16), "ee15552");
+ check_base_class_offset(lv, (dd5552*), ABISELECT(16,8), "ee15552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15552.e");
+ test_class_info(&lv, &cd_ee15552);
+ dp->~ee15552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15552(Test_ee15552, "ee15552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15552C1Ev();
+extern void _ZN7ee15552D1Ev();
+Name_Map name_map_ee15552[] = {
+ NSPAIR(_ZN7ee15552C1Ev),
+ NSPAIR(_ZN7ee15552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee15552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15552[];
+extern void _ZN6dd55523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15552[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee15552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee15552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee15552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee15552[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee15552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee15552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee15552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee15552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee15552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15552[] = {
+ {&(_ZTV7ee15552[6]), 6,30},
+ {&(_ZTV7ee15552[12]), 12,30},
+ {&(_ZTV7ee15552[18]), 18,30},
+ {&(_ZTV7ee15552[23]), 23,30},
+ {&(_ZTV7ee15552[28]), 28,30},
+ {&(_tg__ZTV6dd5552__7ee15552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee15552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee15552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee15552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee15552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee15552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee15552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee15552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee15552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15552[];
+extern VTBL_ENTRY _ZTV7ee15552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15552[];
+static VTBL_ENTRY alt_thunk_names1393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15552 = { "ee15552", // class name
+ bases_ee15552, 4,
+ &(vtc_ee15552[0]), // expected_vtbl_contents
+ &(vtt_ee15552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15552),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25552 : dd5552 {
+ int e;
+ virtual void foo(); // _ZN7ee255523fooEv
+ ~ee25552(); // tgen
+ ee25552(); // tgen
+};
+//SIG(1 ee25552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25552 ::foo(){vfunc_called(this, "_ZN7ee255523fooEv");}
+ee25552 ::~ee25552(){ note_dtor("ee25552", this);} // tgen
+ee25552 ::ee25552(){ note_ctor("ee25552", this);} // tgen
+
+static void Test_ee25552()
+{
+ extern Class_Descriptor cd_ee25552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25552, buf);
+ ee25552 *dp, &lv = *(dp=new (buf) ee25552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee25552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee25552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(16,12), "ee25552");
+ check_base_class_offset(lv, (dd5552*), 0, "ee25552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25552.e");
+ test_class_info(&lv, &cd_ee25552);
+ dp->~ee25552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25552(Test_ee25552, "ee25552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25552C1Ev();
+extern void _ZN7ee25552D1Ev();
+Name_Map name_map_ee25552[] = {
+ NSPAIR(_ZN7ee25552C1Ev),
+ NSPAIR(_ZN7ee25552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee25552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25552[];
+extern void _ZN6dd55523barEv();
+extern void _ZN7ee255523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee255523fooEv,_ZTv0_n12_N7ee255523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee255523fooEv,_ZThn28_N7ee255523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+ (VTBL_ENTRY)&_ZN7ee255523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee255523fooEv,_ZTv0_n12_N7ee255523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee25552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee25552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee25552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee25552[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee25552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee25552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee25552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee25552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee25552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25552[] = {
+ {&(_ZTV7ee25552[5]), 5,24},
+ {&(_tg__ZTV6dd5552__7ee25552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee25552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee25552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee25552[4]), 4,6},
+ {&(_ZTV7ee25552[12]), 12,24},
+ {&(_ZTV7ee25552[17]), 17,24},
+ {&(_ZTV7ee25552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee25552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee25552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee25552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee25552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee25552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25552[];
+extern VTBL_ENTRY _ZTV7ee25552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25552[];
+static VTBL_ENTRY alt_thunk_names1394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee255523fooEv,_ZTv0_n12_N7ee255523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee255523fooEv,_ZThn28_N7ee255523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25552 = { "ee25552", // class name
+ bases_ee25552, 4,
+ &(vtc_ee25552[0]), // expected_vtbl_contents
+ &(vtt_ee25552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35552 : virtual dd5552 {
+ int e;
+ virtual void foo(); // _ZN7ee355523fooEv
+ ~ee35552(); // tgen
+ ee35552(); // tgen
+};
+//SIG(1 ee35552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35552 ::foo(){vfunc_called(this, "_ZN7ee355523fooEv");}
+ee35552 ::~ee35552(){ note_dtor("ee35552", this);} // tgen
+ee35552 ::ee35552(){ note_ctor("ee35552", this);} // tgen
+
+static void Test_ee35552()
+{
+ extern Class_Descriptor cd_ee35552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35552, buf);
+ ee35552 *dp, &lv = *(dp=new (buf) ee35552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee35552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee35552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(32,16), "ee35552");
+ check_base_class_offset(lv, (dd5552*), ABISELECT(16,8), "ee35552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35552.e");
+ test_class_info(&lv, &cd_ee35552);
+ dp->~ee35552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35552(Test_ee35552, "ee35552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35552C1Ev();
+extern void _ZN7ee35552D1Ev();
+Name_Map name_map_ee35552[] = {
+ NSPAIR(_ZN7ee35552C1Ev),
+ NSPAIR(_ZN7ee35552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee35552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35552[];
+extern void _ZN7ee355523fooEv();
+extern void _ZN6dd55523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee355523fooEv,_ZTv0_n12_N7ee355523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee355523fooEv,_ZThn32_N7ee355523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35552[0]),
+ (VTBL_ENTRY)&_ZN7ee355523fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee355523fooEv,_ZTv0_n12_N7ee355523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee35552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee35552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee35552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee35552[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee35552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee35552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee35552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee35552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee35552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35552[] = {
+ {&(_ZTV7ee35552[6]), 6,31},
+ {&(_ZTV7ee35552[13]), 13,31},
+ {&(_ZTV7ee35552[19]), 19,31},
+ {&(_ZTV7ee35552[24]), 24,31},
+ {&(_ZTV7ee35552[29]), 29,31},
+ {&(_tg__ZTV6dd5552__7ee35552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee35552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee35552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee35552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee35552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee35552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee35552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee35552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee35552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35552[];
+extern VTBL_ENTRY _ZTV7ee35552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35552[];
+static VTBL_ENTRY alt_thunk_names1395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee355523fooEv,_ZTv0_n12_N7ee355523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee355523fooEv,_ZThn32_N7ee355523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35552 = { "ee35552", // class name
+ bases_ee35552, 4,
+ &(vtc_ee35552[0]), // expected_vtbl_contents
+ &(vtt_ee35552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35552),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1395,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45552 : dd5552 {
+ int e;
+ virtual void bar(); // _ZN7ee455523barEv
+ ~ee45552(); // tgen
+ ee45552(); // tgen
+};
+//SIG(1 ee45552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45552 ::bar(){vfunc_called(this, "_ZN7ee455523barEv");}
+ee45552 ::~ee45552(){ note_dtor("ee45552", this);} // tgen
+ee45552 ::ee45552(){ note_ctor("ee45552", this);} // tgen
+
+static void Test_ee45552()
+{
+ extern Class_Descriptor cd_ee45552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45552, buf);
+ ee45552 *dp, &lv = *(dp=new (buf) ee45552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee45552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee45552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(16,12), "ee45552");
+ check_base_class_offset(lv, (dd5552*), 0, "ee45552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45552.e");
+ test_class_info(&lv, &cd_ee45552);
+ dp->~ee45552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45552(Test_ee45552, "ee45552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45552C1Ev();
+extern void _ZN7ee45552D1Ev();
+Name_Map name_map_ee45552[] = {
+ NSPAIR(_ZN7ee45552C1Ev),
+ NSPAIR(_ZN7ee45552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee45552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45552[];
+extern void _ZN7ee455523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee455523barEv,_ZTv0_n20_N7ee455523barEv)();
+extern void ABISELECT(_ZThn16_N7ee455523barEv,_ZThn12_N7ee455523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee455523barEv,_ZTv0_n16_N7ee455523barEv)();
+extern void ABISELECT(_ZThn32_N7ee455523barEv,_ZThn20_N7ee455523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee455523barEv,_ZTv0_n16_N7ee455523barEv)();
+extern void ABISELECT(_ZThn48_N7ee455523barEv,_ZThn28_N7ee455523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45552[0]),
+ (VTBL_ENTRY)&_ZN7ee455523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee455523barEv,_ZTv0_n20_N7ee455523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455523barEv,_ZTv0_n16_N7ee455523barEv),
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee455523barEv,_ZTv0_n16_N7ee455523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee45552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee45552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee45552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee45552[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee45552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee45552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee45552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee45552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee45552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45552[] = {
+ {&(_ZTV7ee45552[5]), 5,23},
+ {&(_tg__ZTV6dd5552__7ee45552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee45552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee45552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee45552[4]), 4,6},
+ {&(_ZTV7ee45552[11]), 11,23},
+ {&(_ZTV7ee45552[16]), 16,23},
+ {&(_ZTV7ee45552[21]), 21,23},
+ {&(_tg__ZTV5cc552__7ee45552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee45552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee45552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee45552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee45552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45552[];
+extern VTBL_ENTRY _ZTV7ee45552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45552[];
+static VTBL_ENTRY alt_thunk_names1396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee455523barEv,_ZTv0_n16_N7ee455523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee455523barEv,_ZThn28_N7ee455523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee455523barEv,_ZThn20_N7ee455523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee455523barEv,_ZTv0_n20_N7ee455523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee455523barEv,_ZThn12_N7ee455523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45552 = { "ee45552", // class name
+ bases_ee45552, 4,
+ &(vtc_ee45552[0]), // expected_vtbl_contents
+ &(vtt_ee45552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45552),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1396,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55552 : virtual dd5552 {
+ int e;
+ virtual void bar(); // _ZN7ee555523barEv
+ ~ee55552(); // tgen
+ ee55552(); // tgen
+};
+//SIG(1 ee55552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55552 ::bar(){vfunc_called(this, "_ZN7ee555523barEv");}
+ee55552 ::~ee55552(){ note_dtor("ee55552", this);} // tgen
+ee55552 ::ee55552(){ note_ctor("ee55552", this);} // tgen
+
+static void Test_ee55552()
+{
+ extern Class_Descriptor cd_ee55552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55552, buf);
+ ee55552 *dp, &lv = *(dp=new (buf) ee55552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee55552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee55552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(32,16), "ee55552");
+ check_base_class_offset(lv, (dd5552*), ABISELECT(16,8), "ee55552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55552.e");
+ test_class_info(&lv, &cd_ee55552);
+ dp->~ee55552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55552(Test_ee55552, "ee55552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55552C1Ev();
+extern void _ZN7ee55552D1Ev();
+Name_Map name_map_ee55552[] = {
+ NSPAIR(_ZN7ee55552C1Ev),
+ NSPAIR(_ZN7ee55552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee55552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55552[];
+extern void _ZN7ee555523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee555523barEv,_ZTv0_n24_N7ee555523barEv)();
+extern void ABISELECT(_ZThn16_N7ee555523barEv,_ZThn8_N7ee555523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee555523barEv,_ZTv0_n20_N7ee555523barEv)();
+extern void ABISELECT(_ZThn32_N7ee555523barEv,_ZThn16_N7ee555523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee555523barEv,_ZTv0_n16_N7ee555523barEv)();
+extern void ABISELECT(_ZThn48_N7ee555523barEv,_ZThn24_N7ee555523barEv)() __attribute__((weak));
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee555523barEv,_ZTv0_n16_N7ee555523barEv)();
+extern void ABISELECT(_ZThn64_N7ee555523barEv,_ZThn32_N7ee555523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55552[0]),
+ (VTBL_ENTRY)&_ZN7ee555523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee555523barEv,_ZTv0_n24_N7ee555523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee555523barEv,_ZTv0_n20_N7ee555523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555523barEv,_ZTv0_n16_N7ee555523barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee555523barEv,_ZTv0_n16_N7ee555523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee55552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee55552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee55552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee55552[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee55552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee55552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee55552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee55552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee55552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55552[] = {
+ {&(_ZTV7ee55552[6]), 6,31},
+ {&(_ZTV7ee55552[13]), 13,31},
+ {&(_ZTV7ee55552[19]), 19,31},
+ {&(_ZTV7ee55552[24]), 24,31},
+ {&(_ZTV7ee55552[29]), 29,31},
+ {&(_tg__ZTV6dd5552__7ee55552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee55552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee55552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee55552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee55552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee55552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee55552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee55552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee55552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55552[];
+extern VTBL_ENTRY _ZTV7ee55552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55552[];
+static VTBL_ENTRY alt_thunk_names1397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee555523barEv,_ZTv0_n16_N7ee555523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee555523barEv,_ZThn32_N7ee555523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee555523barEv,_ZThn24_N7ee555523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee555523barEv,_ZTv0_n20_N7ee555523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee555523barEv,_ZThn16_N7ee555523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee555523barEv,_ZTv0_n24_N7ee555523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee555523barEv,_ZThn8_N7ee555523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55552 = { "ee55552", // class name
+ bases_ee55552, 4,
+ &(vtc_ee55552[0]), // expected_vtbl_contents
+ &(vtt_ee55552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55552),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1397,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65552 : dd5552 {
+ int e;
+ virtual void foo(); // _ZN7ee655523fooEv
+ virtual void bar(); // _ZN7ee655523barEv
+ ~ee65552(); // tgen
+ ee65552(); // tgen
+};
+//SIG(1 ee65552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65552 ::foo(){vfunc_called(this, "_ZN7ee655523fooEv");}
+void ee65552 ::bar(){vfunc_called(this, "_ZN7ee655523barEv");}
+ee65552 ::~ee65552(){ note_dtor("ee65552", this);} // tgen
+ee65552 ::ee65552(){ note_ctor("ee65552", this);} // tgen
+
+static void Test_ee65552()
+{
+ extern Class_Descriptor cd_ee65552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65552, buf);
+ ee65552 *dp, &lv = *(dp=new (buf) ee65552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee65552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee65552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(16,12), "ee65552");
+ check_base_class_offset(lv, (dd5552*), 0, "ee65552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65552.e");
+ test_class_info(&lv, &cd_ee65552);
+ dp->~ee65552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65552(Test_ee65552, "ee65552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65552C1Ev();
+extern void _ZN7ee65552D1Ev();
+Name_Map name_map_ee65552[] = {
+ NSPAIR(_ZN7ee65552C1Ev),
+ NSPAIR(_ZN7ee65552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee65552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65552[];
+extern void _ZN7ee655523barEv();
+extern void _ZN7ee655523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee655523barEv,_ZTv0_n20_N7ee655523barEv)();
+extern void ABISELECT(_ZThn16_N7ee655523barEv,_ZThn12_N7ee655523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655523barEv,_ZTv0_n16_N7ee655523barEv)();
+extern void ABISELECT(_ZThn32_N7ee655523barEv,_ZThn20_N7ee655523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee655523fooEv,_ZTv0_n12_N7ee655523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee655523fooEv,_ZThn28_N7ee655523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee655523barEv,_ZTv0_n16_N7ee655523barEv)();
+extern void ABISELECT(_ZThn48_N7ee655523barEv,_ZThn28_N7ee655523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65552[0]),
+ (VTBL_ENTRY)&_ZN7ee655523barEv,
+ (VTBL_ENTRY)&_ZN7ee655523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee655523barEv,_ZTv0_n20_N7ee655523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655523barEv,_ZTv0_n16_N7ee655523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee655523fooEv,_ZTv0_n12_N7ee655523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee655523barEv,_ZTv0_n16_N7ee655523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee65552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee65552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee65552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee65552[] = {
+ ABISELECT(-48,-28),
+ 0,
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee65552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee65552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee65552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee65552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee65552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65552[] = {
+ {&(_ZTV7ee65552[5]), 5,24},
+ {&(_tg__ZTV6dd5552__7ee65552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee65552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee65552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee65552[4]), 4,6},
+ {&(_ZTV7ee65552[12]), 12,24},
+ {&(_ZTV7ee65552[17]), 17,24},
+ {&(_ZTV7ee65552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee65552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee65552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee65552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee65552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee65552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65552[];
+extern VTBL_ENTRY _ZTV7ee65552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65552[];
+static VTBL_ENTRY alt_thunk_names1398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn28_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn20_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn12_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee655523fooEv,_ZTv0_n12_N7ee655523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee655523fooEv,_ZThn28_N7ee655523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee655523barEv,_ZTv0_n16_N7ee655523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee655523barEv,_ZThn28_N7ee655523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee655523barEv,_ZThn20_N7ee655523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee655523barEv,_ZTv0_n20_N7ee655523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee655523barEv,_ZThn12_N7ee655523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65552 = { "ee65552", // class name
+ bases_ee65552, 4,
+ &(vtc_ee65552[0]), // expected_vtbl_contents
+ &(vtt_ee65552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1398,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75552 : virtual dd5552 {
+ int e;
+ virtual void foo(); // _ZN7ee755523fooEv
+ virtual void bar(); // _ZN7ee755523barEv
+ ~ee75552(); // tgen
+ ee75552(); // tgen
+};
+//SIG(1 ee75552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75552 ::foo(){vfunc_called(this, "_ZN7ee755523fooEv");}
+void ee75552 ::bar(){vfunc_called(this, "_ZN7ee755523barEv");}
+ee75552 ::~ee75552(){ note_dtor("ee75552", this);} // tgen
+ee75552 ::ee75552(){ note_ctor("ee75552", this);} // tgen
+
+static void Test_ee75552()
+{
+ extern Class_Descriptor cd_ee75552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75552, buf);
+ ee75552 *dp, &lv = *(dp=new (buf) ee75552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee75552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee75552");
+ check_base_class_offset(lv, (cc552*)(dd5552*), ABISELECT(32,16), "ee75552");
+ check_base_class_offset(lv, (dd5552*), ABISELECT(16,8), "ee75552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75552.e");
+ test_class_info(&lv, &cd_ee75552);
+ dp->~ee75552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75552(Test_ee75552, "ee75552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75552C1Ev();
+extern void _ZN7ee75552D1Ev();
+Name_Map name_map_ee75552[] = {
+ NSPAIR(_ZN7ee75552C1Ev),
+ NSPAIR(_ZN7ee75552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd5552;
+extern VTBL_ENTRY _ZTI6dd5552[];
+extern VTBL_ENTRY _ZTV6dd5552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5552[];
+static Base_Class bases_ee75552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5552, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75552[];
+extern void _ZN7ee755523fooEv();
+extern void _ZN7ee755523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee755523barEv,_ZTv0_n24_N7ee755523barEv)();
+extern void ABISELECT(_ZThn16_N7ee755523barEv,_ZThn8_N7ee755523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee755523barEv,_ZTv0_n20_N7ee755523barEv)();
+extern void ABISELECT(_ZThn32_N7ee755523barEv,_ZThn16_N7ee755523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755523barEv,_ZTv0_n16_N7ee755523barEv)();
+extern void ABISELECT(_ZThn48_N7ee755523barEv,_ZThn24_N7ee755523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee755523fooEv,_ZTv0_n12_N7ee755523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee755523fooEv,_ZThn32_N7ee755523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee755523barEv,_ZTv0_n16_N7ee755523barEv)();
+extern void ABISELECT(_ZThn64_N7ee755523barEv,_ZThn32_N7ee755523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75552[0]),
+ (VTBL_ENTRY)&_ZN7ee755523fooEv,
+ (VTBL_ENTRY)&_ZN7ee755523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee755523barEv,_ZTv0_n24_N7ee755523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee755523barEv,_ZTv0_n20_N7ee755523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755523barEv,_ZTv0_n16_N7ee755523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee755523fooEv,_ZTv0_n12_N7ee755523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee755523barEv,_ZTv0_n16_N7ee755523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75552[];
+extern void _ZN6dd55523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5552__7ee75552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN6dd55523barEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv)();
+extern void ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd5552__7ee75552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5552__7ee75552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv)();
+extern void ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5552__7ee75552[] = {
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee75552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee75552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee75552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee75552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee75552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75552[] = {
+ {&(_ZTV7ee75552[6]), 6,32},
+ {&(_ZTV7ee75552[14]), 14,32},
+ {&(_ZTV7ee75552[20]), 20,32},
+ {&(_ZTV7ee75552[25]), 25,32},
+ {&(_ZTV7ee75552[30]), 30,32},
+ {&(_tg__ZTV6dd5552__7ee75552[5]), 5,6},
+ {&(_tg__ZTV5cc552__6dd5552__7ee75552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd5552__7ee75552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5552__7ee75552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee75552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee75552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee75552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee75552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee75552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75552[];
+extern VTBL_ENTRY _ZTV7ee75552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75552[];
+static VTBL_ENTRY alt_thunk_names1399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd55523barEv,_ZTv0_n16_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd55523barEv,_ZThn24_N6dd55523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd55523barEv,_ZThn16_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd55523barEv,_ZTv0_n20_N6dd55523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd55523barEv,_ZThn8_N6dd55523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee755523fooEv,_ZTv0_n12_N7ee755523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee755523fooEv,_ZThn32_N7ee755523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee755523barEv,_ZTv0_n16_N7ee755523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee755523barEv,_ZThn32_N7ee755523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee755523barEv,_ZThn24_N7ee755523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee755523barEv,_ZTv0_n20_N7ee755523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee755523barEv,_ZThn16_N7ee755523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee755523barEv,_ZTv0_n24_N7ee755523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee755523barEv,_ZThn8_N7ee755523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75552 = { "ee75552", // class name
+ bases_ee75552, 4,
+ &(vtc_ee75552[0]), // expected_vtbl_contents
+ &(vtt_ee75552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75552),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6552 : cc552 {
+ int d;
+ virtual void bar(); // _ZN6dd65523barEv
+ virtual void foo(); // _ZN6dd65523fooEv
+ ~dd6552(); // tgen
+ dd6552(); // tgen
+};
+//SIG(-1 dd6552) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd6552 ::bar(){vfunc_called(this, "_ZN6dd65523barEv");}
+void dd6552 ::foo(){vfunc_called(this, "_ZN6dd65523fooEv");}
+dd6552 ::~dd6552(){ note_dtor("dd6552", this);} // tgen
+dd6552 ::dd6552(){ note_ctor("dd6552", this);} // tgen
+
+static void Test_dd6552()
+{
+ extern Class_Descriptor cd_dd6552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6552, buf);
+ dd6552 *dp, &lv = *(dp=new (buf) dd6552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd6552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(16,12), "dd6552");
+ check_base_class_offset(lv, (cc552*), 0, "dd6552");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6552.d");
+ test_class_info(&lv, &cd_dd6552);
+ dp->~dd6552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6552(Test_dd6552, "dd6552", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6552C1Ev();
+extern void _ZN6dd6552D1Ev();
+Name_Map name_map_dd6552[] = {
+ NSPAIR(_ZN6dd6552C1Ev),
+ NSPAIR(_ZN6dd6552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd6552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd6552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd6552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd6552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd6552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6552[] = {
+ {&(_ZTV6dd6552[4]), 4,17},
+ {&(_tg__ZTV5cc552__6dd6552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd6552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd6552[4]), 4,6},
+ {&(_ZTV6dd6552[10]), 10,17},
+ {&(_ZTV6dd6552[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd6552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd6552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static VTBL_ENTRY alt_thunk_names1400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6552 = { "dd6552", // class name
+ bases_dd6552, 3,
+ &(vtc_dd6552[0]), // expected_vtbl_contents
+ &(vtt_dd6552[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6552),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1400,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06552 : dd6552 {
+ int e;
+ ~ee06552(); // tgen
+ ee06552(); // tgen
+};
+//SIG(1 ee06552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06552 ::~ee06552(){ note_dtor("ee06552", this);} // tgen
+ee06552 ::ee06552(){ note_ctor("ee06552", this);} // tgen
+
+static void Test_ee06552()
+{
+ extern Class_Descriptor cd_ee06552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06552, buf);
+ ee06552 *dp, &lv = *(dp=new (buf) ee06552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee06552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(24,16), "ee06552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), 0, "ee06552");
+ check_base_class_offset(lv, (dd6552*), 0, "ee06552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06552.e");
+ test_class_info(&lv, &cd_ee06552);
+ dp->~ee06552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06552(Test_ee06552, "ee06552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06552C1Ev();
+extern void _ZN7ee06552D1Ev();
+Name_Map name_map_ee06552[] = {
+ NSPAIR(_ZN7ee06552C1Ev),
+ NSPAIR(_ZN7ee06552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee06552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee06552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee06552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee06552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee06552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee06552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee06552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee06552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee06552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee06552[] = {
+ {&(_ZTV7ee06552[4]), 4,17},
+ {&(_tg__ZTV6dd6552__7ee06552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee06552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee06552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee06552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee06552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee06552[4]), 4,6},
+ {&(_ZTV7ee06552[10]), 10,17},
+ {&(_ZTV7ee06552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee06552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee06552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee06552[];
+extern VTBL_ENTRY _ZTV7ee06552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06552[];
+static VTBL_ENTRY alt_thunk_names1401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06552 = { "ee06552", // class name
+ bases_ee06552, 4,
+ &(vtc_ee06552[0]), // expected_vtbl_contents
+ &(vtt_ee06552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1401,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16552 : virtual dd6552 {
+ int e;
+ ~ee16552(); // tgen
+ ee16552(); // tgen
+};
+//SIG(1 ee16552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16552 ::~ee16552(){ note_dtor("ee16552", this);} // tgen
+ee16552 ::ee16552(){ note_ctor("ee16552", this);} // tgen
+
+static void Test_ee16552()
+{
+ extern Class_Descriptor cd_ee16552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16552, buf);
+ ee16552 *dp, &lv = *(dp=new (buf) ee16552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee16552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(32,20), "ee16552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), ABISELECT(16,8), "ee16552");
+ check_base_class_offset(lv, (dd6552*), ABISELECT(16,8), "ee16552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16552.e");
+ test_class_info(&lv, &cd_ee16552);
+ dp->~ee16552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16552(Test_ee16552, "ee16552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16552C1Ev();
+extern void _ZN7ee16552D1Ev();
+Name_Map name_map_ee16552[] = {
+ NSPAIR(_ZN7ee16552C1Ev),
+ NSPAIR(_ZN7ee16552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee16552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16552[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee16552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee16552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee16552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee16552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee16552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee16552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee16552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee16552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee16552[] = {
+ {&(_ZTV7ee16552[5]), 5,24},
+ {&(_ZTV7ee16552[11]), 11,24},
+ {&(_ZTV7ee16552[17]), 17,24},
+ {&(_ZTV7ee16552[22]), 22,24},
+ {&(_tg__ZTV6dd6552__7ee16552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee16552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee16552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee16552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee16552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee16552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee16552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee16552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16552[];
+extern VTBL_ENTRY _ZTV7ee16552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16552[];
+static VTBL_ENTRY alt_thunk_names1402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16552 = { "ee16552", // class name
+ bases_ee16552, 4,
+ &(vtc_ee16552[0]), // expected_vtbl_contents
+ &(vtt_ee16552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1402,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26552 : dd6552 {
+ int e;
+ virtual void foo(); // _ZN7ee265523fooEv
+ ~ee26552(); // tgen
+ ee26552(); // tgen
+};
+//SIG(1 ee26552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26552 ::foo(){vfunc_called(this, "_ZN7ee265523fooEv");}
+ee26552 ::~ee26552(){ note_dtor("ee26552", this);} // tgen
+ee26552 ::ee26552(){ note_ctor("ee26552", this);} // tgen
+
+static void Test_ee26552()
+{
+ extern Class_Descriptor cd_ee26552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26552, buf);
+ ee26552 *dp, &lv = *(dp=new (buf) ee26552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee26552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(24,16), "ee26552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), 0, "ee26552");
+ check_base_class_offset(lv, (dd6552*), 0, "ee26552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26552.e");
+ test_class_info(&lv, &cd_ee26552);
+ dp->~ee26552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26552(Test_ee26552, "ee26552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26552C1Ev();
+extern void _ZN7ee26552D1Ev();
+Name_Map name_map_ee26552[] = {
+ NSPAIR(_ZN7ee26552C1Ev),
+ NSPAIR(_ZN7ee26552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee26552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN7ee265523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee265523fooEv,_ZTv0_n12_N7ee265523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee265523fooEv,_ZThn24_N7ee265523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN7ee265523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee265523fooEv,_ZTv0_n12_N7ee265523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee26552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee26552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee26552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee26552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee26552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee26552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee26552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee26552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee26552[] = {
+ {&(_ZTV7ee26552[4]), 4,17},
+ {&(_tg__ZTV6dd6552__7ee26552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee26552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee26552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee26552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee26552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee26552[4]), 4,6},
+ {&(_ZTV7ee26552[10]), 10,17},
+ {&(_ZTV7ee26552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee26552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee26552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee26552[];
+extern VTBL_ENTRY _ZTV7ee26552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26552[];
+static VTBL_ENTRY alt_thunk_names1403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee265523fooEv,_ZTv0_n12_N7ee265523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee265523fooEv,_ZThn24_N7ee265523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26552 = { "ee26552", // class name
+ bases_ee26552, 4,
+ &(vtc_ee26552[0]), // expected_vtbl_contents
+ &(vtt_ee26552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36552 : virtual dd6552 {
+ int e;
+ virtual void foo(); // _ZN7ee365523fooEv
+ ~ee36552(); // tgen
+ ee36552(); // tgen
+};
+//SIG(1 ee36552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36552 ::foo(){vfunc_called(this, "_ZN7ee365523fooEv");}
+ee36552 ::~ee36552(){ note_dtor("ee36552", this);} // tgen
+ee36552 ::ee36552(){ note_ctor("ee36552", this);} // tgen
+
+static void Test_ee36552()
+{
+ extern Class_Descriptor cd_ee36552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36552, buf);
+ ee36552 *dp, &lv = *(dp=new (buf) ee36552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee36552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(32,20), "ee36552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), ABISELECT(16,8), "ee36552");
+ check_base_class_offset(lv, (dd6552*), ABISELECT(16,8), "ee36552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36552.e");
+ test_class_info(&lv, &cd_ee36552);
+ dp->~ee36552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36552(Test_ee36552, "ee36552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36552C1Ev();
+extern void _ZN7ee36552D1Ev();
+Name_Map name_map_ee36552[] = {
+ NSPAIR(_ZN7ee36552C1Ev),
+ NSPAIR(_ZN7ee36552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee36552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36552[];
+extern void _ZN7ee365523fooEv();
+extern void _ZN6dd65523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee365523fooEv,_ZTv0_n24_N7ee365523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee365523fooEv,_ZThn8_N7ee365523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee365523fooEv,_ZTv0_n12_N7ee365523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee365523fooEv,_ZThn28_N7ee365523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36552[0]),
+ (VTBL_ENTRY)&_ZN7ee365523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee365523fooEv,_ZTv0_n24_N7ee365523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee365523fooEv,_ZTv0_n12_N7ee365523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee36552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee36552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee36552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee36552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee36552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee36552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee36552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee36552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee36552[] = {
+ {&(_ZTV7ee36552[5]), 5,25},
+ {&(_ZTV7ee36552[12]), 12,25},
+ {&(_ZTV7ee36552[18]), 18,25},
+ {&(_ZTV7ee36552[23]), 23,25},
+ {&(_tg__ZTV6dd6552__7ee36552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee36552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee36552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee36552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee36552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee36552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee36552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee36552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36552[];
+extern VTBL_ENTRY _ZTV7ee36552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36552[];
+static VTBL_ENTRY alt_thunk_names1404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee365523fooEv,_ZTv0_n12_N7ee365523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee365523fooEv,_ZThn28_N7ee365523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee365523fooEv,_ZTv0_n24_N7ee365523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee365523fooEv,_ZThn8_N7ee365523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36552 = { "ee36552", // class name
+ bases_ee36552, 4,
+ &(vtc_ee36552[0]), // expected_vtbl_contents
+ &(vtt_ee36552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36552),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1404,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46552 : dd6552 {
+ int e;
+ virtual void bar(); // _ZN7ee465523barEv
+ ~ee46552(); // tgen
+ ee46552(); // tgen
+};
+//SIG(1 ee46552) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46552 ::bar(){vfunc_called(this, "_ZN7ee465523barEv");}
+ee46552 ::~ee46552(){ note_dtor("ee46552", this);} // tgen
+ee46552 ::ee46552(){ note_ctor("ee46552", this);} // tgen
+
+static void Test_ee46552()
+{
+ extern Class_Descriptor cd_ee46552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46552, buf);
+ ee46552 *dp, &lv = *(dp=new (buf) ee46552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee46552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(24,16), "ee46552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), 0, "ee46552");
+ check_base_class_offset(lv, (dd6552*), 0, "ee46552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46552.e");
+ test_class_info(&lv, &cd_ee46552);
+ dp->~ee46552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46552(Test_ee46552, "ee46552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46552C1Ev();
+extern void _ZN7ee46552D1Ev();
+Name_Map name_map_ee46552[] = {
+ NSPAIR(_ZN7ee46552C1Ev),
+ NSPAIR(_ZN7ee46552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee46552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46552[];
+extern void _ZN7ee465523barEv();
+extern void _ZN6dd65523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee465523barEv,_ZTv0_n16_N7ee465523barEv)();
+extern void ABISELECT(_ZThn24_N7ee465523barEv,_ZThn16_N7ee465523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee465523barEv,_ZTv0_n16_N7ee465523barEv)();
+extern void ABISELECT(_ZThn40_N7ee465523barEv,_ZThn24_N7ee465523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46552[0]),
+ (VTBL_ENTRY)&_ZN7ee465523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465523barEv,_ZTv0_n16_N7ee465523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee465523barEv,_ZTv0_n16_N7ee465523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee46552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee46552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee46552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee46552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee46552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee46552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee46552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee46552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee46552[] = {
+ {&(_ZTV7ee46552[4]), 4,17},
+ {&(_tg__ZTV6dd6552__7ee46552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee46552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee46552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee46552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee46552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee46552[4]), 4,6},
+ {&(_ZTV7ee46552[10]), 10,17},
+ {&(_ZTV7ee46552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee46552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee46552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee46552[];
+extern VTBL_ENTRY _ZTV7ee46552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46552[];
+static VTBL_ENTRY alt_thunk_names1405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee465523barEv,_ZTv0_n16_N7ee465523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee465523barEv,_ZThn24_N7ee465523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee465523barEv,_ZThn16_N7ee465523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46552 = { "ee46552", // class name
+ bases_ee46552, 4,
+ &(vtc_ee46552[0]), // expected_vtbl_contents
+ &(vtt_ee46552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1405,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56552 : virtual dd6552 {
+ int e;
+ virtual void bar(); // _ZN7ee565523barEv
+ ~ee56552(); // tgen
+ ee56552(); // tgen
+};
+//SIG(1 ee56552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56552 ::bar(){vfunc_called(this, "_ZN7ee565523barEv");}
+ee56552 ::~ee56552(){ note_dtor("ee56552", this);} // tgen
+ee56552 ::ee56552(){ note_ctor("ee56552", this);} // tgen
+
+static void Test_ee56552()
+{
+ extern Class_Descriptor cd_ee56552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56552, buf);
+ ee56552 *dp, &lv = *(dp=new (buf) ee56552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee56552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(32,20), "ee56552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), ABISELECT(16,8), "ee56552");
+ check_base_class_offset(lv, (dd6552*), ABISELECT(16,8), "ee56552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56552.e");
+ test_class_info(&lv, &cd_ee56552);
+ dp->~ee56552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56552(Test_ee56552, "ee56552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56552C1Ev();
+extern void _ZN7ee56552D1Ev();
+Name_Map name_map_ee56552[] = {
+ NSPAIR(_ZN7ee56552C1Ev),
+ NSPAIR(_ZN7ee56552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee56552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56552[];
+extern void _ZN7ee565523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee565523barEv,_ZTv0_n20_N7ee565523barEv)();
+extern void ABISELECT(_ZThn16_N7ee565523barEv,_ZThn8_N7ee565523barEv)() __attribute__((weak));
+extern void _ZN6dd65523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee565523barEv,_ZTv0_n16_N7ee565523barEv)();
+extern void ABISELECT(_ZThn32_N7ee565523barEv,_ZThn20_N7ee565523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee565523barEv,_ZTv0_n16_N7ee565523barEv)();
+extern void ABISELECT(_ZThn48_N7ee565523barEv,_ZThn28_N7ee565523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56552[0]),
+ (VTBL_ENTRY)&_ZN7ee565523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee565523barEv,_ZTv0_n20_N7ee565523barEv),
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565523barEv,_ZTv0_n16_N7ee565523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee565523barEv,_ZTv0_n16_N7ee565523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee56552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee56552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee56552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee56552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee56552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee56552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee56552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee56552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee56552[] = {
+ {&(_ZTV7ee56552[5]), 5,25},
+ {&(_ZTV7ee56552[12]), 12,25},
+ {&(_ZTV7ee56552[18]), 18,25},
+ {&(_ZTV7ee56552[23]), 23,25},
+ {&(_tg__ZTV6dd6552__7ee56552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee56552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee56552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee56552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee56552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee56552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee56552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee56552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56552[];
+extern VTBL_ENTRY _ZTV7ee56552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56552[];
+static VTBL_ENTRY alt_thunk_names1406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee565523barEv,_ZTv0_n16_N7ee565523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee565523barEv,_ZThn28_N7ee565523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee565523barEv,_ZThn20_N7ee565523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee565523barEv,_ZTv0_n20_N7ee565523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee565523barEv,_ZThn8_N7ee565523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56552 = { "ee56552", // class name
+ bases_ee56552, 4,
+ &(vtc_ee56552[0]), // expected_vtbl_contents
+ &(vtt_ee56552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56552),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1406,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66552 : dd6552 {
+ int e;
+ virtual void foo(); // _ZN7ee665523fooEv
+ virtual void bar(); // _ZN7ee665523barEv
+ ~ee66552(); // tgen
+ ee66552(); // tgen
+};
+//SIG(1 ee66552) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66552 ::foo(){vfunc_called(this, "_ZN7ee665523fooEv");}
+void ee66552 ::bar(){vfunc_called(this, "_ZN7ee665523barEv");}
+ee66552 ::~ee66552(){ note_dtor("ee66552", this);} // tgen
+ee66552 ::ee66552(){ note_ctor("ee66552", this);} // tgen
+
+static void Test_ee66552()
+{
+ extern Class_Descriptor cd_ee66552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66552, buf);
+ ee66552 *dp, &lv = *(dp=new (buf) ee66552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee66552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(24,16), "ee66552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), 0, "ee66552");
+ check_base_class_offset(lv, (dd6552*), 0, "ee66552");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66552.e");
+ test_class_info(&lv, &cd_ee66552);
+ dp->~ee66552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66552(Test_ee66552, "ee66552", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66552C1Ev();
+extern void _ZN7ee66552D1Ev();
+Name_Map name_map_ee66552[] = {
+ NSPAIR(_ZN7ee66552C1Ev),
+ NSPAIR(_ZN7ee66552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee66552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66552[];
+extern void _ZN7ee665523barEv();
+extern void _ZN7ee665523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee665523barEv,_ZTv0_n16_N7ee665523barEv)();
+extern void ABISELECT(_ZThn24_N7ee665523barEv,_ZThn16_N7ee665523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee665523fooEv,_ZTv0_n12_N7ee665523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee665523fooEv,_ZThn24_N7ee665523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee665523barEv,_ZTv0_n16_N7ee665523barEv)();
+extern void ABISELECT(_ZThn40_N7ee665523barEv,_ZThn24_N7ee665523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66552[0]),
+ (VTBL_ENTRY)&_ZN7ee665523barEv,
+ (VTBL_ENTRY)&_ZN7ee665523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665523barEv,_ZTv0_n16_N7ee665523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee665523fooEv,_ZTv0_n12_N7ee665523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee665523barEv,_ZTv0_n16_N7ee665523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee66552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee66552[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee66552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee66552[] = {
+ ABISELECT(-40,-24),
+ 0,
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee66552[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee66552[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee66552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee66552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee66552[] = {
+ {&(_ZTV7ee66552[4]), 4,17},
+ {&(_tg__ZTV6dd6552__7ee66552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee66552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee66552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee66552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee66552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee66552[4]), 4,6},
+ {&(_ZTV7ee66552[10]), 10,17},
+ {&(_ZTV7ee66552[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee66552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee66552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee66552[];
+extern VTBL_ENTRY _ZTV7ee66552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66552[];
+static VTBL_ENTRY alt_thunk_names1407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523fooEv,_ZThn24_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd65523barEv,_ZThn24_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd65523barEv,_ZThn16_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc5523barEv,_ZThn24_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee665523fooEv,_ZTv0_n12_N7ee665523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee665523fooEv,_ZThn24_N7ee665523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee665523barEv,_ZTv0_n16_N7ee665523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee665523barEv,_ZThn24_N7ee665523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee665523barEv,_ZThn16_N7ee665523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66552 = { "ee66552", // class name
+ bases_ee66552, 4,
+ &(vtc_ee66552[0]), // expected_vtbl_contents
+ &(vtt_ee66552[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66552),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66552),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1407,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76552 : virtual dd6552 {
+ int e;
+ virtual void foo(); // _ZN7ee765523fooEv
+ virtual void bar(); // _ZN7ee765523barEv
+ ~ee76552(); // tgen
+ ee76552(); // tgen
+};
+//SIG(1 ee76552) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76552 ::foo(){vfunc_called(this, "_ZN7ee765523fooEv");}
+void ee76552 ::bar(){vfunc_called(this, "_ZN7ee765523barEv");}
+ee76552 ::~ee76552(){ note_dtor("ee76552", this);} // tgen
+ee76552 ::ee76552(){ note_ctor("ee76552", this);} // tgen
+
+static void Test_ee76552()
+{
+ extern Class_Descriptor cd_ee76552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76552, buf);
+ ee76552 *dp, &lv = *(dp=new (buf) ee76552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee76552");
+ check_base_class_offset(lv, (bb52*)(cc552*)(dd6552*), ABISELECT(32,20), "ee76552");
+ check_base_class_offset(lv, (cc552*)(dd6552*), ABISELECT(16,8), "ee76552");
+ check_base_class_offset(lv, (dd6552*), ABISELECT(16,8), "ee76552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76552.e");
+ test_class_info(&lv, &cd_ee76552);
+ dp->~ee76552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76552(Test_ee76552, "ee76552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76552C1Ev();
+extern void _ZN7ee76552D1Ev();
+Name_Map name_map_ee76552[] = {
+ NSPAIR(_ZN7ee76552C1Ev),
+ NSPAIR(_ZN7ee76552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd6552;
+extern VTBL_ENTRY _ZTI6dd6552[];
+extern VTBL_ENTRY _ZTV6dd6552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6552[];
+static Base_Class bases_ee76552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76552[];
+extern void _ZN7ee765523fooEv();
+extern void _ZN7ee765523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee765523barEv,_ZTv0_n20_N7ee765523barEv)();
+extern void ABISELECT(_ZThn16_N7ee765523barEv,_ZThn8_N7ee765523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee765523fooEv,_ZTv0_n24_N7ee765523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee765523fooEv,_ZThn8_N7ee765523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765523barEv,_ZTv0_n16_N7ee765523barEv)();
+extern void ABISELECT(_ZThn32_N7ee765523barEv,_ZThn20_N7ee765523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee765523fooEv,_ZTv0_n12_N7ee765523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee765523fooEv,_ZThn28_N7ee765523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee765523barEv,_ZTv0_n16_N7ee765523barEv)();
+extern void ABISELECT(_ZThn48_N7ee765523barEv,_ZThn28_N7ee765523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76552[0]),
+ (VTBL_ENTRY)&_ZN7ee765523fooEv,
+ (VTBL_ENTRY)&_ZN7ee765523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee765523barEv,_ZTv0_n20_N7ee765523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee765523fooEv,_ZTv0_n24_N7ee765523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765523barEv,_ZTv0_n16_N7ee765523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee765523fooEv,_ZTv0_n12_N7ee765523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee765523barEv,_ZTv0_n16_N7ee765523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76552[];
+extern void _ZN6dd65523barEv();
+extern void _ZN6dd65523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6552__7ee76552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&_ZN6dd65523barEv,
+ (VTBL_ENTRY)&_ZN6dd65523fooEv,
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc5526dd6552__7ee76552[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc5526dd6552__7ee76552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc5526dd6552__7ee76552[] = {
+ ABISELECT(-32,-20),
+ 0,
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6552__7ee76552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv)();
+extern void ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6552__7ee76552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee76552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee76552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee76552[] = {
+ {&(_ZTV7ee76552[5]), 5,26},
+ {&(_ZTV7ee76552[13]), 13,26},
+ {&(_ZTV7ee76552[19]), 19,26},
+ {&(_ZTV7ee76552[24]), 24,26},
+ {&(_tg__ZTV6dd6552__7ee76552[4]), 4,6},
+ {&(_tg__ZTV5cc5526dd6552__7ee76552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc5526dd6552__7ee76552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc5526dd6552__7ee76552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6552__7ee76552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6552__7ee76552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee76552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee76552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76552[];
+extern VTBL_ENTRY _ZTV7ee76552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76552[];
+static VTBL_ENTRY alt_thunk_names1408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd65523fooEv,_ZTv0_n12_N6dd65523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523fooEv,_ZThn20_N6dd65523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd65523barEv,_ZTv0_n16_N6dd65523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd65523barEv,_ZThn20_N6dd65523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd65523barEv,_ZThn12_N6dd65523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn20_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn12_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee765523fooEv,_ZTv0_n12_N7ee765523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee765523fooEv,_ZThn28_N7ee765523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee765523barEv,_ZTv0_n16_N7ee765523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee765523barEv,_ZThn28_N7ee765523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee765523barEv,_ZThn20_N7ee765523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee765523fooEv,_ZTv0_n24_N7ee765523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765523fooEv,_ZThn8_N7ee765523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee765523barEv,_ZTv0_n20_N7ee765523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee765523barEv,_ZThn8_N7ee765523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76552 = { "ee76552", // class name
+ bases_ee76552, 4,
+ &(vtc_ee76552[0]), // expected_vtbl_contents
+ &(vtt_ee76552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76552),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76552),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7552 : virtual cc552 {
+ int d;
+ virtual void bar(); // _ZN6dd75523barEv
+ virtual void foo(); // _ZN6dd75523fooEv
+ ~dd7552(); // tgen
+ dd7552(); // tgen
+};
+//SIG(-1 dd7552) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void dd7552 ::bar(){vfunc_called(this, "_ZN6dd75523barEv");}
+void dd7552 ::foo(){vfunc_called(this, "_ZN6dd75523fooEv");}
+dd7552 ::~dd7552(){ note_dtor("dd7552", this);} // tgen
+dd7552 ::dd7552(){ note_ctor("dd7552", this);} // tgen
+
+static void Test_dd7552()
+{
+ extern Class_Descriptor cd_dd7552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7552, buf);
+ dd7552 *dp, &lv = *(dp=new (buf) dd7552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd7552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,16), "dd7552");
+ check_base_class_offset(lv, (cc552*), ABISELECT(16,8), "dd7552");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7552.d");
+ test_class_info(&lv, &cd_dd7552);
+ dp->~dd7552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7552(Test_dd7552, "dd7552", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7552C1Ev();
+extern void _ZN6dd7552D1Ev();
+Name_Map name_map_dd7552[] = {
+ NSPAIR(_ZN6dd7552C1Ev),
+ NSPAIR(_ZN6dd7552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+static Base_Class bases_dd7552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__6dd7552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__6dd7552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd7552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7552[] = {
+ {&(_ZTV6dd7552[5]), 5,24},
+ {&(_ZTV6dd7552[12]), 12,24},
+ {&(_ZTV6dd7552[17]), 17,24},
+ {&(_ZTV6dd7552[22]), 22,24},
+ {&(_tg__ZTV5cc552__6dd7552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__6dd7552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__6dd7552[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd7552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd7552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static VTBL_ENTRY alt_thunk_names1409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7552 = { "dd7552", // class name
+ bases_dd7552, 3,
+ &(vtc_dd7552[0]), // expected_vtbl_contents
+ &(vtt_dd7552[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7552),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1409,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07552 : dd7552 {
+ int e;
+ ~ee07552(); // tgen
+ ee07552(); // tgen
+};
+//SIG(1 ee07552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07552 ::~ee07552(){ note_dtor("ee07552", this);} // tgen
+ee07552 ::ee07552(){ note_ctor("ee07552", this);} // tgen
+
+static void Test_ee07552()
+{
+ extern Class_Descriptor cd_ee07552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07552, buf);
+ ee07552 *dp, &lv = *(dp=new (buf) ee07552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee07552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee07552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(16,12), "ee07552");
+ check_base_class_offset(lv, (dd7552*), 0, "ee07552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07552.e");
+ test_class_info(&lv, &cd_ee07552);
+ dp->~ee07552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07552(Test_ee07552, "ee07552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07552C1Ev();
+extern void _ZN7ee07552D1Ev();
+Name_Map name_map_ee07552[] = {
+ NSPAIR(_ZN7ee07552C1Ev),
+ NSPAIR(_ZN7ee07552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee07552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee07552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee07552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee07552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee07552[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee07552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee07552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee07552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee07552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee07552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07552[] = {
+ {&(_ZTV7ee07552[5]), 5,24},
+ {&(_tg__ZTV6dd7552__7ee07552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee07552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee07552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee07552[4]), 4,6},
+ {&(_ZTV7ee07552[12]), 12,24},
+ {&(_ZTV7ee07552[17]), 17,24},
+ {&(_ZTV7ee07552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee07552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee07552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee07552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee07552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee07552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07552[];
+extern VTBL_ENTRY _ZTV7ee07552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07552[];
+static VTBL_ENTRY alt_thunk_names1410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07552 = { "ee07552", // class name
+ bases_ee07552, 4,
+ &(vtc_ee07552[0]), // expected_vtbl_contents
+ &(vtt_ee07552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17552 : virtual dd7552 {
+ int e;
+ ~ee17552(); // tgen
+ ee17552(); // tgen
+};
+//SIG(1 ee17552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17552 ::~ee17552(){ note_dtor("ee17552", this);} // tgen
+ee17552 ::ee17552(){ note_ctor("ee17552", this);} // tgen
+
+static void Test_ee17552()
+{
+ extern Class_Descriptor cd_ee17552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17552, buf);
+ ee17552 *dp, &lv = *(dp=new (buf) ee17552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee17552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee17552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(32,16), "ee17552");
+ check_base_class_offset(lv, (dd7552*), ABISELECT(16,8), "ee17552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17552.e");
+ test_class_info(&lv, &cd_ee17552);
+ dp->~ee17552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17552(Test_ee17552, "ee17552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17552C1Ev();
+extern void _ZN7ee17552D1Ev();
+Name_Map name_map_ee17552[] = {
+ NSPAIR(_ZN7ee17552C1Ev),
+ NSPAIR(_ZN7ee17552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee17552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17552[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee17552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee17552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee17552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee17552[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee17552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee17552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee17552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee17552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee17552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17552[] = {
+ {&(_ZTV7ee17552[6]), 6,32},
+ {&(_ZTV7ee17552[13]), 13,32},
+ {&(_ZTV7ee17552[20]), 20,32},
+ {&(_ZTV7ee17552[25]), 25,32},
+ {&(_ZTV7ee17552[30]), 30,32},
+ {&(_tg__ZTV6dd7552__7ee17552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee17552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee17552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee17552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee17552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee17552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee17552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee17552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee17552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17552[];
+extern VTBL_ENTRY _ZTV7ee17552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17552[];
+static VTBL_ENTRY alt_thunk_names1411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17552 = { "ee17552", // class name
+ bases_ee17552, 4,
+ &(vtc_ee17552[0]), // expected_vtbl_contents
+ &(vtt_ee17552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17552),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1411,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27552 : dd7552 {
+ int e;
+ virtual void foo(); // _ZN7ee275523fooEv
+ ~ee27552(); // tgen
+ ee27552(); // tgen
+};
+//SIG(1 ee27552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27552 ::foo(){vfunc_called(this, "_ZN7ee275523fooEv");}
+ee27552 ::~ee27552(){ note_dtor("ee27552", this);} // tgen
+ee27552 ::ee27552(){ note_ctor("ee27552", this);} // tgen
+
+static void Test_ee27552()
+{
+ extern Class_Descriptor cd_ee27552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27552, buf);
+ ee27552 *dp, &lv = *(dp=new (buf) ee27552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee27552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee27552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(16,12), "ee27552");
+ check_base_class_offset(lv, (dd7552*), 0, "ee27552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27552.e");
+ test_class_info(&lv, &cd_ee27552);
+ dp->~ee27552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27552(Test_ee27552, "ee27552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27552C1Ev();
+extern void _ZN7ee27552D1Ev();
+Name_Map name_map_ee27552[] = {
+ NSPAIR(_ZN7ee27552C1Ev),
+ NSPAIR(_ZN7ee27552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee27552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN7ee275523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee275523fooEv,_ZTv0_n12_N7ee275523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee275523fooEv,_ZThn28_N7ee275523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN7ee275523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee275523fooEv,_ZTv0_n12_N7ee275523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee27552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee27552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee27552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee27552[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee27552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee27552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee27552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee27552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee27552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27552[] = {
+ {&(_ZTV7ee27552[5]), 5,24},
+ {&(_tg__ZTV6dd7552__7ee27552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee27552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee27552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee27552[4]), 4,6},
+ {&(_ZTV7ee27552[12]), 12,24},
+ {&(_ZTV7ee27552[17]), 17,24},
+ {&(_ZTV7ee27552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee27552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee27552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee27552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee27552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee27552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27552[];
+extern VTBL_ENTRY _ZTV7ee27552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27552[];
+static VTBL_ENTRY alt_thunk_names1412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee275523fooEv,_ZTv0_n12_N7ee275523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee275523fooEv,_ZThn28_N7ee275523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27552 = { "ee27552", // class name
+ bases_ee27552, 4,
+ &(vtc_ee27552[0]), // expected_vtbl_contents
+ &(vtt_ee27552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37552 : virtual dd7552 {
+ int e;
+ virtual void foo(); // _ZN7ee375523fooEv
+ ~ee37552(); // tgen
+ ee37552(); // tgen
+};
+//SIG(1 ee37552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37552 ::foo(){vfunc_called(this, "_ZN7ee375523fooEv");}
+ee37552 ::~ee37552(){ note_dtor("ee37552", this);} // tgen
+ee37552 ::ee37552(){ note_ctor("ee37552", this);} // tgen
+
+static void Test_ee37552()
+{
+ extern Class_Descriptor cd_ee37552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37552, buf);
+ ee37552 *dp, &lv = *(dp=new (buf) ee37552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee37552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee37552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(32,16), "ee37552");
+ check_base_class_offset(lv, (dd7552*), ABISELECT(16,8), "ee37552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37552.e");
+ test_class_info(&lv, &cd_ee37552);
+ dp->~ee37552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37552(Test_ee37552, "ee37552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37552C1Ev();
+extern void _ZN7ee37552D1Ev();
+Name_Map name_map_ee37552[] = {
+ NSPAIR(_ZN7ee37552C1Ev),
+ NSPAIR(_ZN7ee37552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee37552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37552[];
+extern void _ZN7ee375523fooEv();
+extern void _ZN6dd75523barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee375523fooEv,_ZTv0_n28_N7ee375523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee375523fooEv,_ZThn8_N7ee375523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee375523fooEv,_ZTv0_n12_N7ee375523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee375523fooEv,_ZThn32_N7ee375523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37552[0]),
+ (VTBL_ENTRY)&_ZN7ee375523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee375523fooEv,_ZTv0_n28_N7ee375523fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee375523fooEv,_ZTv0_n12_N7ee375523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee37552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee37552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee37552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee37552[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee37552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee37552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee37552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee37552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee37552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37552[] = {
+ {&(_ZTV7ee37552[6]), 6,33},
+ {&(_ZTV7ee37552[14]), 14,33},
+ {&(_ZTV7ee37552[21]), 21,33},
+ {&(_ZTV7ee37552[26]), 26,33},
+ {&(_ZTV7ee37552[31]), 31,33},
+ {&(_tg__ZTV6dd7552__7ee37552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee37552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee37552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee37552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee37552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee37552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee37552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee37552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee37552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37552[];
+extern VTBL_ENTRY _ZTV7ee37552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37552[];
+static VTBL_ENTRY alt_thunk_names1413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee375523fooEv,_ZTv0_n12_N7ee375523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee375523fooEv,_ZThn32_N7ee375523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee375523fooEv,_ZTv0_n28_N7ee375523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee375523fooEv,_ZThn8_N7ee375523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37552 = { "ee37552", // class name
+ bases_ee37552, 4,
+ &(vtc_ee37552[0]), // expected_vtbl_contents
+ &(vtt_ee37552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37552),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1413,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47552 : dd7552 {
+ int e;
+ virtual void bar(); // _ZN7ee475523barEv
+ ~ee47552(); // tgen
+ ee47552(); // tgen
+};
+//SIG(1 ee47552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47552 ::bar(){vfunc_called(this, "_ZN7ee475523barEv");}
+ee47552 ::~ee47552(){ note_dtor("ee47552", this);} // tgen
+ee47552 ::ee47552(){ note_ctor("ee47552", this);} // tgen
+
+static void Test_ee47552()
+{
+ extern Class_Descriptor cd_ee47552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47552, buf);
+ ee47552 *dp, &lv = *(dp=new (buf) ee47552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee47552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee47552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(16,12), "ee47552");
+ check_base_class_offset(lv, (dd7552*), 0, "ee47552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47552.e");
+ test_class_info(&lv, &cd_ee47552);
+ dp->~ee47552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47552(Test_ee47552, "ee47552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47552C1Ev();
+extern void _ZN7ee47552D1Ev();
+Name_Map name_map_ee47552[] = {
+ NSPAIR(_ZN7ee47552C1Ev),
+ NSPAIR(_ZN7ee47552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee47552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47552[];
+extern void _ZN7ee475523barEv();
+extern void _ZN6dd75523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee475523barEv,_ZTv0_n20_N7ee475523barEv)();
+extern void ABISELECT(_ZThn16_N7ee475523barEv,_ZThn12_N7ee475523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475523barEv,_ZTv0_n16_N7ee475523barEv)();
+extern void ABISELECT(_ZThn32_N7ee475523barEv,_ZThn20_N7ee475523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee475523barEv,_ZTv0_n16_N7ee475523barEv)();
+extern void ABISELECT(_ZThn48_N7ee475523barEv,_ZThn28_N7ee475523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47552[0]),
+ (VTBL_ENTRY)&_ZN7ee475523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee475523barEv,_ZTv0_n20_N7ee475523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475523barEv,_ZTv0_n16_N7ee475523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee475523barEv,_ZTv0_n16_N7ee475523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee47552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee47552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee47552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee47552[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee47552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee47552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee47552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee47552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee47552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47552[] = {
+ {&(_ZTV7ee47552[5]), 5,24},
+ {&(_tg__ZTV6dd7552__7ee47552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee47552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee47552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee47552[4]), 4,6},
+ {&(_ZTV7ee47552[12]), 12,24},
+ {&(_ZTV7ee47552[17]), 17,24},
+ {&(_ZTV7ee47552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee47552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee47552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee47552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee47552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee47552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47552[];
+extern VTBL_ENTRY _ZTV7ee47552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47552[];
+static VTBL_ENTRY alt_thunk_names1414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee475523barEv,_ZTv0_n16_N7ee475523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee475523barEv,_ZThn28_N7ee475523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee475523barEv,_ZThn20_N7ee475523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee475523barEv,_ZTv0_n20_N7ee475523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee475523barEv,_ZThn12_N7ee475523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47552 = { "ee47552", // class name
+ bases_ee47552, 4,
+ &(vtc_ee47552[0]), // expected_vtbl_contents
+ &(vtt_ee47552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1414,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57552 : virtual dd7552 {
+ int e;
+ virtual void bar(); // _ZN7ee575523barEv
+ ~ee57552(); // tgen
+ ee57552(); // tgen
+};
+//SIG(1 ee57552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57552 ::bar(){vfunc_called(this, "_ZN7ee575523barEv");}
+ee57552 ::~ee57552(){ note_dtor("ee57552", this);} // tgen
+ee57552 ::ee57552(){ note_ctor("ee57552", this);} // tgen
+
+static void Test_ee57552()
+{
+ extern Class_Descriptor cd_ee57552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57552, buf);
+ ee57552 *dp, &lv = *(dp=new (buf) ee57552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee57552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee57552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(32,16), "ee57552");
+ check_base_class_offset(lv, (dd7552*), ABISELECT(16,8), "ee57552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57552.e");
+ test_class_info(&lv, &cd_ee57552);
+ dp->~ee57552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57552(Test_ee57552, "ee57552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57552C1Ev();
+extern void _ZN7ee57552D1Ev();
+Name_Map name_map_ee57552[] = {
+ NSPAIR(_ZN7ee57552C1Ev),
+ NSPAIR(_ZN7ee57552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee57552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57552[];
+extern void _ZN7ee575523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee575523barEv,_ZTv0_n24_N7ee575523barEv)();
+extern void ABISELECT(_ZThn16_N7ee575523barEv,_ZThn8_N7ee575523barEv)() __attribute__((weak));
+extern void _ZN6dd75523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee575523barEv,_ZTv0_n20_N7ee575523barEv)();
+extern void ABISELECT(_ZThn32_N7ee575523barEv,_ZThn16_N7ee575523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575523barEv,_ZTv0_n16_N7ee575523barEv)();
+extern void ABISELECT(_ZThn48_N7ee575523barEv,_ZThn24_N7ee575523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee575523barEv,_ZTv0_n16_N7ee575523barEv)();
+extern void ABISELECT(_ZThn64_N7ee575523barEv,_ZThn32_N7ee575523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57552[0]),
+ (VTBL_ENTRY)&_ZN7ee575523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee575523barEv,_ZTv0_n24_N7ee575523barEv),
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee575523barEv,_ZTv0_n20_N7ee575523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575523barEv,_ZTv0_n16_N7ee575523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee575523barEv,_ZTv0_n16_N7ee575523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee57552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee57552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee57552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee57552[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee57552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee57552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee57552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee57552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee57552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57552[] = {
+ {&(_ZTV7ee57552[6]), 6,33},
+ {&(_ZTV7ee57552[14]), 14,33},
+ {&(_ZTV7ee57552[21]), 21,33},
+ {&(_ZTV7ee57552[26]), 26,33},
+ {&(_ZTV7ee57552[31]), 31,33},
+ {&(_tg__ZTV6dd7552__7ee57552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee57552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee57552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee57552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee57552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee57552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee57552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee57552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee57552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57552[];
+extern VTBL_ENTRY _ZTV7ee57552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57552[];
+static VTBL_ENTRY alt_thunk_names1415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee575523barEv,_ZTv0_n16_N7ee575523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee575523barEv,_ZThn32_N7ee575523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee575523barEv,_ZThn24_N7ee575523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee575523barEv,_ZTv0_n20_N7ee575523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee575523barEv,_ZThn16_N7ee575523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee575523barEv,_ZTv0_n24_N7ee575523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee575523barEv,_ZThn8_N7ee575523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57552 = { "ee57552", // class name
+ bases_ee57552, 4,
+ &(vtc_ee57552[0]), // expected_vtbl_contents
+ &(vtt_ee57552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57552),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1415,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67552 : dd7552 {
+ int e;
+ virtual void foo(); // _ZN7ee675523fooEv
+ virtual void bar(); // _ZN7ee675523barEv
+ ~ee67552(); // tgen
+ ee67552(); // tgen
+};
+//SIG(1 ee67552) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67552 ::foo(){vfunc_called(this, "_ZN7ee675523fooEv");}
+void ee67552 ::bar(){vfunc_called(this, "_ZN7ee675523barEv");}
+ee67552 ::~ee67552(){ note_dtor("ee67552", this);} // tgen
+ee67552 ::ee67552(){ note_ctor("ee67552", this);} // tgen
+
+static void Test_ee67552()
+{
+ extern Class_Descriptor cd_ee67552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67552, buf);
+ ee67552 *dp, &lv = *(dp=new (buf) ee67552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee67552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(32,20), "ee67552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(16,12), "ee67552");
+ check_base_class_offset(lv, (dd7552*), 0, "ee67552");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67552.e");
+ test_class_info(&lv, &cd_ee67552);
+ dp->~ee67552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67552(Test_ee67552, "ee67552", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67552C1Ev();
+extern void _ZN7ee67552D1Ev();
+Name_Map name_map_ee67552[] = {
+ NSPAIR(_ZN7ee67552C1Ev),
+ NSPAIR(_ZN7ee67552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee67552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67552[];
+extern void _ZN7ee675523barEv();
+extern void _ZN7ee675523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee675523barEv,_ZTv0_n20_N7ee675523barEv)();
+extern void ABISELECT(_ZThn16_N7ee675523barEv,_ZThn12_N7ee675523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675523barEv,_ZTv0_n16_N7ee675523barEv)();
+extern void ABISELECT(_ZThn32_N7ee675523barEv,_ZThn20_N7ee675523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee675523fooEv,_ZTv0_n12_N7ee675523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee675523fooEv,_ZThn28_N7ee675523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee675523barEv,_ZTv0_n16_N7ee675523barEv)();
+extern void ABISELECT(_ZThn48_N7ee675523barEv,_ZThn28_N7ee675523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67552[0]),
+ (VTBL_ENTRY)&_ZN7ee675523barEv,
+ (VTBL_ENTRY)&_ZN7ee675523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee675523barEv,_ZTv0_n20_N7ee675523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675523barEv,_ZTv0_n16_N7ee675523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee675523fooEv,_ZTv0_n12_N7ee675523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee675523barEv,_ZTv0_n16_N7ee675523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee67552[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee67552[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee67552[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee67552[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee67552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee67552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee67552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee67552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee67552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67552[] = {
+ {&(_ZTV7ee67552[5]), 5,24},
+ {&(_tg__ZTV6dd7552__7ee67552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee67552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee67552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee67552[4]), 4,6},
+ {&(_ZTV7ee67552[12]), 12,24},
+ {&(_ZTV7ee67552[17]), 17,24},
+ {&(_ZTV7ee67552[22]), 22,24},
+ {&(_tg__ZTV5cc552__7ee67552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee67552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee67552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee67552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee67552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67552[];
+extern VTBL_ENTRY _ZTV7ee67552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67552[];
+static VTBL_ENTRY alt_thunk_names1416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn28_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn28_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn20_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn12_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee675523fooEv,_ZTv0_n12_N7ee675523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee675523fooEv,_ZThn28_N7ee675523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee675523barEv,_ZTv0_n16_N7ee675523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee675523barEv,_ZThn28_N7ee675523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee675523barEv,_ZThn20_N7ee675523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee675523barEv,_ZTv0_n20_N7ee675523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee675523barEv,_ZThn12_N7ee675523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67552 = { "ee67552", // class name
+ bases_ee67552, 4,
+ &(vtc_ee67552[0]), // expected_vtbl_contents
+ &(vtt_ee67552[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67552),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67552),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67552),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1416,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77552 : virtual dd7552 {
+ int e;
+ virtual void foo(); // _ZN7ee775523fooEv
+ virtual void bar(); // _ZN7ee775523barEv
+ ~ee77552(); // tgen
+ ee77552(); // tgen
+};
+//SIG(1 ee77552) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77552 ::foo(){vfunc_called(this, "_ZN7ee775523fooEv");}
+void ee77552 ::bar(){vfunc_called(this, "_ZN7ee775523barEv");}
+ee77552 ::~ee77552(){ note_dtor("ee77552", this);} // tgen
+ee77552 ::ee77552(){ note_ctor("ee77552", this);} // tgen
+
+static void Test_ee77552()
+{
+ extern Class_Descriptor cd_ee77552;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77552, buf);
+ ee77552 *dp, &lv = *(dp=new (buf) ee77552());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77552)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77552)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee77552");
+ check_base_class_offset(lv, (bb52*)(cc552*), ABISELECT(48,24), "ee77552");
+ check_base_class_offset(lv, (cc552*)(dd7552*), ABISELECT(32,16), "ee77552");
+ check_base_class_offset(lv, (dd7552*), ABISELECT(16,8), "ee77552");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77552.e");
+ test_class_info(&lv, &cd_ee77552);
+ dp->~ee77552();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77552(Test_ee77552, "ee77552", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77552C1Ev();
+extern void _ZN7ee77552D1Ev();
+Name_Map name_map_ee77552[] = {
+ NSPAIR(_ZN7ee77552C1Ev),
+ NSPAIR(_ZN7ee77552D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc552;
+extern VTBL_ENTRY _ZTI5cc552[];
+extern VTBL_ENTRY _ZTV5cc552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc552[];
+extern Class_Descriptor cd_dd7552;
+extern VTBL_ENTRY _ZTI6dd7552[];
+extern VTBL_ENTRY _ZTV6dd7552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7552[];
+static Base_Class bases_ee77552[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc552, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7552, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77552[];
+extern void _ZN7ee775523fooEv();
+extern void _ZN7ee775523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee775523barEv,_ZTv0_n24_N7ee775523barEv)();
+extern void ABISELECT(_ZThn16_N7ee775523barEv,_ZThn8_N7ee775523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee775523fooEv,_ZTv0_n28_N7ee775523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee775523fooEv,_ZThn8_N7ee775523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee775523barEv,_ZTv0_n20_N7ee775523barEv)();
+extern void ABISELECT(_ZThn32_N7ee775523barEv,_ZThn16_N7ee775523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775523barEv,_ZTv0_n16_N7ee775523barEv)();
+extern void ABISELECT(_ZThn48_N7ee775523barEv,_ZThn24_N7ee775523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee775523fooEv,_ZTv0_n12_N7ee775523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee775523fooEv,_ZThn32_N7ee775523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee775523barEv,_ZTv0_n16_N7ee775523barEv)();
+extern void ABISELECT(_ZThn64_N7ee775523barEv,_ZThn32_N7ee775523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77552[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77552[0]),
+ (VTBL_ENTRY)&_ZN7ee775523fooEv,
+ (VTBL_ENTRY)&_ZN7ee775523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee775523barEv,_ZTv0_n24_N7ee775523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee775523fooEv,_ZTv0_n28_N7ee775523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee775523barEv,_ZTv0_n20_N7ee775523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775523barEv,_ZTv0_n16_N7ee775523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee775523fooEv,_ZTv0_n12_N7ee775523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee775523barEv,_ZTv0_n16_N7ee775523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77552[];
+extern void _ZN6dd75523barEv();
+extern void _ZN6dd75523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7552__7ee77552[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&_ZN6dd75523barEv,
+ (VTBL_ENTRY)&_ZN6dd75523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv)();
+extern void ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc552__6dd7552__7ee77552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7552__7ee77552[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv)();
+extern void ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7552__7ee77552[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv),
+};
+extern void _ZN5cc5523barEv();
+static VTBL_ENTRY _tg__ZTV5cc552__7ee77552[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN5cc5523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc552__7ee77552[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv)();
+extern void ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc552__7ee77552[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc552[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee77552[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee77552[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77552[] = {
+ {&(_ZTV7ee77552[6]), 6,34},
+ {&(_ZTV7ee77552[15]), 15,34},
+ {&(_ZTV7ee77552[22]), 22,34},
+ {&(_ZTV7ee77552[27]), 27,34},
+ {&(_ZTV7ee77552[32]), 32,34},
+ {&(_tg__ZTV6dd7552__7ee77552[5]), 5,7},
+ {&(_tg__ZTV5cc552__6dd7552__7ee77552[5]), 5,6},
+ {&(_tg__ZTV4bb52__6dd7552__7ee77552[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7552__7ee77552[4]), 4,6},
+ {&(_tg__ZTV5cc552__7ee77552[4]), 4,5},
+ {&(_tg__ZTV4bb52__5cc552__7ee77552[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc552__7ee77552[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee77552[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee77552[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77552[];
+extern VTBL_ENTRY _ZTV7ee77552[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77552[];
+static VTBL_ENTRY alt_thunk_names1417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc5523barEv,_ZTv0_n16_N5cc5523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc5523barEv,_ZThn16_N5cc5523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc5523barEv,_ZThn8_N5cc5523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd75523fooEv,_ZTv0_n12_N6dd75523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523fooEv,_ZThn24_N6dd75523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd75523barEv,_ZTv0_n16_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd75523barEv,_ZThn24_N6dd75523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd75523barEv,_ZThn16_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd75523barEv,_ZTv0_n20_N6dd75523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd75523barEv,_ZThn8_N6dd75523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee775523fooEv,_ZTv0_n12_N7ee775523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee775523fooEv,_ZThn32_N7ee775523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee775523barEv,_ZTv0_n16_N7ee775523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee775523barEv,_ZThn32_N7ee775523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee775523barEv,_ZThn24_N7ee775523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee775523barEv,_ZTv0_n20_N7ee775523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee775523barEv,_ZThn16_N7ee775523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee775523fooEv,_ZTv0_n28_N7ee775523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775523fooEv,_ZThn8_N7ee775523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee775523barEv,_ZTv0_n24_N7ee775523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee775523barEv,_ZThn8_N7ee775523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77552 = { "ee77552", // class name
+ bases_ee77552, 4,
+ &(vtc_ee77552[0]), // expected_vtbl_contents
+ &(vtt_ee77552[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77552),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77552),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77552),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc652 : bb52 {
+ int c;
+ virtual void foo(); // _ZN5cc6523fooEv
+ virtual void bar(); // _ZN5cc6523barEv
+ ~cc652(); // tgen
+ cc652(); // tgen
+};
+//SIG(-1 cc652) C1{ BC2{ VBC3{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc652 ::foo(){vfunc_called(this, "_ZN5cc6523fooEv");}
+void cc652 ::bar(){vfunc_called(this, "_ZN5cc6523barEv");}
+cc652 ::~cc652(){ note_dtor("cc652", this);} // tgen
+cc652 ::cc652(){ note_ctor("cc652", this);} // tgen
+
+static void Test_cc652()
+{
+ extern Class_Descriptor cd_cc652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(5,6)];
+ init_test(&cd_cc652, buf);
+ cc652 *dp, &lv = *(dp=new (buf) cc652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,20), "sizeof(cc652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc652)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(16,12), "cc652");
+ check_base_class_offset(lv, (bb52*), 0, "cc652");
+ check_field_offset(lv, c, ABISELECT(12,8), "cc652.c");
+ test_class_info(&lv, &cd_cc652);
+ dp->~cc652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc652(Test_cc652, "cc652", ABISELECT(32,20));
+
+#else // __cplusplus
+
+extern void _ZN5cc652C1Ev();
+extern void _ZN5cc652D1Ev();
+Name_Map name_map_cc652[] = {
+ NSPAIR(_ZN5cc652C1Ev),
+ NSPAIR(_ZN5cc652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 0},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc652[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc652[] = {
+ {&(_ZTV5cc652[3]), 3,11},
+ {&(_tg__ZTV4bb52__5cc652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc652[4]), 4,6},
+ {&(_ZTV5cc652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static VTBL_ENTRY alt_thunk_names1418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc652 = { "cc652", // class name
+ bases_cc652, 2,
+ &(vtc_cc652[0]), // expected_vtbl_contents
+ &(vtt_cc652[0]), // expected_vtt_contents
+ ABISELECT(32,20), // object size
+ NSPAIRA(_ZTI5cc652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV5cc652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc652),4, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1418,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0652 : cc652 {
+ int d;
+ ~dd0652(); // tgen
+ dd0652(); // tgen
+};
+//SIG(-1 dd0652) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0652 ::~dd0652(){ note_dtor("dd0652", this);} // tgen
+dd0652 ::dd0652(){ note_ctor("dd0652", this);} // tgen
+
+static void Test_dd0652()
+{
+ extern Class_Descriptor cd_dd0652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd0652, buf);
+ dd0652 *dp, &lv = *(dp=new (buf) dd0652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd0652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(24,16), "dd0652");
+ check_base_class_offset(lv, (bb52*)(cc652*), 0, "dd0652");
+ check_base_class_offset(lv, (cc652*), 0, "dd0652");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd0652.d");
+ test_class_info(&lv, &cd_dd0652);
+ dp->~dd0652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0652(Test_dd0652, "dd0652", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd0652C1Ev();
+extern void _ZN6dd0652D1Ev();
+Name_Map name_map_dd0652[] = {
+ NSPAIR(_ZN6dd0652C1Ev),
+ NSPAIR(_ZN6dd0652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd0652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd0652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd0652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd0652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd0652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd0652[] = {
+ {&(_ZTV6dd0652[3]), 3,11},
+ {&(_tg__ZTV5cc652__6dd0652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd0652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd0652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd0652[4]), 4,6},
+ {&(_ZTV6dd0652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static VTBL_ENTRY alt_thunk_names1419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0652 = { "dd0652", // class name
+ bases_dd0652, 3,
+ &(vtc_dd0652[0]), // expected_vtbl_contents
+ &(vtt_dd0652[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd0652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0652),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1419,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00652 : dd0652 {
+ int e;
+ ~ee00652(); // tgen
+ ee00652(); // tgen
+};
+//SIG(1 ee00652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00652 ::~ee00652(){ note_dtor("ee00652", this);} // tgen
+ee00652 ::ee00652(){ note_ctor("ee00652", this);} // tgen
+
+static void Test_ee00652()
+{
+ extern Class_Descriptor cd_ee00652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee00652, buf);
+ ee00652 *dp, &lv = *(dp=new (buf) ee00652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee00652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(24,20), "ee00652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), 0, "ee00652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), 0, "ee00652");
+ check_base_class_offset(lv, (dd0652*), 0, "ee00652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee00652.e");
+ test_class_info(&lv, &cd_ee00652);
+ dp->~ee00652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00652(Test_ee00652, "ee00652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee00652C1Ev();
+extern void _ZN7ee00652D1Ev();
+Name_Map name_map_ee00652[] = {
+ NSPAIR(_ZN7ee00652C1Ev),
+ NSPAIR(_ZN7ee00652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee00652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee00652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee00652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee00652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee00652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee00652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee00652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee00652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee00652[] = {
+ {&(_ZTV7ee00652[3]), 3,11},
+ {&(_tg__ZTV6dd0652__7ee00652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee00652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee00652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee00652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee00652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee00652[4]), 4,6},
+ {&(_ZTV7ee00652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee00652[];
+extern VTBL_ENTRY _ZTV7ee00652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00652[];
+static VTBL_ENTRY alt_thunk_names1420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00652 = { "ee00652", // class name
+ bases_ee00652, 4,
+ &(vtc_ee00652[0]), // expected_vtbl_contents
+ &(vtt_ee00652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee00652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1420,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10652 : virtual dd0652 {
+ int e;
+ ~ee10652(); // tgen
+ ee10652(); // tgen
+};
+//SIG(1 ee10652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10652 ::~ee10652(){ note_dtor("ee10652", this);} // tgen
+ee10652 ::ee10652(){ note_ctor("ee10652", this);} // tgen
+
+static void Test_ee10652()
+{
+ extern Class_Descriptor cd_ee10652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee10652, buf);
+ ee10652 *dp, &lv = *(dp=new (buf) ee10652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee10652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(40,24), "ee10652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), ABISELECT(16,8), "ee10652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), ABISELECT(16,8), "ee10652");
+ check_base_class_offset(lv, (dd0652*), ABISELECT(16,8), "ee10652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10652.e");
+ test_class_info(&lv, &cd_ee10652);
+ dp->~ee10652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10652(Test_ee10652, "ee10652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee10652C1Ev();
+extern void _ZN7ee10652D1Ev();
+Name_Map name_map_ee10652[] = {
+ NSPAIR(_ZN7ee10652C1Ev),
+ NSPAIR(_ZN7ee10652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee10652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10652[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee10652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee10652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee10652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee10652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee10652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee10652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee10652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee10652[] = {
+ {&(_ZTV7ee10652[4]), 4,17},
+ {&(_ZTV7ee10652[9]), 9,17},
+ {&(_ZTV7ee10652[15]), 15,17},
+ {&(_tg__ZTV6dd0652__7ee10652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee10652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee10652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee10652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee10652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee10652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10652[];
+extern VTBL_ENTRY _ZTV7ee10652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10652[];
+static VTBL_ENTRY alt_thunk_names1421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10652 = { "ee10652", // class name
+ bases_ee10652, 4,
+ &(vtc_ee10652[0]), // expected_vtbl_contents
+ &(vtt_ee10652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee10652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20652 : dd0652 {
+ int e;
+ virtual void foo(); // _ZN7ee206523fooEv
+ ~ee20652(); // tgen
+ ee20652(); // tgen
+};
+//SIG(1 ee20652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20652 ::foo(){vfunc_called(this, "_ZN7ee206523fooEv");}
+ee20652 ::~ee20652(){ note_dtor("ee20652", this);} // tgen
+ee20652 ::ee20652(){ note_ctor("ee20652", this);} // tgen
+
+static void Test_ee20652()
+{
+ extern Class_Descriptor cd_ee20652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee20652, buf);
+ ee20652 *dp, &lv = *(dp=new (buf) ee20652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee20652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(24,20), "ee20652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), 0, "ee20652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), 0, "ee20652");
+ check_base_class_offset(lv, (dd0652*), 0, "ee20652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee20652.e");
+ test_class_info(&lv, &cd_ee20652);
+ dp->~ee20652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20652(Test_ee20652, "ee20652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee20652C1Ev();
+extern void _ZN7ee20652D1Ev();
+Name_Map name_map_ee20652[] = {
+ NSPAIR(_ZN7ee20652C1Ev),
+ NSPAIR(_ZN7ee20652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee20652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN7ee206523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee206523fooEv,_ZTv0_n12_N7ee206523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee206523fooEv,_ZThn20_N7ee206523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN7ee206523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee20652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee206523fooEv,_ZTv0_n12_N7ee206523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee20652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee20652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee20652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee20652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee20652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee20652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee20652[] = {
+ {&(_ZTV7ee20652[3]), 3,11},
+ {&(_tg__ZTV6dd0652__7ee20652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee20652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee20652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee20652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee20652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee20652[4]), 4,6},
+ {&(_ZTV7ee20652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee20652[];
+extern VTBL_ENTRY _ZTV7ee20652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20652[];
+static VTBL_ENTRY alt_thunk_names1422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee206523fooEv,_ZTv0_n12_N7ee206523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee206523fooEv,_ZThn20_N7ee206523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20652 = { "ee20652", // class name
+ bases_ee20652, 4,
+ &(vtc_ee20652[0]), // expected_vtbl_contents
+ &(vtt_ee20652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee20652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1422,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30652 : virtual dd0652 {
+ int e;
+ virtual void foo(); // _ZN7ee306523fooEv
+ ~ee30652(); // tgen
+ ee30652(); // tgen
+};
+//SIG(1 ee30652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30652 ::foo(){vfunc_called(this, "_ZN7ee306523fooEv");}
+ee30652 ::~ee30652(){ note_dtor("ee30652", this);} // tgen
+ee30652 ::ee30652(){ note_ctor("ee30652", this);} // tgen
+
+static void Test_ee30652()
+{
+ extern Class_Descriptor cd_ee30652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee30652, buf);
+ ee30652 *dp, &lv = *(dp=new (buf) ee30652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee30652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(40,24), "ee30652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), ABISELECT(16,8), "ee30652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), ABISELECT(16,8), "ee30652");
+ check_base_class_offset(lv, (dd0652*), ABISELECT(16,8), "ee30652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30652.e");
+ test_class_info(&lv, &cd_ee30652);
+ dp->~ee30652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30652(Test_ee30652, "ee30652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee30652C1Ev();
+extern void _ZN7ee30652D1Ev();
+Name_Map name_map_ee30652[] = {
+ NSPAIR(_ZN7ee30652C1Ev),
+ NSPAIR(_ZN7ee30652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee30652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30652[];
+extern void _ZN7ee306523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee306523fooEv,_ZTv0_n20_N7ee306523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee306523fooEv,_ZThn8_N7ee306523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee306523fooEv,_ZTv0_n12_N7ee306523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee306523fooEv,_ZThn24_N7ee306523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30652[0]),
+ (VTBL_ENTRY)&_ZN7ee306523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee306523fooEv,_ZTv0_n20_N7ee306523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee30652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee306523fooEv,_ZTv0_n12_N7ee306523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee30652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee30652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee30652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee30652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee30652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee30652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee30652[] = {
+ {&(_ZTV7ee30652[4]), 4,18},
+ {&(_ZTV7ee30652[10]), 10,18},
+ {&(_ZTV7ee30652[16]), 16,18},
+ {&(_tg__ZTV6dd0652__7ee30652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee30652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee30652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee30652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee30652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee30652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30652[];
+extern VTBL_ENTRY _ZTV7ee30652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30652[];
+static VTBL_ENTRY alt_thunk_names1423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee306523fooEv,_ZTv0_n12_N7ee306523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee306523fooEv,_ZThn24_N7ee306523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee306523fooEv,_ZTv0_n20_N7ee306523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee306523fooEv,_ZThn8_N7ee306523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30652 = { "ee30652", // class name
+ bases_ee30652, 4,
+ &(vtc_ee30652[0]), // expected_vtbl_contents
+ &(vtt_ee30652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee30652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1423,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40652 : dd0652 {
+ int e;
+ virtual void bar(); // _ZN7ee406523barEv
+ ~ee40652(); // tgen
+ ee40652(); // tgen
+};
+//SIG(1 ee40652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40652 ::bar(){vfunc_called(this, "_ZN7ee406523barEv");}
+ee40652 ::~ee40652(){ note_dtor("ee40652", this);} // tgen
+ee40652 ::ee40652(){ note_ctor("ee40652", this);} // tgen
+
+static void Test_ee40652()
+{
+ extern Class_Descriptor cd_ee40652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee40652, buf);
+ ee40652 *dp, &lv = *(dp=new (buf) ee40652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee40652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(24,20), "ee40652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), 0, "ee40652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), 0, "ee40652");
+ check_base_class_offset(lv, (dd0652*), 0, "ee40652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee40652.e");
+ test_class_info(&lv, &cd_ee40652);
+ dp->~ee40652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40652(Test_ee40652, "ee40652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee40652C1Ev();
+extern void _ZN7ee40652D1Ev();
+Name_Map name_map_ee40652[] = {
+ NSPAIR(_ZN7ee40652C1Ev),
+ NSPAIR(_ZN7ee40652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee40652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40652[];
+extern void _ZN7ee406523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee406523barEv,_ZTv0_n16_N7ee406523barEv)();
+extern void ABISELECT(_ZThn24_N7ee406523barEv,_ZThn20_N7ee406523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40652[0]),
+ (VTBL_ENTRY)&_ZN7ee406523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee40652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee406523barEv,_ZTv0_n16_N7ee406523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee40652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee40652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee40652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee40652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee40652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee40652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee40652[] = {
+ {&(_ZTV7ee40652[3]), 3,11},
+ {&(_tg__ZTV6dd0652__7ee40652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee40652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee40652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee40652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee40652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee40652[4]), 4,6},
+ {&(_ZTV7ee40652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee40652[];
+extern VTBL_ENTRY _ZTV7ee40652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40652[];
+static VTBL_ENTRY alt_thunk_names1424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee406523barEv,_ZTv0_n16_N7ee406523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee406523barEv,_ZThn20_N7ee406523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40652 = { "ee40652", // class name
+ bases_ee40652, 4,
+ &(vtc_ee40652[0]), // expected_vtbl_contents
+ &(vtt_ee40652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee40652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1424,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50652 : virtual dd0652 {
+ int e;
+ virtual void bar(); // _ZN7ee506523barEv
+ ~ee50652(); // tgen
+ ee50652(); // tgen
+};
+//SIG(1 ee50652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50652 ::bar(){vfunc_called(this, "_ZN7ee506523barEv");}
+ee50652 ::~ee50652(){ note_dtor("ee50652", this);} // tgen
+ee50652 ::ee50652(){ note_ctor("ee50652", this);} // tgen
+
+static void Test_ee50652()
+{
+ extern Class_Descriptor cd_ee50652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee50652, buf);
+ ee50652 *dp, &lv = *(dp=new (buf) ee50652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee50652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(40,24), "ee50652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), ABISELECT(16,8), "ee50652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), ABISELECT(16,8), "ee50652");
+ check_base_class_offset(lv, (dd0652*), ABISELECT(16,8), "ee50652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50652.e");
+ test_class_info(&lv, &cd_ee50652);
+ dp->~ee50652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50652(Test_ee50652, "ee50652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee50652C1Ev();
+extern void _ZN7ee50652D1Ev();
+Name_Map name_map_ee50652[] = {
+ NSPAIR(_ZN7ee50652C1Ev),
+ NSPAIR(_ZN7ee50652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee50652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50652[];
+extern void _ZN7ee506523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee506523barEv,_ZTv0_n16_N7ee506523barEv)();
+extern void ABISELECT(_ZThn16_N7ee506523barEv,_ZThn8_N7ee506523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee506523barEv,_ZTv0_n16_N7ee506523barEv)();
+extern void ABISELECT(_ZThn40_N7ee506523barEv,_ZThn24_N7ee506523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50652[0]),
+ (VTBL_ENTRY)&_ZN7ee506523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506523barEv,_ZTv0_n16_N7ee506523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee50652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee506523barEv,_ZTv0_n16_N7ee506523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee50652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee50652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee50652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee50652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee50652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee50652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee50652[] = {
+ {&(_ZTV7ee50652[4]), 4,18},
+ {&(_ZTV7ee50652[10]), 10,18},
+ {&(_ZTV7ee50652[16]), 16,18},
+ {&(_tg__ZTV6dd0652__7ee50652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee50652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee50652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee50652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee50652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee50652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50652[];
+extern VTBL_ENTRY _ZTV7ee50652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50652[];
+static VTBL_ENTRY alt_thunk_names1425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee506523barEv,_ZTv0_n16_N7ee506523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee506523barEv,_ZThn24_N7ee506523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee506523barEv,_ZThn8_N7ee506523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50652 = { "ee50652", // class name
+ bases_ee50652, 4,
+ &(vtc_ee50652[0]), // expected_vtbl_contents
+ &(vtt_ee50652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee50652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1425,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60652 : dd0652 {
+ int e;
+ virtual void foo(); // _ZN7ee606523fooEv
+ virtual void bar(); // _ZN7ee606523barEv
+ ~ee60652(); // tgen
+ ee60652(); // tgen
+};
+//SIG(1 ee60652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60652 ::foo(){vfunc_called(this, "_ZN7ee606523fooEv");}
+void ee60652 ::bar(){vfunc_called(this, "_ZN7ee606523barEv");}
+ee60652 ::~ee60652(){ note_dtor("ee60652", this);} // tgen
+ee60652 ::ee60652(){ note_ctor("ee60652", this);} // tgen
+
+static void Test_ee60652()
+{
+ extern Class_Descriptor cd_ee60652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee60652, buf);
+ ee60652 *dp, &lv = *(dp=new (buf) ee60652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee60652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(24,20), "ee60652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), 0, "ee60652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), 0, "ee60652");
+ check_base_class_offset(lv, (dd0652*), 0, "ee60652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee60652.e");
+ test_class_info(&lv, &cd_ee60652);
+ dp->~ee60652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60652(Test_ee60652, "ee60652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee60652C1Ev();
+extern void _ZN7ee60652D1Ev();
+Name_Map name_map_ee60652[] = {
+ NSPAIR(_ZN7ee60652C1Ev),
+ NSPAIR(_ZN7ee60652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee60652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60652[];
+extern void _ZN7ee606523barEv();
+extern void _ZN7ee606523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee606523fooEv,_ZTv0_n12_N7ee606523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee606523fooEv,_ZThn20_N7ee606523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee606523barEv,_ZTv0_n16_N7ee606523barEv)();
+extern void ABISELECT(_ZThn24_N7ee606523barEv,_ZThn20_N7ee606523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60652[0]),
+ (VTBL_ENTRY)&_ZN7ee606523barEv,
+ (VTBL_ENTRY)&_ZN7ee606523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee60652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee606523fooEv,_ZTv0_n12_N7ee606523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee606523barEv,_ZTv0_n16_N7ee606523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee60652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee60652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee60652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee60652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee60652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee60652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee60652[] = {
+ {&(_ZTV7ee60652[3]), 3,11},
+ {&(_tg__ZTV6dd0652__7ee60652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee60652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee60652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee60652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee60652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee60652[4]), 4,6},
+ {&(_ZTV7ee60652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee60652[];
+extern VTBL_ENTRY _ZTV7ee60652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60652[];
+static VTBL_ENTRY alt_thunk_names1426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee606523barEv,_ZTv0_n16_N7ee606523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee606523barEv,_ZThn20_N7ee606523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee606523fooEv,_ZTv0_n12_N7ee606523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee606523fooEv,_ZThn20_N7ee606523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60652 = { "ee60652", // class name
+ bases_ee60652, 4,
+ &(vtc_ee60652[0]), // expected_vtbl_contents
+ &(vtt_ee60652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee60652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1426,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70652 : virtual dd0652 {
+ int e;
+ virtual void foo(); // _ZN7ee706523fooEv
+ virtual void bar(); // _ZN7ee706523barEv
+ ~ee70652(); // tgen
+ ee70652(); // tgen
+};
+//SIG(1 ee70652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70652 ::foo(){vfunc_called(this, "_ZN7ee706523fooEv");}
+void ee70652 ::bar(){vfunc_called(this, "_ZN7ee706523barEv");}
+ee70652 ::~ee70652(){ note_dtor("ee70652", this);} // tgen
+ee70652 ::ee70652(){ note_ctor("ee70652", this);} // tgen
+
+static void Test_ee70652()
+{
+ extern Class_Descriptor cd_ee70652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee70652, buf);
+ ee70652 *dp, &lv = *(dp=new (buf) ee70652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee70652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd0652*), ABISELECT(40,24), "ee70652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd0652*), ABISELECT(16,8), "ee70652");
+ check_base_class_offset(lv, (cc652*)(dd0652*), ABISELECT(16,8), "ee70652");
+ check_base_class_offset(lv, (dd0652*), ABISELECT(16,8), "ee70652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70652.e");
+ test_class_info(&lv, &cd_ee70652);
+ dp->~ee70652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70652(Test_ee70652, "ee70652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee70652C1Ev();
+extern void _ZN7ee70652D1Ev();
+Name_Map name_map_ee70652[] = {
+ NSPAIR(_ZN7ee70652C1Ev),
+ NSPAIR(_ZN7ee70652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd0652;
+extern VTBL_ENTRY _ZTI6dd0652[];
+extern VTBL_ENTRY _ZTV6dd0652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0652[];
+static Base_Class bases_ee70652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70652[];
+extern void _ZN7ee706523fooEv();
+extern void _ZN7ee706523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee706523barEv,_ZTv0_n16_N7ee706523barEv)();
+extern void ABISELECT(_ZThn16_N7ee706523barEv,_ZThn8_N7ee706523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee706523fooEv,_ZTv0_n20_N7ee706523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee706523fooEv,_ZThn8_N7ee706523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee706523fooEv,_ZTv0_n12_N7ee706523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee706523fooEv,_ZThn24_N7ee706523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee706523barEv,_ZTv0_n16_N7ee706523barEv)();
+extern void ABISELECT(_ZThn40_N7ee706523barEv,_ZThn24_N7ee706523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70652[0]),
+ (VTBL_ENTRY)&_ZN7ee706523fooEv,
+ (VTBL_ENTRY)&_ZN7ee706523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706523barEv,_ZTv0_n16_N7ee706523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee706523fooEv,_ZTv0_n20_N7ee706523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee70652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee706523fooEv,_ZTv0_n12_N7ee706523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee706523barEv,_ZTv0_n16_N7ee706523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd0652__7ee70652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd0652__7ee70652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd0652__7ee70652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd0652__7ee70652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd0652__7ee70652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0652__7ee70652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee70652[] = {
+ {&(_ZTV7ee70652[4]), 4,19},
+ {&(_ZTV7ee70652[11]), 11,19},
+ {&(_ZTV7ee70652[17]), 17,19},
+ {&(_tg__ZTV6dd0652__7ee70652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd0652__7ee70652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd0652__7ee70652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd0652__7ee70652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd0652__7ee70652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd0652__7ee70652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70652[];
+extern VTBL_ENTRY _ZTV7ee70652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70652[];
+static VTBL_ENTRY alt_thunk_names1427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee706523fooEv,_ZTv0_n12_N7ee706523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee706523fooEv,_ZThn24_N7ee706523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee706523fooEv,_ZTv0_n20_N7ee706523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706523fooEv,_ZThn8_N7ee706523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee706523barEv,_ZTv0_n16_N7ee706523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee706523barEv,_ZThn24_N7ee706523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee706523barEv,_ZThn8_N7ee706523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70652 = { "ee70652", // class name
+ bases_ee70652, 4,
+ &(vtc_ee70652[0]), // expected_vtbl_contents
+ &(vtt_ee70652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee70652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1427,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1652 : virtual cc652 {
+ int d;
+ ~dd1652(); // tgen
+ dd1652(); // tgen
+};
+//SIG(-1 dd1652) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1652 ::~dd1652(){ note_dtor("dd1652", this);} // tgen
+dd1652 ::dd1652(){ note_ctor("dd1652", this);} // tgen
+
+static void Test_dd1652()
+{
+ extern Class_Descriptor cd_dd1652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd1652, buf);
+ dd1652 *dp, &lv = *(dp=new (buf) dd1652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd1652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,20), "dd1652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,8), "dd1652");
+ check_base_class_offset(lv, (cc652*), ABISELECT(16,8), "dd1652");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1652.d");
+ test_class_info(&lv, &cd_dd1652);
+ dp->~dd1652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1652(Test_dd1652, "dd1652", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd1652C1Ev();
+extern void _ZN6dd1652D1Ev();
+Name_Map name_map_dd1652[] = {
+ NSPAIR(_ZN6dd1652C1Ev),
+ NSPAIR(_ZN6dd1652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd1652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd1652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd1652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd1652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd1652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd1652[] = {
+ {&(_ZTV6dd1652[4]), 4,17},
+ {&(_ZTV6dd1652[9]), 9,17},
+ {&(_ZTV6dd1652[15]), 15,17},
+ {&(_tg__ZTV5cc652__6dd1652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd1652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd1652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd1652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static VTBL_ENTRY alt_thunk_names1428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1652 = { "dd1652", // class name
+ bases_dd1652, 3,
+ &(vtc_dd1652[0]), // expected_vtbl_contents
+ &(vtt_dd1652[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd1652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1652),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1428,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01652 : dd1652 {
+ int e;
+ ~ee01652(); // tgen
+ ee01652(); // tgen
+};
+//SIG(1 ee01652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01652 ::~ee01652(){ note_dtor("ee01652", this);} // tgen
+ee01652 ::ee01652(){ note_ctor("ee01652", this);} // tgen
+
+static void Test_ee01652()
+{
+ extern Class_Descriptor cd_ee01652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee01652, buf);
+ ee01652 *dp, &lv = *(dp=new (buf) ee01652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee01652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee01652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee01652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(16,12), "ee01652");
+ check_base_class_offset(lv, (dd1652*), 0, "ee01652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01652.e");
+ test_class_info(&lv, &cd_ee01652);
+ dp->~ee01652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01652(Test_ee01652, "ee01652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee01652C1Ev();
+extern void _ZN7ee01652D1Ev();
+Name_Map name_map_ee01652[] = {
+ NSPAIR(_ZN7ee01652C1Ev),
+ NSPAIR(_ZN7ee01652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee01652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01652[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee01652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee01652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee01652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee01652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee01652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee01652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee01652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee01652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee01652[] = {
+ {&(_ZTV7ee01652[4]), 4,17},
+ {&(_tg__ZTV6dd1652__7ee01652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee01652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee01652[4]), 4,6},
+ {&(_ZTV7ee01652[9]), 9,17},
+ {&(_ZTV7ee01652[15]), 15,17},
+ {&(_tg__ZTV5cc652__7ee01652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee01652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee01652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee01652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01652[];
+extern VTBL_ENTRY _ZTV7ee01652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01652[];
+static VTBL_ENTRY alt_thunk_names1429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01652 = { "ee01652", // class name
+ bases_ee01652, 4,
+ &(vtc_ee01652[0]), // expected_vtbl_contents
+ &(vtt_ee01652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee01652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1429,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11652 : virtual dd1652 {
+ int e;
+ ~ee11652(); // tgen
+ ee11652(); // tgen
+};
+//SIG(1 ee11652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11652 ::~ee11652(){ note_dtor("ee11652", this);} // tgen
+ee11652 ::ee11652(){ note_ctor("ee11652", this);} // tgen
+
+static void Test_ee11652()
+{
+ extern Class_Descriptor cd_ee11652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee11652, buf);
+ ee11652 *dp, &lv = *(dp=new (buf) ee11652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee11652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee11652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee11652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(32,16), "ee11652");
+ check_base_class_offset(lv, (dd1652*), ABISELECT(16,8), "ee11652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11652.e");
+ test_class_info(&lv, &cd_ee11652);
+ dp->~ee11652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11652(Test_ee11652, "ee11652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee11652C1Ev();
+extern void _ZN7ee11652D1Ev();
+Name_Map name_map_ee11652[] = {
+ NSPAIR(_ZN7ee11652C1Ev),
+ NSPAIR(_ZN7ee11652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee11652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11652[0]),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11652[0]),
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee11652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee11652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee11652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee11652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee11652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee11652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee11652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee11652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee11652[] = {
+ {&(_ZTV7ee11652[5]), 5,22},
+ {&(_ZTV7ee11652[9]), 9,22},
+ {&(_ZTV7ee11652[14]), 14,22},
+ {&(_ZTV7ee11652[20]), 20,22},
+ {&(_tg__ZTV6dd1652__7ee11652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee11652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee11652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee11652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee11652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee11652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee11652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11652[];
+extern VTBL_ENTRY _ZTV7ee11652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11652[];
+static VTBL_ENTRY alt_thunk_names1430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11652 = { "ee11652", // class name
+ bases_ee11652, 4,
+ &(vtc_ee11652[0]), // expected_vtbl_contents
+ &(vtt_ee11652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee11652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11652),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1430,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21652 : dd1652 {
+ int e;
+ virtual void foo(); // _ZN7ee216523fooEv
+ ~ee21652(); // tgen
+ ee21652(); // tgen
+};
+//SIG(1 ee21652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21652 ::foo(){vfunc_called(this, "_ZN7ee216523fooEv");}
+ee21652 ::~ee21652(){ note_dtor("ee21652", this);} // tgen
+ee21652 ::ee21652(){ note_ctor("ee21652", this);} // tgen
+
+static void Test_ee21652()
+{
+ extern Class_Descriptor cd_ee21652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee21652, buf);
+ ee21652 *dp, &lv = *(dp=new (buf) ee21652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee21652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee21652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee21652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(16,12), "ee21652");
+ check_base_class_offset(lv, (dd1652*), 0, "ee21652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21652.e");
+ test_class_info(&lv, &cd_ee21652);
+ dp->~ee21652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21652(Test_ee21652, "ee21652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee21652C1Ev();
+extern void _ZN7ee21652D1Ev();
+Name_Map name_map_ee21652[] = {
+ NSPAIR(_ZN7ee21652C1Ev),
+ NSPAIR(_ZN7ee21652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee21652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21652[];
+extern void _ZN7ee216523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee216523fooEv,_ZTv0_n20_N7ee216523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee216523fooEv,_ZThn12_N7ee216523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee216523fooEv,_ZTv0_n12_N7ee216523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee216523fooEv,_ZThn24_N7ee216523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21652[0]),
+ (VTBL_ENTRY)&_ZN7ee216523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee216523fooEv,_ZTv0_n20_N7ee216523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee21652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee216523fooEv,_ZTv0_n12_N7ee216523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee21652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee21652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee21652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee21652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee21652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee21652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee21652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee21652[] = {
+ {&(_ZTV7ee21652[4]), 4,18},
+ {&(_tg__ZTV6dd1652__7ee21652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee21652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee21652[4]), 4,6},
+ {&(_ZTV7ee21652[10]), 10,18},
+ {&(_ZTV7ee21652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee21652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee21652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee21652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee21652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21652[];
+extern VTBL_ENTRY _ZTV7ee21652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21652[];
+static VTBL_ENTRY alt_thunk_names1431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee216523fooEv,_ZTv0_n12_N7ee216523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee216523fooEv,_ZThn24_N7ee216523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee216523fooEv,_ZTv0_n20_N7ee216523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee216523fooEv,_ZThn12_N7ee216523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21652 = { "ee21652", // class name
+ bases_ee21652, 4,
+ &(vtc_ee21652[0]), // expected_vtbl_contents
+ &(vtt_ee21652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee21652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1431,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31652 : virtual dd1652 {
+ int e;
+ virtual void foo(); // _ZN7ee316523fooEv
+ ~ee31652(); // tgen
+ ee31652(); // tgen
+};
+//SIG(1 ee31652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31652 ::foo(){vfunc_called(this, "_ZN7ee316523fooEv");}
+ee31652 ::~ee31652(){ note_dtor("ee31652", this);} // tgen
+ee31652 ::ee31652(){ note_ctor("ee31652", this);} // tgen
+
+static void Test_ee31652()
+{
+ extern Class_Descriptor cd_ee31652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee31652, buf);
+ ee31652 *dp, &lv = *(dp=new (buf) ee31652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee31652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee31652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee31652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(32,16), "ee31652");
+ check_base_class_offset(lv, (dd1652*), ABISELECT(16,8), "ee31652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31652.e");
+ test_class_info(&lv, &cd_ee31652);
+ dp->~ee31652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31652(Test_ee31652, "ee31652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee31652C1Ev();
+extern void _ZN7ee31652D1Ev();
+Name_Map name_map_ee31652[] = {
+ NSPAIR(_ZN7ee31652C1Ev),
+ NSPAIR(_ZN7ee31652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee31652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31652[];
+extern void _ZN7ee316523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee316523fooEv,_ZTv0_n20_N7ee316523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee316523fooEv,_ZThn16_N7ee316523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee316523fooEv,_ZTv0_n12_N7ee316523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee316523fooEv,_ZThn28_N7ee316523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31652[0]),
+ (VTBL_ENTRY)&_ZN7ee316523fooEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31652[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee316523fooEv,_ZTv0_n20_N7ee316523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee31652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee316523fooEv,_ZTv0_n12_N7ee316523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee31652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee31652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee31652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee31652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee31652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee31652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee31652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee31652[] = {
+ {&(_ZTV7ee31652[5]), 5,23},
+ {&(_ZTV7ee31652[10]), 10,23},
+ {&(_ZTV7ee31652[15]), 15,23},
+ {&(_ZTV7ee31652[21]), 21,23},
+ {&(_tg__ZTV6dd1652__7ee31652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee31652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee31652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee31652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee31652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee31652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee31652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31652[];
+extern VTBL_ENTRY _ZTV7ee31652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31652[];
+static VTBL_ENTRY alt_thunk_names1432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee316523fooEv,_ZTv0_n12_N7ee316523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee316523fooEv,_ZThn28_N7ee316523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee316523fooEv,_ZTv0_n20_N7ee316523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee316523fooEv,_ZThn16_N7ee316523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31652 = { "ee31652", // class name
+ bases_ee31652, 4,
+ &(vtc_ee31652[0]), // expected_vtbl_contents
+ &(vtt_ee31652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee31652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31652),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41652 : dd1652 {
+ int e;
+ virtual void bar(); // _ZN7ee416523barEv
+ ~ee41652(); // tgen
+ ee41652(); // tgen
+};
+//SIG(1 ee41652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41652 ::bar(){vfunc_called(this, "_ZN7ee416523barEv");}
+ee41652 ::~ee41652(){ note_dtor("ee41652", this);} // tgen
+ee41652 ::ee41652(){ note_ctor("ee41652", this);} // tgen
+
+static void Test_ee41652()
+{
+ extern Class_Descriptor cd_ee41652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee41652, buf);
+ ee41652 *dp, &lv = *(dp=new (buf) ee41652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee41652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee41652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee41652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(16,12), "ee41652");
+ check_base_class_offset(lv, (dd1652*), 0, "ee41652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41652.e");
+ test_class_info(&lv, &cd_ee41652);
+ dp->~ee41652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41652(Test_ee41652, "ee41652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee41652C1Ev();
+extern void _ZN7ee41652D1Ev();
+Name_Map name_map_ee41652[] = {
+ NSPAIR(_ZN7ee41652C1Ev),
+ NSPAIR(_ZN7ee41652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee41652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41652[];
+extern void _ZN7ee416523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee416523barEv,_ZTv0_n16_N7ee416523barEv)();
+extern void ABISELECT(_ZThn16_N7ee416523barEv,_ZThn12_N7ee416523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee416523barEv,_ZTv0_n16_N7ee416523barEv)();
+extern void ABISELECT(_ZThn32_N7ee416523barEv,_ZThn24_N7ee416523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41652[0]),
+ (VTBL_ENTRY)&_ZN7ee416523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416523barEv,_ZTv0_n16_N7ee416523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee41652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee416523barEv,_ZTv0_n16_N7ee416523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee41652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee41652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee41652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee41652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee41652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee41652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee41652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee41652[] = {
+ {&(_ZTV7ee41652[4]), 4,18},
+ {&(_tg__ZTV6dd1652__7ee41652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee41652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee41652[4]), 4,6},
+ {&(_ZTV7ee41652[10]), 10,18},
+ {&(_ZTV7ee41652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee41652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee41652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee41652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee41652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41652[];
+extern VTBL_ENTRY _ZTV7ee41652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41652[];
+static VTBL_ENTRY alt_thunk_names1433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee416523barEv,_ZTv0_n16_N7ee416523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee416523barEv,_ZThn24_N7ee416523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee416523barEv,_ZThn12_N7ee416523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41652 = { "ee41652", // class name
+ bases_ee41652, 4,
+ &(vtc_ee41652[0]), // expected_vtbl_contents
+ &(vtt_ee41652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee41652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1433,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51652 : virtual dd1652 {
+ int e;
+ virtual void bar(); // _ZN7ee516523barEv
+ ~ee51652(); // tgen
+ ee51652(); // tgen
+};
+//SIG(1 ee51652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51652 ::bar(){vfunc_called(this, "_ZN7ee516523barEv");}
+ee51652 ::~ee51652(){ note_dtor("ee51652", this);} // tgen
+ee51652 ::ee51652(){ note_ctor("ee51652", this);} // tgen
+
+static void Test_ee51652()
+{
+ extern Class_Descriptor cd_ee51652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee51652, buf);
+ ee51652 *dp, &lv = *(dp=new (buf) ee51652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee51652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee51652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee51652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(32,16), "ee51652");
+ check_base_class_offset(lv, (dd1652*), ABISELECT(16,8), "ee51652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51652.e");
+ test_class_info(&lv, &cd_ee51652);
+ dp->~ee51652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51652(Test_ee51652, "ee51652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee51652C1Ev();
+extern void _ZN7ee51652D1Ev();
+Name_Map name_map_ee51652[] = {
+ NSPAIR(_ZN7ee51652C1Ev),
+ NSPAIR(_ZN7ee51652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee51652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51652[];
+extern void _ZN7ee516523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee516523barEv,_ZTv0_n16_N7ee516523barEv)();
+extern void ABISELECT(_ZThn32_N7ee516523barEv,_ZThn16_N7ee516523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee516523barEv,_ZTv0_n16_N7ee516523barEv)();
+extern void ABISELECT(_ZThn48_N7ee516523barEv,_ZThn28_N7ee516523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51652[0]),
+ (VTBL_ENTRY)&_ZN7ee516523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51652[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516523barEv,_ZTv0_n16_N7ee516523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee51652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee516523barEv,_ZTv0_n16_N7ee516523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee51652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee51652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee51652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee51652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee51652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee51652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee51652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee51652[] = {
+ {&(_ZTV7ee51652[5]), 5,23},
+ {&(_ZTV7ee51652[10]), 10,23},
+ {&(_ZTV7ee51652[15]), 15,23},
+ {&(_ZTV7ee51652[21]), 21,23},
+ {&(_tg__ZTV6dd1652__7ee51652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee51652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee51652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee51652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee51652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee51652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee51652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51652[];
+extern VTBL_ENTRY _ZTV7ee51652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51652[];
+static VTBL_ENTRY alt_thunk_names1434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee516523barEv,_ZTv0_n16_N7ee516523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee516523barEv,_ZThn28_N7ee516523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee516523barEv,_ZThn16_N7ee516523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51652 = { "ee51652", // class name
+ bases_ee51652, 4,
+ &(vtc_ee51652[0]), // expected_vtbl_contents
+ &(vtt_ee51652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee51652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51652),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1434,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61652 : dd1652 {
+ int e;
+ virtual void foo(); // _ZN7ee616523fooEv
+ virtual void bar(); // _ZN7ee616523barEv
+ ~ee61652(); // tgen
+ ee61652(); // tgen
+};
+//SIG(1 ee61652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61652 ::foo(){vfunc_called(this, "_ZN7ee616523fooEv");}
+void ee61652 ::bar(){vfunc_called(this, "_ZN7ee616523barEv");}
+ee61652 ::~ee61652(){ note_dtor("ee61652", this);} // tgen
+ee61652 ::ee61652(){ note_ctor("ee61652", this);} // tgen
+
+static void Test_ee61652()
+{
+ extern Class_Descriptor cd_ee61652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee61652, buf);
+ ee61652 *dp, &lv = *(dp=new (buf) ee61652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee61652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee61652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee61652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(16,12), "ee61652");
+ check_base_class_offset(lv, (dd1652*), 0, "ee61652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61652.e");
+ test_class_info(&lv, &cd_ee61652);
+ dp->~ee61652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61652(Test_ee61652, "ee61652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee61652C1Ev();
+extern void _ZN7ee61652D1Ev();
+Name_Map name_map_ee61652[] = {
+ NSPAIR(_ZN7ee61652C1Ev),
+ NSPAIR(_ZN7ee61652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee61652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61652[];
+extern void _ZN7ee616523fooEv();
+extern void _ZN7ee616523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee616523barEv,_ZTv0_n16_N7ee616523barEv)();
+extern void ABISELECT(_ZThn16_N7ee616523barEv,_ZThn12_N7ee616523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee616523fooEv,_ZTv0_n20_N7ee616523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee616523fooEv,_ZThn12_N7ee616523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee616523fooEv,_ZTv0_n12_N7ee616523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee616523fooEv,_ZThn24_N7ee616523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee616523barEv,_ZTv0_n16_N7ee616523barEv)();
+extern void ABISELECT(_ZThn32_N7ee616523barEv,_ZThn24_N7ee616523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61652[0]),
+ (VTBL_ENTRY)&_ZN7ee616523fooEv,
+ (VTBL_ENTRY)&_ZN7ee616523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616523barEv,_ZTv0_n16_N7ee616523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee616523fooEv,_ZTv0_n20_N7ee616523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee61652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee616523fooEv,_ZTv0_n12_N7ee616523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee616523barEv,_ZTv0_n16_N7ee616523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee61652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee61652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee61652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee61652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee61652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee61652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee61652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee61652[] = {
+ {&(_ZTV7ee61652[4]), 4,19},
+ {&(_tg__ZTV6dd1652__7ee61652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee61652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee61652[4]), 4,6},
+ {&(_ZTV7ee61652[11]), 11,19},
+ {&(_ZTV7ee61652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee61652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee61652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee61652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee61652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61652[];
+extern VTBL_ENTRY _ZTV7ee61652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61652[];
+static VTBL_ENTRY alt_thunk_names1435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee616523fooEv,_ZTv0_n12_N7ee616523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee616523fooEv,_ZThn24_N7ee616523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee616523fooEv,_ZTv0_n20_N7ee616523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616523fooEv,_ZThn12_N7ee616523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee616523barEv,_ZTv0_n16_N7ee616523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee616523barEv,_ZThn24_N7ee616523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee616523barEv,_ZThn12_N7ee616523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61652 = { "ee61652", // class name
+ bases_ee61652, 4,
+ &(vtc_ee61652[0]), // expected_vtbl_contents
+ &(vtt_ee61652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee61652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1435,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71652 : virtual dd1652 {
+ int e;
+ virtual void foo(); // _ZN7ee716523fooEv
+ virtual void bar(); // _ZN7ee716523barEv
+ ~ee71652(); // tgen
+ ee71652(); // tgen
+};
+//SIG(1 ee71652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71652 ::foo(){vfunc_called(this, "_ZN7ee716523fooEv");}
+void ee71652 ::bar(){vfunc_called(this, "_ZN7ee716523barEv");}
+ee71652 ::~ee71652(){ note_dtor("ee71652", this);} // tgen
+ee71652 ::ee71652(){ note_ctor("ee71652", this);} // tgen
+
+static void Test_ee71652()
+{
+ extern Class_Descriptor cd_ee71652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee71652, buf);
+ ee71652 *dp, &lv = *(dp=new (buf) ee71652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee71652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee71652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee71652");
+ check_base_class_offset(lv, (cc652*)(dd1652*), ABISELECT(32,16), "ee71652");
+ check_base_class_offset(lv, (dd1652*), ABISELECT(16,8), "ee71652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71652.e");
+ test_class_info(&lv, &cd_ee71652);
+ dp->~ee71652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71652(Test_ee71652, "ee71652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee71652C1Ev();
+extern void _ZN7ee71652D1Ev();
+Name_Map name_map_ee71652[] = {
+ NSPAIR(_ZN7ee71652C1Ev),
+ NSPAIR(_ZN7ee71652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd1652;
+extern VTBL_ENTRY _ZTI6dd1652[];
+extern VTBL_ENTRY _ZTV6dd1652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1652[];
+static Base_Class bases_ee71652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1652, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71652[];
+extern void _ZN7ee716523fooEv();
+extern void _ZN7ee716523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee716523barEv,_ZTv0_n16_N7ee716523barEv)();
+extern void ABISELECT(_ZThn32_N7ee716523barEv,_ZThn16_N7ee716523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee716523fooEv,_ZTv0_n20_N7ee716523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee716523fooEv,_ZThn16_N7ee716523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee716523fooEv,_ZTv0_n12_N7ee716523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee716523fooEv,_ZThn28_N7ee716523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee716523barEv,_ZTv0_n16_N7ee716523barEv)();
+extern void ABISELECT(_ZThn48_N7ee716523barEv,_ZThn28_N7ee716523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71652[0]),
+ (VTBL_ENTRY)&_ZN7ee716523fooEv,
+ (VTBL_ENTRY)&_ZN7ee716523barEv,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71652[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716523barEv,_ZTv0_n16_N7ee716523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee716523fooEv,_ZTv0_n20_N7ee716523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee71652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee716523fooEv,_ZTv0_n12_N7ee716523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee716523barEv,_ZTv0_n16_N7ee716523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71652[];
+static VTBL_ENTRY _tg__ZTV6dd1652__7ee71652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd1652__7ee71652[] = {
+ 0,
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1652__7ee71652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee71652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee71652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee71652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee71652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee71652[] = {
+ {&(_ZTV7ee71652[5]), 5,24},
+ {&(_ZTV7ee71652[11]), 11,24},
+ {&(_ZTV7ee71652[16]), 16,24},
+ {&(_ZTV7ee71652[22]), 22,24},
+ {&(_tg__ZTV6dd1652__7ee71652[4]), 4,4},
+ {&(_tg__ZTV5cc652__6dd1652__7ee71652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd1652__7ee71652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee71652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee71652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee71652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee71652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71652[];
+extern VTBL_ENTRY _ZTV7ee71652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71652[];
+static VTBL_ENTRY alt_thunk_names1436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee716523fooEv,_ZTv0_n12_N7ee716523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee716523fooEv,_ZThn28_N7ee716523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee716523fooEv,_ZTv0_n20_N7ee716523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716523fooEv,_ZThn16_N7ee716523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee716523barEv,_ZTv0_n16_N7ee716523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee716523barEv,_ZThn28_N7ee716523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee716523barEv,_ZThn16_N7ee716523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71652 = { "ee71652", // class name
+ bases_ee71652, 4,
+ &(vtc_ee71652[0]), // expected_vtbl_contents
+ &(vtt_ee71652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee71652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71652),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1436,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2652 : cc652 {
+ int d;
+ virtual void foo(); // _ZN6dd26523fooEv
+ ~dd2652(); // tgen
+ dd2652(); // tgen
+};
+//SIG(-1 dd2652) C1{ BC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2652 ::foo(){vfunc_called(this, "_ZN6dd26523fooEv");}
+dd2652 ::~dd2652(){ note_dtor("dd2652", this);} // tgen
+dd2652 ::dd2652(){ note_ctor("dd2652", this);} // tgen
+
+static void Test_dd2652()
+{
+ extern Class_Descriptor cd_dd2652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd2652, buf);
+ dd2652 *dp, &lv = *(dp=new (buf) dd2652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd2652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(24,16), "dd2652");
+ check_base_class_offset(lv, (bb52*)(cc652*), 0, "dd2652");
+ check_base_class_offset(lv, (cc652*), 0, "dd2652");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd2652.d");
+ test_class_info(&lv, &cd_dd2652);
+ dp->~dd2652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2652(Test_dd2652, "dd2652", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd2652C1Ev();
+extern void _ZN6dd2652D1Ev();
+Name_Map name_map_dd2652[] = {
+ NSPAIR(_ZN6dd2652C1Ev),
+ NSPAIR(_ZN6dd2652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd2652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd2652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd2652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd2652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd2652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd2652[] = {
+ {&(_ZTV6dd2652[3]), 3,11},
+ {&(_tg__ZTV5cc652__6dd2652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd2652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd2652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd2652[4]), 4,6},
+ {&(_ZTV6dd2652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static VTBL_ENTRY alt_thunk_names1437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2652 = { "dd2652", // class name
+ bases_dd2652, 3,
+ &(vtc_dd2652[0]), // expected_vtbl_contents
+ &(vtt_dd2652[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd2652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2652),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1437,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02652 : dd2652 {
+ int e;
+ ~ee02652(); // tgen
+ ee02652(); // tgen
+};
+//SIG(1 ee02652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02652 ::~ee02652(){ note_dtor("ee02652", this);} // tgen
+ee02652 ::ee02652(){ note_ctor("ee02652", this);} // tgen
+
+static void Test_ee02652()
+{
+ extern Class_Descriptor cd_ee02652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee02652, buf);
+ ee02652 *dp, &lv = *(dp=new (buf) ee02652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee02652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(24,20), "ee02652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), 0, "ee02652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), 0, "ee02652");
+ check_base_class_offset(lv, (dd2652*), 0, "ee02652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee02652.e");
+ test_class_info(&lv, &cd_ee02652);
+ dp->~ee02652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02652(Test_ee02652, "ee02652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee02652C1Ev();
+extern void _ZN7ee02652D1Ev();
+Name_Map name_map_ee02652[] = {
+ NSPAIR(_ZN7ee02652C1Ev),
+ NSPAIR(_ZN7ee02652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee02652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee02652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee02652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee02652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee02652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee02652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee02652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee02652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee02652[] = {
+ {&(_ZTV7ee02652[3]), 3,11},
+ {&(_tg__ZTV6dd2652__7ee02652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee02652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee02652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee02652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee02652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee02652[4]), 4,6},
+ {&(_ZTV7ee02652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee02652[];
+extern VTBL_ENTRY _ZTV7ee02652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02652[];
+static VTBL_ENTRY alt_thunk_names1438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02652 = { "ee02652", // class name
+ bases_ee02652, 4,
+ &(vtc_ee02652[0]), // expected_vtbl_contents
+ &(vtt_ee02652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee02652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1438,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12652 : virtual dd2652 {
+ int e;
+ ~ee12652(); // tgen
+ ee12652(); // tgen
+};
+//SIG(1 ee12652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12652 ::~ee12652(){ note_dtor("ee12652", this);} // tgen
+ee12652 ::ee12652(){ note_ctor("ee12652", this);} // tgen
+
+static void Test_ee12652()
+{
+ extern Class_Descriptor cd_ee12652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee12652, buf);
+ ee12652 *dp, &lv = *(dp=new (buf) ee12652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee12652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(40,24), "ee12652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), ABISELECT(16,8), "ee12652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), ABISELECT(16,8), "ee12652");
+ check_base_class_offset(lv, (dd2652*), ABISELECT(16,8), "ee12652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12652.e");
+ test_class_info(&lv, &cd_ee12652);
+ dp->~ee12652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12652(Test_ee12652, "ee12652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee12652C1Ev();
+extern void _ZN7ee12652D1Ev();
+Name_Map name_map_ee12652[] = {
+ NSPAIR(_ZN7ee12652C1Ev),
+ NSPAIR(_ZN7ee12652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee12652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12652[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee12652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee12652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee12652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee12652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee12652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee12652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee12652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee12652[] = {
+ {&(_ZTV7ee12652[4]), 4,17},
+ {&(_ZTV7ee12652[9]), 9,17},
+ {&(_ZTV7ee12652[15]), 15,17},
+ {&(_tg__ZTV6dd2652__7ee12652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee12652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee12652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee12652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee12652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee12652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12652[];
+extern VTBL_ENTRY _ZTV7ee12652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12652[];
+static VTBL_ENTRY alt_thunk_names1439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12652 = { "ee12652", // class name
+ bases_ee12652, 4,
+ &(vtc_ee12652[0]), // expected_vtbl_contents
+ &(vtt_ee12652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee12652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1439,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22652 : dd2652 {
+ int e;
+ virtual void foo(); // _ZN7ee226523fooEv
+ ~ee22652(); // tgen
+ ee22652(); // tgen
+};
+//SIG(1 ee22652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22652 ::foo(){vfunc_called(this, "_ZN7ee226523fooEv");}
+ee22652 ::~ee22652(){ note_dtor("ee22652", this);} // tgen
+ee22652 ::ee22652(){ note_ctor("ee22652", this);} // tgen
+
+static void Test_ee22652()
+{
+ extern Class_Descriptor cd_ee22652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee22652, buf);
+ ee22652 *dp, &lv = *(dp=new (buf) ee22652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee22652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(24,20), "ee22652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), 0, "ee22652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), 0, "ee22652");
+ check_base_class_offset(lv, (dd2652*), 0, "ee22652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee22652.e");
+ test_class_info(&lv, &cd_ee22652);
+ dp->~ee22652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22652(Test_ee22652, "ee22652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee22652C1Ev();
+extern void _ZN7ee22652D1Ev();
+Name_Map name_map_ee22652[] = {
+ NSPAIR(_ZN7ee22652C1Ev),
+ NSPAIR(_ZN7ee22652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee22652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN7ee226523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee226523fooEv,_ZTv0_n12_N7ee226523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee226523fooEv,_ZThn20_N7ee226523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN7ee226523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee22652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee226523fooEv,_ZTv0_n12_N7ee226523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee22652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee22652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee22652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee22652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee22652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee22652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee22652[] = {
+ {&(_ZTV7ee22652[3]), 3,11},
+ {&(_tg__ZTV6dd2652__7ee22652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee22652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee22652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee22652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee22652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee22652[4]), 4,6},
+ {&(_ZTV7ee22652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee22652[];
+extern VTBL_ENTRY _ZTV7ee22652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22652[];
+static VTBL_ENTRY alt_thunk_names1440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee226523fooEv,_ZTv0_n12_N7ee226523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee226523fooEv,_ZThn20_N7ee226523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22652 = { "ee22652", // class name
+ bases_ee22652, 4,
+ &(vtc_ee22652[0]), // expected_vtbl_contents
+ &(vtt_ee22652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee22652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1440,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32652 : virtual dd2652 {
+ int e;
+ virtual void foo(); // _ZN7ee326523fooEv
+ ~ee32652(); // tgen
+ ee32652(); // tgen
+};
+//SIG(1 ee32652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32652 ::foo(){vfunc_called(this, "_ZN7ee326523fooEv");}
+ee32652 ::~ee32652(){ note_dtor("ee32652", this);} // tgen
+ee32652 ::ee32652(){ note_ctor("ee32652", this);} // tgen
+
+static void Test_ee32652()
+{
+ extern Class_Descriptor cd_ee32652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee32652, buf);
+ ee32652 *dp, &lv = *(dp=new (buf) ee32652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee32652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(40,24), "ee32652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), ABISELECT(16,8), "ee32652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), ABISELECT(16,8), "ee32652");
+ check_base_class_offset(lv, (dd2652*), ABISELECT(16,8), "ee32652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32652.e");
+ test_class_info(&lv, &cd_ee32652);
+ dp->~ee32652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32652(Test_ee32652, "ee32652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee32652C1Ev();
+extern void _ZN7ee32652D1Ev();
+Name_Map name_map_ee32652[] = {
+ NSPAIR(_ZN7ee32652C1Ev),
+ NSPAIR(_ZN7ee32652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee32652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32652[];
+extern void _ZN7ee326523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee326523fooEv,_ZTv0_n20_N7ee326523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee326523fooEv,_ZThn8_N7ee326523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee326523fooEv,_ZTv0_n12_N7ee326523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee326523fooEv,_ZThn24_N7ee326523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32652[0]),
+ (VTBL_ENTRY)&_ZN7ee326523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee326523fooEv,_ZTv0_n20_N7ee326523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee32652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee326523fooEv,_ZTv0_n12_N7ee326523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee32652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee32652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee32652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee32652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee32652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee32652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee32652[] = {
+ {&(_ZTV7ee32652[4]), 4,18},
+ {&(_ZTV7ee32652[10]), 10,18},
+ {&(_ZTV7ee32652[16]), 16,18},
+ {&(_tg__ZTV6dd2652__7ee32652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee32652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee32652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee32652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee32652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee32652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32652[];
+extern VTBL_ENTRY _ZTV7ee32652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32652[];
+static VTBL_ENTRY alt_thunk_names1441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee326523fooEv,_ZTv0_n12_N7ee326523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee326523fooEv,_ZThn24_N7ee326523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee326523fooEv,_ZTv0_n20_N7ee326523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee326523fooEv,_ZThn8_N7ee326523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32652 = { "ee32652", // class name
+ bases_ee32652, 4,
+ &(vtc_ee32652[0]), // expected_vtbl_contents
+ &(vtt_ee32652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee32652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42652 : dd2652 {
+ int e;
+ virtual void bar(); // _ZN7ee426523barEv
+ ~ee42652(); // tgen
+ ee42652(); // tgen
+};
+//SIG(1 ee42652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42652 ::bar(){vfunc_called(this, "_ZN7ee426523barEv");}
+ee42652 ::~ee42652(){ note_dtor("ee42652", this);} // tgen
+ee42652 ::ee42652(){ note_ctor("ee42652", this);} // tgen
+
+static void Test_ee42652()
+{
+ extern Class_Descriptor cd_ee42652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee42652, buf);
+ ee42652 *dp, &lv = *(dp=new (buf) ee42652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee42652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(24,20), "ee42652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), 0, "ee42652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), 0, "ee42652");
+ check_base_class_offset(lv, (dd2652*), 0, "ee42652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee42652.e");
+ test_class_info(&lv, &cd_ee42652);
+ dp->~ee42652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42652(Test_ee42652, "ee42652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee42652C1Ev();
+extern void _ZN7ee42652D1Ev();
+Name_Map name_map_ee42652[] = {
+ NSPAIR(_ZN7ee42652C1Ev),
+ NSPAIR(_ZN7ee42652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee42652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42652[];
+extern void _ZN7ee426523barEv();
+extern void _ZN6dd26523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee426523barEv,_ZTv0_n16_N7ee426523barEv)();
+extern void ABISELECT(_ZThn24_N7ee426523barEv,_ZThn20_N7ee426523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42652[0]),
+ (VTBL_ENTRY)&_ZN7ee426523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee42652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee426523barEv,_ZTv0_n16_N7ee426523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee42652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee42652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee42652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee42652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee42652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee42652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee42652[] = {
+ {&(_ZTV7ee42652[3]), 3,11},
+ {&(_tg__ZTV6dd2652__7ee42652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee42652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee42652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee42652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee42652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee42652[4]), 4,6},
+ {&(_ZTV7ee42652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee42652[];
+extern VTBL_ENTRY _ZTV7ee42652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42652[];
+static VTBL_ENTRY alt_thunk_names1442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee426523barEv,_ZTv0_n16_N7ee426523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee426523barEv,_ZThn20_N7ee426523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42652 = { "ee42652", // class name
+ bases_ee42652, 4,
+ &(vtc_ee42652[0]), // expected_vtbl_contents
+ &(vtt_ee42652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee42652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1442,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52652 : virtual dd2652 {
+ int e;
+ virtual void bar(); // _ZN7ee526523barEv
+ ~ee52652(); // tgen
+ ee52652(); // tgen
+};
+//SIG(1 ee52652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52652 ::bar(){vfunc_called(this, "_ZN7ee526523barEv");}
+ee52652 ::~ee52652(){ note_dtor("ee52652", this);} // tgen
+ee52652 ::ee52652(){ note_ctor("ee52652", this);} // tgen
+
+static void Test_ee52652()
+{
+ extern Class_Descriptor cd_ee52652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee52652, buf);
+ ee52652 *dp, &lv = *(dp=new (buf) ee52652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee52652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(40,24), "ee52652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), ABISELECT(16,8), "ee52652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), ABISELECT(16,8), "ee52652");
+ check_base_class_offset(lv, (dd2652*), ABISELECT(16,8), "ee52652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52652.e");
+ test_class_info(&lv, &cd_ee52652);
+ dp->~ee52652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52652(Test_ee52652, "ee52652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee52652C1Ev();
+extern void _ZN7ee52652D1Ev();
+Name_Map name_map_ee52652[] = {
+ NSPAIR(_ZN7ee52652C1Ev),
+ NSPAIR(_ZN7ee52652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee52652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52652[];
+extern void _ZN7ee526523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee526523barEv,_ZTv0_n16_N7ee526523barEv)();
+extern void ABISELECT(_ZThn16_N7ee526523barEv,_ZThn8_N7ee526523barEv)() __attribute__((weak));
+extern void _ZN6dd26523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee526523barEv,_ZTv0_n16_N7ee526523barEv)();
+extern void ABISELECT(_ZThn40_N7ee526523barEv,_ZThn24_N7ee526523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52652[0]),
+ (VTBL_ENTRY)&_ZN7ee526523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526523barEv,_ZTv0_n16_N7ee526523barEv),
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee52652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee526523barEv,_ZTv0_n16_N7ee526523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee52652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee52652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee52652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee52652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee52652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee52652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee52652[] = {
+ {&(_ZTV7ee52652[4]), 4,18},
+ {&(_ZTV7ee52652[10]), 10,18},
+ {&(_ZTV7ee52652[16]), 16,18},
+ {&(_tg__ZTV6dd2652__7ee52652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee52652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee52652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee52652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee52652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee52652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52652[];
+extern VTBL_ENTRY _ZTV7ee52652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52652[];
+static VTBL_ENTRY alt_thunk_names1443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee526523barEv,_ZTv0_n16_N7ee526523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee526523barEv,_ZThn24_N7ee526523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee526523barEv,_ZThn8_N7ee526523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52652 = { "ee52652", // class name
+ bases_ee52652, 4,
+ &(vtc_ee52652[0]), // expected_vtbl_contents
+ &(vtt_ee52652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee52652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1443,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62652 : dd2652 {
+ int e;
+ virtual void foo(); // _ZN7ee626523fooEv
+ virtual void bar(); // _ZN7ee626523barEv
+ ~ee62652(); // tgen
+ ee62652(); // tgen
+};
+//SIG(1 ee62652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62652 ::foo(){vfunc_called(this, "_ZN7ee626523fooEv");}
+void ee62652 ::bar(){vfunc_called(this, "_ZN7ee626523barEv");}
+ee62652 ::~ee62652(){ note_dtor("ee62652", this);} // tgen
+ee62652 ::ee62652(){ note_ctor("ee62652", this);} // tgen
+
+static void Test_ee62652()
+{
+ extern Class_Descriptor cd_ee62652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee62652, buf);
+ ee62652 *dp, &lv = *(dp=new (buf) ee62652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee62652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(24,20), "ee62652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), 0, "ee62652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), 0, "ee62652");
+ check_base_class_offset(lv, (dd2652*), 0, "ee62652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee62652.e");
+ test_class_info(&lv, &cd_ee62652);
+ dp->~ee62652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62652(Test_ee62652, "ee62652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee62652C1Ev();
+extern void _ZN7ee62652D1Ev();
+Name_Map name_map_ee62652[] = {
+ NSPAIR(_ZN7ee62652C1Ev),
+ NSPAIR(_ZN7ee62652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee62652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62652[];
+extern void _ZN7ee626523barEv();
+extern void _ZN7ee626523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee626523fooEv,_ZTv0_n12_N7ee626523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee626523fooEv,_ZThn20_N7ee626523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee626523barEv,_ZTv0_n16_N7ee626523barEv)();
+extern void ABISELECT(_ZThn24_N7ee626523barEv,_ZThn20_N7ee626523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62652[0]),
+ (VTBL_ENTRY)&_ZN7ee626523barEv,
+ (VTBL_ENTRY)&_ZN7ee626523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee62652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee626523fooEv,_ZTv0_n12_N7ee626523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee626523barEv,_ZTv0_n16_N7ee626523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee62652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee62652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee62652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee62652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee62652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee62652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee62652[] = {
+ {&(_ZTV7ee62652[3]), 3,11},
+ {&(_tg__ZTV6dd2652__7ee62652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee62652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee62652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee62652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee62652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee62652[4]), 4,6},
+ {&(_ZTV7ee62652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee62652[];
+extern VTBL_ENTRY _ZTV7ee62652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62652[];
+static VTBL_ENTRY alt_thunk_names1444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn20_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee626523barEv,_ZTv0_n16_N7ee626523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee626523barEv,_ZThn20_N7ee626523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee626523fooEv,_ZTv0_n12_N7ee626523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee626523fooEv,_ZThn20_N7ee626523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62652 = { "ee62652", // class name
+ bases_ee62652, 4,
+ &(vtc_ee62652[0]), // expected_vtbl_contents
+ &(vtt_ee62652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee62652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1444,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72652 : virtual dd2652 {
+ int e;
+ virtual void foo(); // _ZN7ee726523fooEv
+ virtual void bar(); // _ZN7ee726523barEv
+ ~ee72652(); // tgen
+ ee72652(); // tgen
+};
+//SIG(1 ee72652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72652 ::foo(){vfunc_called(this, "_ZN7ee726523fooEv");}
+void ee72652 ::bar(){vfunc_called(this, "_ZN7ee726523barEv");}
+ee72652 ::~ee72652(){ note_dtor("ee72652", this);} // tgen
+ee72652 ::ee72652(){ note_ctor("ee72652", this);} // tgen
+
+static void Test_ee72652()
+{
+ extern Class_Descriptor cd_ee72652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee72652, buf);
+ ee72652 *dp, &lv = *(dp=new (buf) ee72652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee72652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd2652*), ABISELECT(40,24), "ee72652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd2652*), ABISELECT(16,8), "ee72652");
+ check_base_class_offset(lv, (cc652*)(dd2652*), ABISELECT(16,8), "ee72652");
+ check_base_class_offset(lv, (dd2652*), ABISELECT(16,8), "ee72652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72652.e");
+ test_class_info(&lv, &cd_ee72652);
+ dp->~ee72652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72652(Test_ee72652, "ee72652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee72652C1Ev();
+extern void _ZN7ee72652D1Ev();
+Name_Map name_map_ee72652[] = {
+ NSPAIR(_ZN7ee72652C1Ev),
+ NSPAIR(_ZN7ee72652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd2652;
+extern VTBL_ENTRY _ZTI6dd2652[];
+extern VTBL_ENTRY _ZTV6dd2652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2652[];
+static Base_Class bases_ee72652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72652[];
+extern void _ZN7ee726523fooEv();
+extern void _ZN7ee726523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee726523barEv,_ZTv0_n16_N7ee726523barEv)();
+extern void ABISELECT(_ZThn16_N7ee726523barEv,_ZThn8_N7ee726523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee726523fooEv,_ZTv0_n20_N7ee726523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee726523fooEv,_ZThn8_N7ee726523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee726523fooEv,_ZTv0_n12_N7ee726523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee726523fooEv,_ZThn24_N7ee726523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee726523barEv,_ZTv0_n16_N7ee726523barEv)();
+extern void ABISELECT(_ZThn40_N7ee726523barEv,_ZThn24_N7ee726523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72652[0]),
+ (VTBL_ENTRY)&_ZN7ee726523fooEv,
+ (VTBL_ENTRY)&_ZN7ee726523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726523barEv,_ZTv0_n16_N7ee726523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee726523fooEv,_ZTv0_n20_N7ee726523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee72652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee726523fooEv,_ZTv0_n12_N7ee726523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee726523barEv,_ZTv0_n16_N7ee726523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN6dd26523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd2652__7ee72652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN6dd26523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd2652__7ee72652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd2652__7ee72652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd2652__7ee72652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd2652__7ee72652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2652__7ee72652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee72652[] = {
+ {&(_ZTV7ee72652[4]), 4,19},
+ {&(_ZTV7ee72652[11]), 11,19},
+ {&(_ZTV7ee72652[17]), 17,19},
+ {&(_tg__ZTV6dd2652__7ee72652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd2652__7ee72652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd2652__7ee72652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd2652__7ee72652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd2652__7ee72652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd2652__7ee72652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72652[];
+extern VTBL_ENTRY _ZTV7ee72652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72652[];
+static VTBL_ENTRY alt_thunk_names1445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd26523fooEv,_ZTv0_n12_N6dd26523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd26523fooEv,_ZThn16_N6dd26523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee726523fooEv,_ZTv0_n12_N7ee726523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee726523fooEv,_ZThn24_N7ee726523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee726523fooEv,_ZTv0_n20_N7ee726523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726523fooEv,_ZThn8_N7ee726523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee726523barEv,_ZTv0_n16_N7ee726523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee726523barEv,_ZThn24_N7ee726523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee726523barEv,_ZThn8_N7ee726523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72652 = { "ee72652", // class name
+ bases_ee72652, 4,
+ &(vtc_ee72652[0]), // expected_vtbl_contents
+ &(vtt_ee72652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee72652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1445,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3652 : virtual cc652 {
+ int d;
+ virtual void foo(); // _ZN6dd36523fooEv
+ ~dd3652(); // tgen
+ dd3652(); // tgen
+};
+//SIG(-1 dd3652) C1{ VBC2{ BC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3652 ::foo(){vfunc_called(this, "_ZN6dd36523fooEv");}
+dd3652 ::~dd3652(){ note_dtor("dd3652", this);} // tgen
+dd3652 ::dd3652(){ note_ctor("dd3652", this);} // tgen
+
+static void Test_dd3652()
+{
+ extern Class_Descriptor cd_dd3652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd3652, buf);
+ dd3652 *dp, &lv = *(dp=new (buf) dd3652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd3652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,20), "dd3652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,8), "dd3652");
+ check_base_class_offset(lv, (cc652*), ABISELECT(16,8), "dd3652");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3652.d");
+ test_class_info(&lv, &cd_dd3652);
+ dp->~dd3652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3652(Test_dd3652, "dd3652", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd3652C1Ev();
+extern void _ZN6dd3652D1Ev();
+Name_Map name_map_dd3652[] = {
+ NSPAIR(_ZN6dd3652C1Ev),
+ NSPAIR(_ZN6dd3652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd3652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd3652[];
+extern void _ZN6dd36523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd3652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd3652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd3652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd3652[] = {
+ {&(_ZTV6dd3652[4]), 4,18},
+ {&(_ZTV6dd3652[10]), 10,18},
+ {&(_ZTV6dd3652[16]), 16,18},
+ {&(_tg__ZTV5cc652__6dd3652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd3652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd3652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd3652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static VTBL_ENTRY alt_thunk_names1446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3652 = { "dd3652", // class name
+ bases_dd3652, 3,
+ &(vtc_dd3652[0]), // expected_vtbl_contents
+ &(vtt_dd3652[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd3652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3652),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1446,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03652 : dd3652 {
+ int e;
+ ~ee03652(); // tgen
+ ee03652(); // tgen
+};
+//SIG(1 ee03652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03652 ::~ee03652(){ note_dtor("ee03652", this);} // tgen
+ee03652 ::ee03652(){ note_ctor("ee03652", this);} // tgen
+
+static void Test_ee03652()
+{
+ extern Class_Descriptor cd_ee03652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee03652, buf);
+ ee03652 *dp, &lv = *(dp=new (buf) ee03652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee03652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee03652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee03652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(16,12), "ee03652");
+ check_base_class_offset(lv, (dd3652*), 0, "ee03652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03652.e");
+ test_class_info(&lv, &cd_ee03652);
+ dp->~ee03652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03652(Test_ee03652, "ee03652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee03652C1Ev();
+extern void _ZN7ee03652D1Ev();
+Name_Map name_map_ee03652[] = {
+ NSPAIR(_ZN7ee03652C1Ev),
+ NSPAIR(_ZN7ee03652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee03652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03652[];
+extern void _ZN6dd36523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee03652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee03652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee03652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee03652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee03652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee03652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee03652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee03652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee03652[] = {
+ {&(_ZTV7ee03652[4]), 4,18},
+ {&(_tg__ZTV6dd3652__7ee03652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee03652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee03652[4]), 4,6},
+ {&(_ZTV7ee03652[10]), 10,18},
+ {&(_ZTV7ee03652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee03652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee03652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee03652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee03652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03652[];
+extern VTBL_ENTRY _ZTV7ee03652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03652[];
+static VTBL_ENTRY alt_thunk_names1447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03652 = { "ee03652", // class name
+ bases_ee03652, 4,
+ &(vtc_ee03652[0]), // expected_vtbl_contents
+ &(vtt_ee03652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee03652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1447,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13652 : virtual dd3652 {
+ int e;
+ ~ee13652(); // tgen
+ ee13652(); // tgen
+};
+//SIG(1 ee13652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13652 ::~ee13652(){ note_dtor("ee13652", this);} // tgen
+ee13652 ::ee13652(){ note_ctor("ee13652", this);} // tgen
+
+static void Test_ee13652()
+{
+ extern Class_Descriptor cd_ee13652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee13652, buf);
+ ee13652 *dp, &lv = *(dp=new (buf) ee13652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee13652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee13652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee13652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(32,16), "ee13652");
+ check_base_class_offset(lv, (dd3652*), ABISELECT(16,8), "ee13652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13652.e");
+ test_class_info(&lv, &cd_ee13652);
+ dp->~ee13652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13652(Test_ee13652, "ee13652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee13652C1Ev();
+extern void _ZN7ee13652D1Ev();
+Name_Map name_map_ee13652[] = {
+ NSPAIR(_ZN7ee13652C1Ev),
+ NSPAIR(_ZN7ee13652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee13652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13652[];
+extern void _ZN6dd36523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13652[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee13652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee13652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee13652[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee13652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee13652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee13652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee13652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee13652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee13652[] = {
+ {&(_ZTV7ee13652[5]), 5,24},
+ {&(_ZTV7ee13652[10]), 10,24},
+ {&(_ZTV7ee13652[16]), 16,24},
+ {&(_ZTV7ee13652[22]), 22,24},
+ {&(_tg__ZTV6dd3652__7ee13652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee13652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee13652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee13652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee13652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee13652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee13652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13652[];
+extern VTBL_ENTRY _ZTV7ee13652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13652[];
+static VTBL_ENTRY alt_thunk_names1448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13652 = { "ee13652", // class name
+ bases_ee13652, 4,
+ &(vtc_ee13652[0]), // expected_vtbl_contents
+ &(vtt_ee13652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee13652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13652),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1448,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23652 : dd3652 {
+ int e;
+ virtual void foo(); // _ZN7ee236523fooEv
+ ~ee23652(); // tgen
+ ee23652(); // tgen
+};
+//SIG(1 ee23652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23652 ::foo(){vfunc_called(this, "_ZN7ee236523fooEv");}
+ee23652 ::~ee23652(){ note_dtor("ee23652", this);} // tgen
+ee23652 ::ee23652(){ note_ctor("ee23652", this);} // tgen
+
+static void Test_ee23652()
+{
+ extern Class_Descriptor cd_ee23652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee23652, buf);
+ ee23652 *dp, &lv = *(dp=new (buf) ee23652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee23652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee23652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee23652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(16,12), "ee23652");
+ check_base_class_offset(lv, (dd3652*), 0, "ee23652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23652.e");
+ test_class_info(&lv, &cd_ee23652);
+ dp->~ee23652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23652(Test_ee23652, "ee23652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee23652C1Ev();
+extern void _ZN7ee23652D1Ev();
+Name_Map name_map_ee23652[] = {
+ NSPAIR(_ZN7ee23652C1Ev),
+ NSPAIR(_ZN7ee23652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee23652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23652[];
+extern void _ZN7ee236523fooEv();
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee236523fooEv,_ZTv0_n20_N7ee236523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee236523fooEv,_ZThn12_N7ee236523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee236523fooEv,_ZTv0_n12_N7ee236523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee236523fooEv,_ZThn24_N7ee236523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23652[0]),
+ (VTBL_ENTRY)&_ZN7ee236523fooEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee236523fooEv,_ZTv0_n20_N7ee236523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee23652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee236523fooEv,_ZTv0_n12_N7ee236523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee23652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee23652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee23652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee23652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee23652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee23652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee23652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee23652[] = {
+ {&(_ZTV7ee23652[4]), 4,18},
+ {&(_tg__ZTV6dd3652__7ee23652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee23652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee23652[4]), 4,6},
+ {&(_ZTV7ee23652[10]), 10,18},
+ {&(_ZTV7ee23652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee23652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee23652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee23652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee23652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23652[];
+extern VTBL_ENTRY _ZTV7ee23652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23652[];
+static VTBL_ENTRY alt_thunk_names1449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee236523fooEv,_ZTv0_n12_N7ee236523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee236523fooEv,_ZThn24_N7ee236523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee236523fooEv,_ZTv0_n20_N7ee236523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee236523fooEv,_ZThn12_N7ee236523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23652 = { "ee23652", // class name
+ bases_ee23652, 4,
+ &(vtc_ee23652[0]), // expected_vtbl_contents
+ &(vtt_ee23652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee23652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1449,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33652 : virtual dd3652 {
+ int e;
+ virtual void foo(); // _ZN7ee336523fooEv
+ ~ee33652(); // tgen
+ ee33652(); // tgen
+};
+//SIG(1 ee33652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33652 ::foo(){vfunc_called(this, "_ZN7ee336523fooEv");}
+ee33652 ::~ee33652(){ note_dtor("ee33652", this);} // tgen
+ee33652 ::ee33652(){ note_ctor("ee33652", this);} // tgen
+
+static void Test_ee33652()
+{
+ extern Class_Descriptor cd_ee33652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee33652, buf);
+ ee33652 *dp, &lv = *(dp=new (buf) ee33652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee33652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee33652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee33652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(32,16), "ee33652");
+ check_base_class_offset(lv, (dd3652*), ABISELECT(16,8), "ee33652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33652.e");
+ test_class_info(&lv, &cd_ee33652);
+ dp->~ee33652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33652(Test_ee33652, "ee33652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee33652C1Ev();
+extern void _ZN7ee33652D1Ev();
+Name_Map name_map_ee33652[] = {
+ NSPAIR(_ZN7ee33652C1Ev),
+ NSPAIR(_ZN7ee33652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee33652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33652[];
+extern void _ZN7ee336523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336523fooEv,_ZTv0_n20_N7ee336523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee336523fooEv,_ZThn8_N7ee336523fooEv)() __attribute__((weak));
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee336523fooEv,_ZTv0_n20_N7ee336523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee336523fooEv,_ZThn16_N7ee336523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee336523fooEv,_ZTv0_n12_N7ee336523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee336523fooEv,_ZThn28_N7ee336523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33652[0]),
+ (VTBL_ENTRY)&_ZN7ee336523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336523fooEv,_ZTv0_n20_N7ee336523fooEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee336523fooEv,_ZTv0_n20_N7ee336523fooEv),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee33652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee336523fooEv,_ZTv0_n12_N7ee336523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee33652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee33652[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee33652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee33652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee33652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee33652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee33652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee33652[] = {
+ {&(_ZTV7ee33652[5]), 5,25},
+ {&(_ZTV7ee33652[11]), 11,25},
+ {&(_ZTV7ee33652[17]), 17,25},
+ {&(_ZTV7ee33652[23]), 23,25},
+ {&(_tg__ZTV6dd3652__7ee33652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee33652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee33652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee33652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee33652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee33652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee33652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33652[];
+extern VTBL_ENTRY _ZTV7ee33652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33652[];
+static VTBL_ENTRY alt_thunk_names1450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee336523fooEv,_ZTv0_n12_N7ee336523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee336523fooEv,_ZThn28_N7ee336523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee336523fooEv,_ZTv0_n20_N7ee336523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee336523fooEv,_ZThn16_N7ee336523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee336523fooEv,_ZThn8_N7ee336523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33652 = { "ee33652", // class name
+ bases_ee33652, 4,
+ &(vtc_ee33652[0]), // expected_vtbl_contents
+ &(vtt_ee33652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee33652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33652),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43652 : dd3652 {
+ int e;
+ virtual void bar(); // _ZN7ee436523barEv
+ ~ee43652(); // tgen
+ ee43652(); // tgen
+};
+//SIG(1 ee43652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43652 ::bar(){vfunc_called(this, "_ZN7ee436523barEv");}
+ee43652 ::~ee43652(){ note_dtor("ee43652", this);} // tgen
+ee43652 ::ee43652(){ note_ctor("ee43652", this);} // tgen
+
+static void Test_ee43652()
+{
+ extern Class_Descriptor cd_ee43652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee43652, buf);
+ ee43652 *dp, &lv = *(dp=new (buf) ee43652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee43652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee43652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee43652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(16,12), "ee43652");
+ check_base_class_offset(lv, (dd3652*), 0, "ee43652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43652.e");
+ test_class_info(&lv, &cd_ee43652);
+ dp->~ee43652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43652(Test_ee43652, "ee43652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee43652C1Ev();
+extern void _ZN7ee43652D1Ev();
+Name_Map name_map_ee43652[] = {
+ NSPAIR(_ZN7ee43652C1Ev),
+ NSPAIR(_ZN7ee43652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee43652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43652[];
+extern void _ZN6dd36523fooEv();
+extern void _ZN7ee436523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee436523barEv,_ZTv0_n16_N7ee436523barEv)();
+extern void ABISELECT(_ZThn16_N7ee436523barEv,_ZThn12_N7ee436523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee436523barEv,_ZTv0_n16_N7ee436523barEv)();
+extern void ABISELECT(_ZThn32_N7ee436523barEv,_ZThn24_N7ee436523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+ (VTBL_ENTRY)&_ZN7ee436523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436523barEv,_ZTv0_n16_N7ee436523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee43652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee436523barEv,_ZTv0_n16_N7ee436523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee43652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee43652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee43652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee43652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee43652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee43652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee43652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee43652[] = {
+ {&(_ZTV7ee43652[4]), 4,19},
+ {&(_tg__ZTV6dd3652__7ee43652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee43652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee43652[4]), 4,6},
+ {&(_ZTV7ee43652[11]), 11,19},
+ {&(_ZTV7ee43652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee43652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee43652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee43652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee43652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43652[];
+extern VTBL_ENTRY _ZTV7ee43652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43652[];
+static VTBL_ENTRY alt_thunk_names1451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee436523barEv,_ZTv0_n16_N7ee436523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee436523barEv,_ZThn24_N7ee436523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee436523barEv,_ZThn12_N7ee436523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43652 = { "ee43652", // class name
+ bases_ee43652, 4,
+ &(vtc_ee43652[0]), // expected_vtbl_contents
+ &(vtt_ee43652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee43652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1451,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53652 : virtual dd3652 {
+ int e;
+ virtual void bar(); // _ZN7ee536523barEv
+ ~ee53652(); // tgen
+ ee53652(); // tgen
+};
+//SIG(1 ee53652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53652 ::bar(){vfunc_called(this, "_ZN7ee536523barEv");}
+ee53652 ::~ee53652(){ note_dtor("ee53652", this);} // tgen
+ee53652 ::ee53652(){ note_ctor("ee53652", this);} // tgen
+
+static void Test_ee53652()
+{
+ extern Class_Descriptor cd_ee53652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee53652, buf);
+ ee53652 *dp, &lv = *(dp=new (buf) ee53652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee53652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee53652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee53652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(32,16), "ee53652");
+ check_base_class_offset(lv, (dd3652*), ABISELECT(16,8), "ee53652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53652.e");
+ test_class_info(&lv, &cd_ee53652);
+ dp->~ee53652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53652(Test_ee53652, "ee53652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee53652C1Ev();
+extern void _ZN7ee53652D1Ev();
+Name_Map name_map_ee53652[] = {
+ NSPAIR(_ZN7ee53652C1Ev),
+ NSPAIR(_ZN7ee53652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee53652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53652[];
+extern void _ZN7ee536523barEv();
+extern void _ZN6dd36523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee536523barEv,_ZTv0_n16_N7ee536523barEv)();
+extern void ABISELECT(_ZThn32_N7ee536523barEv,_ZThn16_N7ee536523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee536523barEv,_ZTv0_n16_N7ee536523barEv)();
+extern void ABISELECT(_ZThn48_N7ee536523barEv,_ZThn28_N7ee536523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53652[0]),
+ (VTBL_ENTRY)&_ZN7ee536523barEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536523barEv,_ZTv0_n16_N7ee536523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee53652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee536523barEv,_ZTv0_n16_N7ee536523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee53652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee53652[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee53652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee53652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee53652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee53652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee53652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee53652[] = {
+ {&(_ZTV7ee53652[5]), 5,25},
+ {&(_ZTV7ee53652[11]), 11,25},
+ {&(_ZTV7ee53652[17]), 17,25},
+ {&(_ZTV7ee53652[23]), 23,25},
+ {&(_tg__ZTV6dd3652__7ee53652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee53652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee53652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee53652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee53652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee53652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee53652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53652[];
+extern VTBL_ENTRY _ZTV7ee53652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53652[];
+static VTBL_ENTRY alt_thunk_names1452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee536523barEv,_ZTv0_n16_N7ee536523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee536523barEv,_ZThn28_N7ee536523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee536523barEv,_ZThn16_N7ee536523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53652 = { "ee53652", // class name
+ bases_ee53652, 4,
+ &(vtc_ee53652[0]), // expected_vtbl_contents
+ &(vtt_ee53652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee53652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53652),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1452,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63652 : dd3652 {
+ int e;
+ virtual void foo(); // _ZN7ee636523fooEv
+ virtual void bar(); // _ZN7ee636523barEv
+ ~ee63652(); // tgen
+ ee63652(); // tgen
+};
+//SIG(1 ee63652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63652 ::foo(){vfunc_called(this, "_ZN7ee636523fooEv");}
+void ee63652 ::bar(){vfunc_called(this, "_ZN7ee636523barEv");}
+ee63652 ::~ee63652(){ note_dtor("ee63652", this);} // tgen
+ee63652 ::ee63652(){ note_ctor("ee63652", this);} // tgen
+
+static void Test_ee63652()
+{
+ extern Class_Descriptor cd_ee63652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee63652, buf);
+ ee63652 *dp, &lv = *(dp=new (buf) ee63652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee63652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee63652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee63652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(16,12), "ee63652");
+ check_base_class_offset(lv, (dd3652*), 0, "ee63652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63652.e");
+ test_class_info(&lv, &cd_ee63652);
+ dp->~ee63652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63652(Test_ee63652, "ee63652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee63652C1Ev();
+extern void _ZN7ee63652D1Ev();
+Name_Map name_map_ee63652[] = {
+ NSPAIR(_ZN7ee63652C1Ev),
+ NSPAIR(_ZN7ee63652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee63652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63652[];
+extern void _ZN7ee636523fooEv();
+extern void _ZN7ee636523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee636523barEv,_ZTv0_n16_N7ee636523barEv)();
+extern void ABISELECT(_ZThn16_N7ee636523barEv,_ZThn12_N7ee636523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee636523fooEv,_ZTv0_n20_N7ee636523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee636523fooEv,_ZThn12_N7ee636523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee636523fooEv,_ZTv0_n12_N7ee636523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee636523fooEv,_ZThn24_N7ee636523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee636523barEv,_ZTv0_n16_N7ee636523barEv)();
+extern void ABISELECT(_ZThn32_N7ee636523barEv,_ZThn24_N7ee636523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63652[0]),
+ (VTBL_ENTRY)&_ZN7ee636523fooEv,
+ (VTBL_ENTRY)&_ZN7ee636523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636523barEv,_ZTv0_n16_N7ee636523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee636523fooEv,_ZTv0_n20_N7ee636523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee63652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee636523fooEv,_ZTv0_n12_N7ee636523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee636523barEv,_ZTv0_n16_N7ee636523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee63652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee63652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee63652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee63652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee63652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee63652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee63652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee63652[] = {
+ {&(_ZTV7ee63652[4]), 4,19},
+ {&(_tg__ZTV6dd3652__7ee63652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee63652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee63652[4]), 4,6},
+ {&(_ZTV7ee63652[11]), 11,19},
+ {&(_ZTV7ee63652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee63652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee63652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee63652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee63652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63652[];
+extern VTBL_ENTRY _ZTV7ee63652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63652[];
+static VTBL_ENTRY alt_thunk_names1453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn24_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn12_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee636523fooEv,_ZTv0_n12_N7ee636523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee636523fooEv,_ZThn24_N7ee636523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee636523fooEv,_ZTv0_n20_N7ee636523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636523fooEv,_ZThn12_N7ee636523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee636523barEv,_ZTv0_n16_N7ee636523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee636523barEv,_ZThn24_N7ee636523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee636523barEv,_ZThn12_N7ee636523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63652 = { "ee63652", // class name
+ bases_ee63652, 4,
+ &(vtc_ee63652[0]), // expected_vtbl_contents
+ &(vtt_ee63652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee63652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1453,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73652 : virtual dd3652 {
+ int e;
+ virtual void foo(); // _ZN7ee736523fooEv
+ virtual void bar(); // _ZN7ee736523barEv
+ ~ee73652(); // tgen
+ ee73652(); // tgen
+};
+//SIG(1 ee73652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73652 ::foo(){vfunc_called(this, "_ZN7ee736523fooEv");}
+void ee73652 ::bar(){vfunc_called(this, "_ZN7ee736523barEv");}
+ee73652 ::~ee73652(){ note_dtor("ee73652", this);} // tgen
+ee73652 ::ee73652(){ note_ctor("ee73652", this);} // tgen
+
+static void Test_ee73652()
+{
+ extern Class_Descriptor cd_ee73652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee73652, buf);
+ ee73652 *dp, &lv = *(dp=new (buf) ee73652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee73652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee73652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee73652");
+ check_base_class_offset(lv, (cc652*)(dd3652*), ABISELECT(32,16), "ee73652");
+ check_base_class_offset(lv, (dd3652*), ABISELECT(16,8), "ee73652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73652.e");
+ test_class_info(&lv, &cd_ee73652);
+ dp->~ee73652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73652(Test_ee73652, "ee73652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee73652C1Ev();
+extern void _ZN7ee73652D1Ev();
+Name_Map name_map_ee73652[] = {
+ NSPAIR(_ZN7ee73652C1Ev),
+ NSPAIR(_ZN7ee73652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd3652;
+extern VTBL_ENTRY _ZTI6dd3652[];
+extern VTBL_ENTRY _ZTV6dd3652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3652[];
+static Base_Class bases_ee73652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3652, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73652[];
+extern void _ZN7ee736523fooEv();
+extern void _ZN7ee736523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee736523fooEv,_ZTv0_n20_N7ee736523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee736523fooEv,_ZThn8_N7ee736523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736523barEv,_ZTv0_n16_N7ee736523barEv)();
+extern void ABISELECT(_ZThn32_N7ee736523barEv,_ZThn16_N7ee736523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee736523fooEv,_ZTv0_n20_N7ee736523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee736523fooEv,_ZThn16_N7ee736523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee736523fooEv,_ZTv0_n12_N7ee736523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee736523fooEv,_ZThn28_N7ee736523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee736523barEv,_ZTv0_n16_N7ee736523barEv)();
+extern void ABISELECT(_ZThn48_N7ee736523barEv,_ZThn28_N7ee736523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73652[0]),
+ (VTBL_ENTRY)&_ZN7ee736523fooEv,
+ (VTBL_ENTRY)&_ZN7ee736523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736523fooEv,_ZTv0_n20_N7ee736523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736523barEv,_ZTv0_n16_N7ee736523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee736523fooEv,_ZTv0_n20_N7ee736523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee73652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee736523fooEv,_ZTv0_n12_N7ee736523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee736523barEv,_ZTv0_n16_N7ee736523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73652[];
+extern void _ZN6dd36523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3652__7ee73652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN6dd36523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd3652__7ee73652[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3652__7ee73652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee73652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee73652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee73652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee73652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee73652[] = {
+ {&(_ZTV7ee73652[5]), 5,26},
+ {&(_ZTV7ee73652[12]), 12,26},
+ {&(_ZTV7ee73652[18]), 18,26},
+ {&(_ZTV7ee73652[24]), 24,26},
+ {&(_tg__ZTV6dd3652__7ee73652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd3652__7ee73652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd3652__7ee73652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee73652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee73652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee73652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee73652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73652[];
+extern VTBL_ENTRY _ZTV7ee73652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73652[];
+static VTBL_ENTRY alt_thunk_names1454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd36523fooEv,_ZTv0_n12_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd36523fooEv,_ZThn20_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd36523fooEv,_ZTv0_n20_N6dd36523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd36523fooEv,_ZThn8_N6dd36523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee736523fooEv,_ZTv0_n12_N7ee736523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee736523fooEv,_ZThn28_N7ee736523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee736523barEv,_ZTv0_n16_N7ee736523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee736523barEv,_ZThn28_N7ee736523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736523barEv,_ZThn16_N7ee736523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee736523fooEv,_ZTv0_n20_N7ee736523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee736523fooEv,_ZThn16_N7ee736523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee736523fooEv,_ZThn8_N7ee736523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73652 = { "ee73652", // class name
+ bases_ee73652, 4,
+ &(vtc_ee73652[0]), // expected_vtbl_contents
+ &(vtt_ee73652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee73652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73652),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1454,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4652 : cc652 {
+ int d;
+ virtual void bar(); // _ZN6dd46523barEv
+ ~dd4652(); // tgen
+ dd4652(); // tgen
+};
+//SIG(-1 dd4652) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4652 ::bar(){vfunc_called(this, "_ZN6dd46523barEv");}
+dd4652 ::~dd4652(){ note_dtor("dd4652", this);} // tgen
+dd4652 ::dd4652(){ note_ctor("dd4652", this);} // tgen
+
+static void Test_dd4652()
+{
+ extern Class_Descriptor cd_dd4652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd4652, buf);
+ dd4652 *dp, &lv = *(dp=new (buf) dd4652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd4652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(24,16), "dd4652");
+ check_base_class_offset(lv, (bb52*)(cc652*), 0, "dd4652");
+ check_base_class_offset(lv, (cc652*), 0, "dd4652");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd4652.d");
+ test_class_info(&lv, &cd_dd4652);
+ dp->~dd4652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4652(Test_dd4652, "dd4652", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd4652C1Ev();
+extern void _ZN6dd4652D1Ev();
+Name_Map name_map_dd4652[] = {
+ NSPAIR(_ZN6dd4652C1Ev),
+ NSPAIR(_ZN6dd4652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd4652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd4652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd4652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd4652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd4652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd4652[] = {
+ {&(_ZTV6dd4652[3]), 3,11},
+ {&(_tg__ZTV5cc652__6dd4652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd4652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd4652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd4652[4]), 4,6},
+ {&(_ZTV6dd4652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static VTBL_ENTRY alt_thunk_names1455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4652 = { "dd4652", // class name
+ bases_dd4652, 3,
+ &(vtc_dd4652[0]), // expected_vtbl_contents
+ &(vtt_dd4652[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd4652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4652),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1455,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04652 : dd4652 {
+ int e;
+ ~ee04652(); // tgen
+ ee04652(); // tgen
+};
+//SIG(1 ee04652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04652 ::~ee04652(){ note_dtor("ee04652", this);} // tgen
+ee04652 ::ee04652(){ note_ctor("ee04652", this);} // tgen
+
+static void Test_ee04652()
+{
+ extern Class_Descriptor cd_ee04652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee04652, buf);
+ ee04652 *dp, &lv = *(dp=new (buf) ee04652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee04652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(24,20), "ee04652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), 0, "ee04652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), 0, "ee04652");
+ check_base_class_offset(lv, (dd4652*), 0, "ee04652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee04652.e");
+ test_class_info(&lv, &cd_ee04652);
+ dp->~ee04652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04652(Test_ee04652, "ee04652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee04652C1Ev();
+extern void _ZN7ee04652D1Ev();
+Name_Map name_map_ee04652[] = {
+ NSPAIR(_ZN7ee04652C1Ev),
+ NSPAIR(_ZN7ee04652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee04652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee04652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee04652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee04652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee04652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee04652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee04652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee04652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee04652[] = {
+ {&(_ZTV7ee04652[3]), 3,11},
+ {&(_tg__ZTV6dd4652__7ee04652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee04652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee04652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee04652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee04652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee04652[4]), 4,6},
+ {&(_ZTV7ee04652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee04652[];
+extern VTBL_ENTRY _ZTV7ee04652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04652[];
+static VTBL_ENTRY alt_thunk_names1456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04652 = { "ee04652", // class name
+ bases_ee04652, 4,
+ &(vtc_ee04652[0]), // expected_vtbl_contents
+ &(vtt_ee04652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee04652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1456,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14652 : virtual dd4652 {
+ int e;
+ ~ee14652(); // tgen
+ ee14652(); // tgen
+};
+//SIG(1 ee14652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14652 ::~ee14652(){ note_dtor("ee14652", this);} // tgen
+ee14652 ::ee14652(){ note_ctor("ee14652", this);} // tgen
+
+static void Test_ee14652()
+{
+ extern Class_Descriptor cd_ee14652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee14652, buf);
+ ee14652 *dp, &lv = *(dp=new (buf) ee14652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee14652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(40,24), "ee14652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), ABISELECT(16,8), "ee14652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), ABISELECT(16,8), "ee14652");
+ check_base_class_offset(lv, (dd4652*), ABISELECT(16,8), "ee14652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14652.e");
+ test_class_info(&lv, &cd_ee14652);
+ dp->~ee14652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14652(Test_ee14652, "ee14652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee14652C1Ev();
+extern void _ZN7ee14652D1Ev();
+Name_Map name_map_ee14652[] = {
+ NSPAIR(_ZN7ee14652C1Ev),
+ NSPAIR(_ZN7ee14652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee14652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14652[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee14652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee14652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee14652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee14652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee14652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee14652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee14652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee14652[] = {
+ {&(_ZTV7ee14652[4]), 4,17},
+ {&(_ZTV7ee14652[9]), 9,17},
+ {&(_ZTV7ee14652[15]), 15,17},
+ {&(_tg__ZTV6dd4652__7ee14652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee14652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee14652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee14652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee14652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee14652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14652[];
+extern VTBL_ENTRY _ZTV7ee14652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14652[];
+static VTBL_ENTRY alt_thunk_names1457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14652 = { "ee14652", // class name
+ bases_ee14652, 4,
+ &(vtc_ee14652[0]), // expected_vtbl_contents
+ &(vtt_ee14652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee14652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1457,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24652 : dd4652 {
+ int e;
+ virtual void foo(); // _ZN7ee246523fooEv
+ ~ee24652(); // tgen
+ ee24652(); // tgen
+};
+//SIG(1 ee24652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24652 ::foo(){vfunc_called(this, "_ZN7ee246523fooEv");}
+ee24652 ::~ee24652(){ note_dtor("ee24652", this);} // tgen
+ee24652 ::ee24652(){ note_ctor("ee24652", this);} // tgen
+
+static void Test_ee24652()
+{
+ extern Class_Descriptor cd_ee24652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee24652, buf);
+ ee24652 *dp, &lv = *(dp=new (buf) ee24652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee24652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(24,20), "ee24652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), 0, "ee24652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), 0, "ee24652");
+ check_base_class_offset(lv, (dd4652*), 0, "ee24652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee24652.e");
+ test_class_info(&lv, &cd_ee24652);
+ dp->~ee24652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24652(Test_ee24652, "ee24652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee24652C1Ev();
+extern void _ZN7ee24652D1Ev();
+Name_Map name_map_ee24652[] = {
+ NSPAIR(_ZN7ee24652C1Ev),
+ NSPAIR(_ZN7ee24652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee24652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN7ee246523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee246523fooEv,_ZTv0_n12_N7ee246523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee246523fooEv,_ZThn20_N7ee246523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN7ee246523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee24652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee246523fooEv,_ZTv0_n12_N7ee246523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee24652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee24652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee24652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee24652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee24652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee24652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee24652[] = {
+ {&(_ZTV7ee24652[3]), 3,11},
+ {&(_tg__ZTV6dd4652__7ee24652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee24652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee24652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee24652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee24652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee24652[4]), 4,6},
+ {&(_ZTV7ee24652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee24652[];
+extern VTBL_ENTRY _ZTV7ee24652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24652[];
+static VTBL_ENTRY alt_thunk_names1458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee246523fooEv,_ZTv0_n12_N7ee246523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee246523fooEv,_ZThn20_N7ee246523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24652 = { "ee24652", // class name
+ bases_ee24652, 4,
+ &(vtc_ee24652[0]), // expected_vtbl_contents
+ &(vtt_ee24652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee24652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1458,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34652 : virtual dd4652 {
+ int e;
+ virtual void foo(); // _ZN7ee346523fooEv
+ ~ee34652(); // tgen
+ ee34652(); // tgen
+};
+//SIG(1 ee34652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34652 ::foo(){vfunc_called(this, "_ZN7ee346523fooEv");}
+ee34652 ::~ee34652(){ note_dtor("ee34652", this);} // tgen
+ee34652 ::ee34652(){ note_ctor("ee34652", this);} // tgen
+
+static void Test_ee34652()
+{
+ extern Class_Descriptor cd_ee34652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee34652, buf);
+ ee34652 *dp, &lv = *(dp=new (buf) ee34652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee34652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(40,24), "ee34652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), ABISELECT(16,8), "ee34652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), ABISELECT(16,8), "ee34652");
+ check_base_class_offset(lv, (dd4652*), ABISELECT(16,8), "ee34652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34652.e");
+ test_class_info(&lv, &cd_ee34652);
+ dp->~ee34652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34652(Test_ee34652, "ee34652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee34652C1Ev();
+extern void _ZN7ee34652D1Ev();
+Name_Map name_map_ee34652[] = {
+ NSPAIR(_ZN7ee34652C1Ev),
+ NSPAIR(_ZN7ee34652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee34652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34652[];
+extern void _ZN7ee346523fooEv();
+extern void _ZN6dd46523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee346523fooEv,_ZTv0_n20_N7ee346523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee346523fooEv,_ZThn8_N7ee346523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee346523fooEv,_ZTv0_n12_N7ee346523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee346523fooEv,_ZThn24_N7ee346523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34652[0]),
+ (VTBL_ENTRY)&_ZN7ee346523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee346523fooEv,_ZTv0_n20_N7ee346523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee34652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee346523fooEv,_ZTv0_n12_N7ee346523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee34652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee34652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee34652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee34652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee34652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee34652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee34652[] = {
+ {&(_ZTV7ee34652[4]), 4,18},
+ {&(_ZTV7ee34652[10]), 10,18},
+ {&(_ZTV7ee34652[16]), 16,18},
+ {&(_tg__ZTV6dd4652__7ee34652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee34652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee34652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee34652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee34652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee34652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34652[];
+extern VTBL_ENTRY _ZTV7ee34652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34652[];
+static VTBL_ENTRY alt_thunk_names1459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee346523fooEv,_ZTv0_n12_N7ee346523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee346523fooEv,_ZThn24_N7ee346523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee346523fooEv,_ZTv0_n20_N7ee346523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee346523fooEv,_ZThn8_N7ee346523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34652 = { "ee34652", // class name
+ bases_ee34652, 4,
+ &(vtc_ee34652[0]), // expected_vtbl_contents
+ &(vtt_ee34652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee34652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44652 : dd4652 {
+ int e;
+ virtual void bar(); // _ZN7ee446523barEv
+ ~ee44652(); // tgen
+ ee44652(); // tgen
+};
+//SIG(1 ee44652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44652 ::bar(){vfunc_called(this, "_ZN7ee446523barEv");}
+ee44652 ::~ee44652(){ note_dtor("ee44652", this);} // tgen
+ee44652 ::ee44652(){ note_ctor("ee44652", this);} // tgen
+
+static void Test_ee44652()
+{
+ extern Class_Descriptor cd_ee44652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee44652, buf);
+ ee44652 *dp, &lv = *(dp=new (buf) ee44652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee44652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(24,20), "ee44652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), 0, "ee44652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), 0, "ee44652");
+ check_base_class_offset(lv, (dd4652*), 0, "ee44652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee44652.e");
+ test_class_info(&lv, &cd_ee44652);
+ dp->~ee44652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44652(Test_ee44652, "ee44652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee44652C1Ev();
+extern void _ZN7ee44652D1Ev();
+Name_Map name_map_ee44652[] = {
+ NSPAIR(_ZN7ee44652C1Ev),
+ NSPAIR(_ZN7ee44652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee44652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44652[];
+extern void _ZN7ee446523barEv();
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee446523barEv,_ZTv0_n16_N7ee446523barEv)();
+extern void ABISELECT(_ZThn24_N7ee446523barEv,_ZThn20_N7ee446523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44652[0]),
+ (VTBL_ENTRY)&_ZN7ee446523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee44652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee446523barEv,_ZTv0_n16_N7ee446523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee44652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee44652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee44652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee44652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee44652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee44652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee44652[] = {
+ {&(_ZTV7ee44652[3]), 3,11},
+ {&(_tg__ZTV6dd4652__7ee44652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee44652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee44652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee44652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee44652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee44652[4]), 4,6},
+ {&(_ZTV7ee44652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee44652[];
+extern VTBL_ENTRY _ZTV7ee44652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44652[];
+static VTBL_ENTRY alt_thunk_names1460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee446523barEv,_ZTv0_n16_N7ee446523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee446523barEv,_ZThn20_N7ee446523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44652 = { "ee44652", // class name
+ bases_ee44652, 4,
+ &(vtc_ee44652[0]), // expected_vtbl_contents
+ &(vtt_ee44652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee44652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1460,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54652 : virtual dd4652 {
+ int e;
+ virtual void bar(); // _ZN7ee546523barEv
+ ~ee54652(); // tgen
+ ee54652(); // tgen
+};
+//SIG(1 ee54652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54652 ::bar(){vfunc_called(this, "_ZN7ee546523barEv");}
+ee54652 ::~ee54652(){ note_dtor("ee54652", this);} // tgen
+ee54652 ::ee54652(){ note_ctor("ee54652", this);} // tgen
+
+static void Test_ee54652()
+{
+ extern Class_Descriptor cd_ee54652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee54652, buf);
+ ee54652 *dp, &lv = *(dp=new (buf) ee54652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee54652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(40,24), "ee54652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), ABISELECT(16,8), "ee54652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), ABISELECT(16,8), "ee54652");
+ check_base_class_offset(lv, (dd4652*), ABISELECT(16,8), "ee54652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54652.e");
+ test_class_info(&lv, &cd_ee54652);
+ dp->~ee54652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54652(Test_ee54652, "ee54652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee54652C1Ev();
+extern void _ZN7ee54652D1Ev();
+Name_Map name_map_ee54652[] = {
+ NSPAIR(_ZN7ee54652C1Ev),
+ NSPAIR(_ZN7ee54652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee54652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54652[];
+extern void _ZN7ee546523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee546523barEv,_ZTv0_n16_N7ee546523barEv)();
+extern void ABISELECT(_ZThn16_N7ee546523barEv,_ZThn8_N7ee546523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee546523barEv,_ZTv0_n16_N7ee546523barEv)();
+extern void ABISELECT(_ZThn40_N7ee546523barEv,_ZThn24_N7ee546523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54652[0]),
+ (VTBL_ENTRY)&_ZN7ee546523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546523barEv,_ZTv0_n16_N7ee546523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee54652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee546523barEv,_ZTv0_n16_N7ee546523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee54652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee54652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee54652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee54652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee54652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee54652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee54652[] = {
+ {&(_ZTV7ee54652[4]), 4,18},
+ {&(_ZTV7ee54652[10]), 10,18},
+ {&(_ZTV7ee54652[16]), 16,18},
+ {&(_tg__ZTV6dd4652__7ee54652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee54652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee54652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee54652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee54652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee54652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54652[];
+extern VTBL_ENTRY _ZTV7ee54652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54652[];
+static VTBL_ENTRY alt_thunk_names1461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee546523barEv,_ZTv0_n16_N7ee546523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee546523barEv,_ZThn24_N7ee546523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee546523barEv,_ZThn8_N7ee546523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54652 = { "ee54652", // class name
+ bases_ee54652, 4,
+ &(vtc_ee54652[0]), // expected_vtbl_contents
+ &(vtt_ee54652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee54652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1461,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64652 : dd4652 {
+ int e;
+ virtual void foo(); // _ZN7ee646523fooEv
+ virtual void bar(); // _ZN7ee646523barEv
+ ~ee64652(); // tgen
+ ee64652(); // tgen
+};
+//SIG(1 ee64652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64652 ::foo(){vfunc_called(this, "_ZN7ee646523fooEv");}
+void ee64652 ::bar(){vfunc_called(this, "_ZN7ee646523barEv");}
+ee64652 ::~ee64652(){ note_dtor("ee64652", this);} // tgen
+ee64652 ::ee64652(){ note_ctor("ee64652", this);} // tgen
+
+static void Test_ee64652()
+{
+ extern Class_Descriptor cd_ee64652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee64652, buf);
+ ee64652 *dp, &lv = *(dp=new (buf) ee64652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee64652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(24,20), "ee64652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), 0, "ee64652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), 0, "ee64652");
+ check_base_class_offset(lv, (dd4652*), 0, "ee64652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee64652.e");
+ test_class_info(&lv, &cd_ee64652);
+ dp->~ee64652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64652(Test_ee64652, "ee64652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee64652C1Ev();
+extern void _ZN7ee64652D1Ev();
+Name_Map name_map_ee64652[] = {
+ NSPAIR(_ZN7ee64652C1Ev),
+ NSPAIR(_ZN7ee64652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee64652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64652[];
+extern void _ZN7ee646523barEv();
+extern void _ZN7ee646523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee646523fooEv,_ZTv0_n12_N7ee646523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee646523fooEv,_ZThn20_N7ee646523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee646523barEv,_ZTv0_n16_N7ee646523barEv)();
+extern void ABISELECT(_ZThn24_N7ee646523barEv,_ZThn20_N7ee646523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64652[0]),
+ (VTBL_ENTRY)&_ZN7ee646523barEv,
+ (VTBL_ENTRY)&_ZN7ee646523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee64652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee646523fooEv,_ZTv0_n12_N7ee646523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee646523barEv,_ZTv0_n16_N7ee646523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee64652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee64652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee64652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee64652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee64652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee64652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee64652[] = {
+ {&(_ZTV7ee64652[3]), 3,11},
+ {&(_tg__ZTV6dd4652__7ee64652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee64652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee64652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee64652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee64652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee64652[4]), 4,6},
+ {&(_ZTV7ee64652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee64652[];
+extern VTBL_ENTRY _ZTV7ee64652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64652[];
+static VTBL_ENTRY alt_thunk_names1462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn20_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee646523barEv,_ZTv0_n16_N7ee646523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee646523barEv,_ZThn20_N7ee646523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee646523fooEv,_ZTv0_n12_N7ee646523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee646523fooEv,_ZThn20_N7ee646523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64652 = { "ee64652", // class name
+ bases_ee64652, 4,
+ &(vtc_ee64652[0]), // expected_vtbl_contents
+ &(vtt_ee64652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee64652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1462,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74652 : virtual dd4652 {
+ int e;
+ virtual void foo(); // _ZN7ee746523fooEv
+ virtual void bar(); // _ZN7ee746523barEv
+ ~ee74652(); // tgen
+ ee74652(); // tgen
+};
+//SIG(1 ee74652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74652 ::foo(){vfunc_called(this, "_ZN7ee746523fooEv");}
+void ee74652 ::bar(){vfunc_called(this, "_ZN7ee746523barEv");}
+ee74652 ::~ee74652(){ note_dtor("ee74652", this);} // tgen
+ee74652 ::ee74652(){ note_ctor("ee74652", this);} // tgen
+
+static void Test_ee74652()
+{
+ extern Class_Descriptor cd_ee74652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee74652, buf);
+ ee74652 *dp, &lv = *(dp=new (buf) ee74652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee74652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd4652*), ABISELECT(40,24), "ee74652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd4652*), ABISELECT(16,8), "ee74652");
+ check_base_class_offset(lv, (cc652*)(dd4652*), ABISELECT(16,8), "ee74652");
+ check_base_class_offset(lv, (dd4652*), ABISELECT(16,8), "ee74652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74652.e");
+ test_class_info(&lv, &cd_ee74652);
+ dp->~ee74652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74652(Test_ee74652, "ee74652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee74652C1Ev();
+extern void _ZN7ee74652D1Ev();
+Name_Map name_map_ee74652[] = {
+ NSPAIR(_ZN7ee74652C1Ev),
+ NSPAIR(_ZN7ee74652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd4652;
+extern VTBL_ENTRY _ZTI6dd4652[];
+extern VTBL_ENTRY _ZTV6dd4652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4652[];
+static Base_Class bases_ee74652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74652[];
+extern void _ZN7ee746523fooEv();
+extern void _ZN7ee746523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee746523barEv,_ZTv0_n16_N7ee746523barEv)();
+extern void ABISELECT(_ZThn16_N7ee746523barEv,_ZThn8_N7ee746523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee746523fooEv,_ZTv0_n20_N7ee746523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee746523fooEv,_ZThn8_N7ee746523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee746523fooEv,_ZTv0_n12_N7ee746523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee746523fooEv,_ZThn24_N7ee746523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee746523barEv,_ZTv0_n16_N7ee746523barEv)();
+extern void ABISELECT(_ZThn40_N7ee746523barEv,_ZThn24_N7ee746523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74652[0]),
+ (VTBL_ENTRY)&_ZN7ee746523fooEv,
+ (VTBL_ENTRY)&_ZN7ee746523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746523barEv,_ZTv0_n16_N7ee746523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee746523fooEv,_ZTv0_n20_N7ee746523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee74652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee746523fooEv,_ZTv0_n12_N7ee746523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee746523barEv,_ZTv0_n16_N7ee746523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74652[];
+extern void _ZN6dd46523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd4652__7ee74652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&_ZN6dd46523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd4652__7ee74652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd4652__7ee74652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd4652__7ee74652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd4652__7ee74652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv)();
+extern void ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4652__7ee74652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv),
+};
+static VTT_ENTRY vtt_ee74652[] = {
+ {&(_ZTV7ee74652[4]), 4,19},
+ {&(_ZTV7ee74652[11]), 11,19},
+ {&(_ZTV7ee74652[17]), 17,19},
+ {&(_tg__ZTV6dd4652__7ee74652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd4652__7ee74652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd4652__7ee74652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd4652__7ee74652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd4652__7ee74652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd4652__7ee74652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74652[];
+extern VTBL_ENTRY _ZTV7ee74652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74652[];
+static VTBL_ENTRY alt_thunk_names1463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd46523barEv,_ZTv0_n16_N6dd46523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd46523barEv,_ZThn16_N6dd46523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee746523fooEv,_ZTv0_n12_N7ee746523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee746523fooEv,_ZThn24_N7ee746523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee746523fooEv,_ZTv0_n20_N7ee746523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746523fooEv,_ZThn8_N7ee746523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee746523barEv,_ZTv0_n16_N7ee746523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee746523barEv,_ZThn24_N7ee746523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee746523barEv,_ZThn8_N7ee746523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74652 = { "ee74652", // class name
+ bases_ee74652, 4,
+ &(vtc_ee74652[0]), // expected_vtbl_contents
+ &(vtt_ee74652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee74652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1463,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5652 : virtual cc652 {
+ int d;
+ virtual void bar(); // _ZN6dd56523barEv
+ ~dd5652(); // tgen
+ dd5652(); // tgen
+};
+//SIG(-1 dd5652) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5652 ::bar(){vfunc_called(this, "_ZN6dd56523barEv");}
+dd5652 ::~dd5652(){ note_dtor("dd5652", this);} // tgen
+dd5652 ::dd5652(){ note_ctor("dd5652", this);} // tgen
+
+static void Test_dd5652()
+{
+ extern Class_Descriptor cd_dd5652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd5652, buf);
+ dd5652 *dp, &lv = *(dp=new (buf) dd5652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd5652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,20), "dd5652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,8), "dd5652");
+ check_base_class_offset(lv, (cc652*), ABISELECT(16,8), "dd5652");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5652.d");
+ test_class_info(&lv, &cd_dd5652);
+ dp->~dd5652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5652(Test_dd5652, "dd5652", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd5652C1Ev();
+extern void _ZN6dd5652D1Ev();
+Name_Map name_map_dd5652[] = {
+ NSPAIR(_ZN6dd5652C1Ev),
+ NSPAIR(_ZN6dd5652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd5652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd5652[];
+extern void _ZN6dd56523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd5652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd5652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd5652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd5652[] = {
+ {&(_ZTV6dd5652[4]), 4,18},
+ {&(_ZTV6dd5652[10]), 10,18},
+ {&(_ZTV6dd5652[16]), 16,18},
+ {&(_tg__ZTV5cc652__6dd5652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd5652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd5652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd5652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static VTBL_ENTRY alt_thunk_names1464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5652 = { "dd5652", // class name
+ bases_dd5652, 3,
+ &(vtc_dd5652[0]), // expected_vtbl_contents
+ &(vtt_dd5652[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd5652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5652),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1464,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05652 : dd5652 {
+ int e;
+ ~ee05652(); // tgen
+ ee05652(); // tgen
+};
+//SIG(1 ee05652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05652 ::~ee05652(){ note_dtor("ee05652", this);} // tgen
+ee05652 ::ee05652(){ note_ctor("ee05652", this);} // tgen
+
+static void Test_ee05652()
+{
+ extern Class_Descriptor cd_ee05652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee05652, buf);
+ ee05652 *dp, &lv = *(dp=new (buf) ee05652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee05652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee05652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee05652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(16,12), "ee05652");
+ check_base_class_offset(lv, (dd5652*), 0, "ee05652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05652.e");
+ test_class_info(&lv, &cd_ee05652);
+ dp->~ee05652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05652(Test_ee05652, "ee05652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee05652C1Ev();
+extern void _ZN7ee05652D1Ev();
+Name_Map name_map_ee05652[] = {
+ NSPAIR(_ZN7ee05652C1Ev),
+ NSPAIR(_ZN7ee05652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee05652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05652[];
+extern void _ZN6dd56523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee05652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee05652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee05652[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee05652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee05652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee05652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee05652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee05652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee05652[] = {
+ {&(_ZTV7ee05652[4]), 4,18},
+ {&(_tg__ZTV6dd5652__7ee05652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee05652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee05652[4]), 4,6},
+ {&(_ZTV7ee05652[10]), 10,18},
+ {&(_ZTV7ee05652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee05652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee05652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee05652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee05652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05652[];
+extern VTBL_ENTRY _ZTV7ee05652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05652[];
+static VTBL_ENTRY alt_thunk_names1465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05652 = { "ee05652", // class name
+ bases_ee05652, 4,
+ &(vtc_ee05652[0]), // expected_vtbl_contents
+ &(vtt_ee05652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee05652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1465,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15652 : virtual dd5652 {
+ int e;
+ ~ee15652(); // tgen
+ ee15652(); // tgen
+};
+//SIG(1 ee15652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15652 ::~ee15652(){ note_dtor("ee15652", this);} // tgen
+ee15652 ::ee15652(){ note_ctor("ee15652", this);} // tgen
+
+static void Test_ee15652()
+{
+ extern Class_Descriptor cd_ee15652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee15652, buf);
+ ee15652 *dp, &lv = *(dp=new (buf) ee15652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee15652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee15652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee15652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(32,16), "ee15652");
+ check_base_class_offset(lv, (dd5652*), ABISELECT(16,8), "ee15652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15652.e");
+ test_class_info(&lv, &cd_ee15652);
+ dp->~ee15652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15652(Test_ee15652, "ee15652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee15652C1Ev();
+extern void _ZN7ee15652D1Ev();
+Name_Map name_map_ee15652[] = {
+ NSPAIR(_ZN7ee15652C1Ev),
+ NSPAIR(_ZN7ee15652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee15652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, ABISELECT(16,8), //bcp->offset
+ 5, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15652[];
+extern void _ZN6dd56523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15652[0]),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee15652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee15652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee15652[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee15652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee15652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee15652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee15652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee15652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee15652[] = {
+ {&(_ZTV7ee15652[5]), 5,24},
+ {&(_ZTV7ee15652[10]), 10,24},
+ {&(_ZTV7ee15652[16]), 16,24},
+ {&(_ZTV7ee15652[22]), 22,24},
+ {&(_tg__ZTV6dd5652__7ee15652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee15652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee15652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee15652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee15652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee15652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee15652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15652[];
+extern VTBL_ENTRY _ZTV7ee15652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15652[];
+static VTBL_ENTRY alt_thunk_names1466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15652 = { "ee15652", // class name
+ bases_ee15652, 4,
+ &(vtc_ee15652[0]), // expected_vtbl_contents
+ &(vtt_ee15652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee15652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15652),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1466,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25652 : dd5652 {
+ int e;
+ virtual void foo(); // _ZN7ee256523fooEv
+ ~ee25652(); // tgen
+ ee25652(); // tgen
+};
+//SIG(1 ee25652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25652 ::foo(){vfunc_called(this, "_ZN7ee256523fooEv");}
+ee25652 ::~ee25652(){ note_dtor("ee25652", this);} // tgen
+ee25652 ::ee25652(){ note_ctor("ee25652", this);} // tgen
+
+static void Test_ee25652()
+{
+ extern Class_Descriptor cd_ee25652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee25652, buf);
+ ee25652 *dp, &lv = *(dp=new (buf) ee25652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee25652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee25652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee25652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(16,12), "ee25652");
+ check_base_class_offset(lv, (dd5652*), 0, "ee25652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25652.e");
+ test_class_info(&lv, &cd_ee25652);
+ dp->~ee25652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25652(Test_ee25652, "ee25652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee25652C1Ev();
+extern void _ZN7ee25652D1Ev();
+Name_Map name_map_ee25652[] = {
+ NSPAIR(_ZN7ee25652C1Ev),
+ NSPAIR(_ZN7ee25652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee25652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25652[];
+extern void _ZN6dd56523barEv();
+extern void _ZN7ee256523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee256523fooEv,_ZTv0_n20_N7ee256523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee256523fooEv,_ZThn12_N7ee256523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee256523fooEv,_ZTv0_n12_N7ee256523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee256523fooEv,_ZThn24_N7ee256523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+ (VTBL_ENTRY)&_ZN7ee256523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee256523fooEv,_ZTv0_n20_N7ee256523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee25652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee256523fooEv,_ZTv0_n12_N7ee256523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee25652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee25652[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee25652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee25652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee25652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee25652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee25652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee25652[] = {
+ {&(_ZTV7ee25652[4]), 4,19},
+ {&(_tg__ZTV6dd5652__7ee25652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee25652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee25652[4]), 4,6},
+ {&(_ZTV7ee25652[11]), 11,19},
+ {&(_ZTV7ee25652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee25652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee25652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee25652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee25652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25652[];
+extern VTBL_ENTRY _ZTV7ee25652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25652[];
+static VTBL_ENTRY alt_thunk_names1467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee256523fooEv,_ZTv0_n12_N7ee256523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee256523fooEv,_ZThn24_N7ee256523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee256523fooEv,_ZTv0_n20_N7ee256523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee256523fooEv,_ZThn12_N7ee256523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25652 = { "ee25652", // class name
+ bases_ee25652, 4,
+ &(vtc_ee25652[0]), // expected_vtbl_contents
+ &(vtt_ee25652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee25652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1467,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35652 : virtual dd5652 {
+ int e;
+ virtual void foo(); // _ZN7ee356523fooEv
+ ~ee35652(); // tgen
+ ee35652(); // tgen
+};
+//SIG(1 ee35652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35652 ::foo(){vfunc_called(this, "_ZN7ee356523fooEv");}
+ee35652 ::~ee35652(){ note_dtor("ee35652", this);} // tgen
+ee35652 ::ee35652(){ note_ctor("ee35652", this);} // tgen
+
+static void Test_ee35652()
+{
+ extern Class_Descriptor cd_ee35652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee35652, buf);
+ ee35652 *dp, &lv = *(dp=new (buf) ee35652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee35652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee35652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee35652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(32,16), "ee35652");
+ check_base_class_offset(lv, (dd5652*), ABISELECT(16,8), "ee35652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35652.e");
+ test_class_info(&lv, &cd_ee35652);
+ dp->~ee35652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35652(Test_ee35652, "ee35652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee35652C1Ev();
+extern void _ZN7ee35652D1Ev();
+Name_Map name_map_ee35652[] = {
+ NSPAIR(_ZN7ee35652C1Ev),
+ NSPAIR(_ZN7ee35652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee35652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35652[];
+extern void _ZN7ee356523fooEv();
+extern void _ZN6dd56523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee356523fooEv,_ZTv0_n20_N7ee356523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee356523fooEv,_ZThn16_N7ee356523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee356523fooEv,_ZTv0_n12_N7ee356523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee356523fooEv,_ZThn28_N7ee356523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35652[0]),
+ (VTBL_ENTRY)&_ZN7ee356523fooEv,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee356523fooEv,_ZTv0_n20_N7ee356523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee35652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee356523fooEv,_ZTv0_n12_N7ee356523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee35652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee35652[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee35652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee35652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee35652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee35652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee35652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee35652[] = {
+ {&(_ZTV7ee35652[5]), 5,25},
+ {&(_ZTV7ee35652[11]), 11,25},
+ {&(_ZTV7ee35652[17]), 17,25},
+ {&(_ZTV7ee35652[23]), 23,25},
+ {&(_tg__ZTV6dd5652__7ee35652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee35652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee35652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee35652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee35652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee35652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee35652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35652[];
+extern VTBL_ENTRY _ZTV7ee35652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35652[];
+static VTBL_ENTRY alt_thunk_names1468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee356523fooEv,_ZTv0_n12_N7ee356523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee356523fooEv,_ZThn28_N7ee356523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee356523fooEv,_ZTv0_n20_N7ee356523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee356523fooEv,_ZThn16_N7ee356523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35652 = { "ee35652", // class name
+ bases_ee35652, 4,
+ &(vtc_ee35652[0]), // expected_vtbl_contents
+ &(vtt_ee35652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee35652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35652),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1468,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45652 : dd5652 {
+ int e;
+ virtual void bar(); // _ZN7ee456523barEv
+ ~ee45652(); // tgen
+ ee45652(); // tgen
+};
+//SIG(1 ee45652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45652 ::bar(){vfunc_called(this, "_ZN7ee456523barEv");}
+ee45652 ::~ee45652(){ note_dtor("ee45652", this);} // tgen
+ee45652 ::ee45652(){ note_ctor("ee45652", this);} // tgen
+
+static void Test_ee45652()
+{
+ extern Class_Descriptor cd_ee45652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee45652, buf);
+ ee45652 *dp, &lv = *(dp=new (buf) ee45652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee45652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee45652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee45652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(16,12), "ee45652");
+ check_base_class_offset(lv, (dd5652*), 0, "ee45652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45652.e");
+ test_class_info(&lv, &cd_ee45652);
+ dp->~ee45652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45652(Test_ee45652, "ee45652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee45652C1Ev();
+extern void _ZN7ee45652D1Ev();
+Name_Map name_map_ee45652[] = {
+ NSPAIR(_ZN7ee45652C1Ev),
+ NSPAIR(_ZN7ee45652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee45652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45652[];
+extern void _ZN7ee456523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee456523barEv,_ZTv0_n16_N7ee456523barEv)();
+extern void ABISELECT(_ZThn16_N7ee456523barEv,_ZThn12_N7ee456523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee456523barEv,_ZTv0_n16_N7ee456523barEv)();
+extern void ABISELECT(_ZThn32_N7ee456523barEv,_ZThn24_N7ee456523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45652[0]),
+ (VTBL_ENTRY)&_ZN7ee456523barEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456523barEv,_ZTv0_n16_N7ee456523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee45652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee456523barEv,_ZTv0_n16_N7ee456523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee45652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee45652[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee45652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee45652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee45652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee45652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee45652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee45652[] = {
+ {&(_ZTV7ee45652[4]), 4,18},
+ {&(_tg__ZTV6dd5652__7ee45652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee45652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee45652[4]), 4,6},
+ {&(_ZTV7ee45652[10]), 10,18},
+ {&(_ZTV7ee45652[16]), 16,18},
+ {&(_tg__ZTV5cc652__7ee45652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee45652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee45652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee45652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45652[];
+extern VTBL_ENTRY _ZTV7ee45652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45652[];
+static VTBL_ENTRY alt_thunk_names1469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee456523barEv,_ZTv0_n16_N7ee456523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee456523barEv,_ZThn24_N7ee456523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee456523barEv,_ZThn12_N7ee456523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45652 = { "ee45652", // class name
+ bases_ee45652, 4,
+ &(vtc_ee45652[0]), // expected_vtbl_contents
+ &(vtt_ee45652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee45652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1469,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55652 : virtual dd5652 {
+ int e;
+ virtual void bar(); // _ZN7ee556523barEv
+ ~ee55652(); // tgen
+ ee55652(); // tgen
+};
+//SIG(1 ee55652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55652 ::bar(){vfunc_called(this, "_ZN7ee556523barEv");}
+ee55652 ::~ee55652(){ note_dtor("ee55652", this);} // tgen
+ee55652 ::ee55652(){ note_ctor("ee55652", this);} // tgen
+
+static void Test_ee55652()
+{
+ extern Class_Descriptor cd_ee55652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee55652, buf);
+ ee55652 *dp, &lv = *(dp=new (buf) ee55652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee55652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee55652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee55652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(32,16), "ee55652");
+ check_base_class_offset(lv, (dd5652*), ABISELECT(16,8), "ee55652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55652.e");
+ test_class_info(&lv, &cd_ee55652);
+ dp->~ee55652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55652(Test_ee55652, "ee55652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee55652C1Ev();
+extern void _ZN7ee55652D1Ev();
+Name_Map name_map_ee55652[] = {
+ NSPAIR(_ZN7ee55652C1Ev),
+ NSPAIR(_ZN7ee55652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee55652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, ABISELECT(16,8), //bcp->offset
+ 6, //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
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55652[];
+extern void _ZN7ee556523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee556523barEv,_ZTv0_n20_N7ee556523barEv)();
+extern void ABISELECT(_ZThn16_N7ee556523barEv,_ZThn8_N7ee556523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee556523barEv,_ZTv0_n16_N7ee556523barEv)();
+extern void ABISELECT(_ZThn32_N7ee556523barEv,_ZThn16_N7ee556523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee556523barEv,_ZTv0_n16_N7ee556523barEv)();
+extern void ABISELECT(_ZThn48_N7ee556523barEv,_ZThn28_N7ee556523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55652[0]),
+ (VTBL_ENTRY)&_ZN7ee556523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee556523barEv,_ZTv0_n20_N7ee556523barEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556523barEv,_ZTv0_n16_N7ee556523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+ ABISELECT(-48,-28),
+ ABISELECT(-16,-12),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee55652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee556523barEv,_ZTv0_n16_N7ee556523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee55652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee55652[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee55652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee55652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee55652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee55652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee55652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee55652[] = {
+ {&(_ZTV7ee55652[5]), 5,25},
+ {&(_ZTV7ee55652[11]), 11,25},
+ {&(_ZTV7ee55652[17]), 17,25},
+ {&(_ZTV7ee55652[23]), 23,25},
+ {&(_tg__ZTV6dd5652__7ee55652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee55652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee55652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee55652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee55652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee55652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee55652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55652[];
+extern VTBL_ENTRY _ZTV7ee55652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55652[];
+static VTBL_ENTRY alt_thunk_names1470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee556523barEv,_ZTv0_n16_N7ee556523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee556523barEv,_ZThn28_N7ee556523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee556523barEv,_ZThn16_N7ee556523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee556523barEv,_ZTv0_n20_N7ee556523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee556523barEv,_ZThn8_N7ee556523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55652 = { "ee55652", // class name
+ bases_ee55652, 4,
+ &(vtc_ee55652[0]), // expected_vtbl_contents
+ &(vtt_ee55652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee55652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55652),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1470,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65652 : dd5652 {
+ int e;
+ virtual void foo(); // _ZN7ee656523fooEv
+ virtual void bar(); // _ZN7ee656523barEv
+ ~ee65652(); // tgen
+ ee65652(); // tgen
+};
+//SIG(1 ee65652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65652 ::foo(){vfunc_called(this, "_ZN7ee656523fooEv");}
+void ee65652 ::bar(){vfunc_called(this, "_ZN7ee656523barEv");}
+ee65652 ::~ee65652(){ note_dtor("ee65652", this);} // tgen
+ee65652 ::ee65652(){ note_ctor("ee65652", this);} // tgen
+
+static void Test_ee65652()
+{
+ extern Class_Descriptor cd_ee65652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee65652, buf);
+ ee65652 *dp, &lv = *(dp=new (buf) ee65652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee65652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee65652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee65652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(16,12), "ee65652");
+ check_base_class_offset(lv, (dd5652*), 0, "ee65652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65652.e");
+ test_class_info(&lv, &cd_ee65652);
+ dp->~ee65652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65652(Test_ee65652, "ee65652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee65652C1Ev();
+extern void _ZN7ee65652D1Ev();
+Name_Map name_map_ee65652[] = {
+ NSPAIR(_ZN7ee65652C1Ev),
+ NSPAIR(_ZN7ee65652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee65652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65652[];
+extern void _ZN7ee656523barEv();
+extern void _ZN7ee656523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee656523barEv,_ZTv0_n16_N7ee656523barEv)();
+extern void ABISELECT(_ZThn16_N7ee656523barEv,_ZThn12_N7ee656523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee656523fooEv,_ZTv0_n20_N7ee656523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee656523fooEv,_ZThn12_N7ee656523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee656523fooEv,_ZTv0_n12_N7ee656523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee656523fooEv,_ZThn24_N7ee656523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee656523barEv,_ZTv0_n16_N7ee656523barEv)();
+extern void ABISELECT(_ZThn32_N7ee656523barEv,_ZThn24_N7ee656523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65652[0]),
+ (VTBL_ENTRY)&_ZN7ee656523barEv,
+ (VTBL_ENTRY)&_ZN7ee656523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656523barEv,_ZTv0_n16_N7ee656523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee656523fooEv,_ZTv0_n20_N7ee656523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee65652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee656523fooEv,_ZTv0_n12_N7ee656523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee656523barEv,_ZTv0_n16_N7ee656523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee65652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee65652[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee65652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee65652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee65652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee65652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee65652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee65652[] = {
+ {&(_ZTV7ee65652[4]), 4,19},
+ {&(_tg__ZTV6dd5652__7ee65652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee65652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee65652[4]), 4,6},
+ {&(_ZTV7ee65652[11]), 11,19},
+ {&(_ZTV7ee65652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee65652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee65652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee65652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee65652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65652[];
+extern VTBL_ENTRY _ZTV7ee65652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65652[];
+static VTBL_ENTRY alt_thunk_names1471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn24_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn12_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee656523fooEv,_ZTv0_n12_N7ee656523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee656523fooEv,_ZThn24_N7ee656523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee656523fooEv,_ZTv0_n20_N7ee656523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656523fooEv,_ZThn12_N7ee656523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee656523barEv,_ZTv0_n16_N7ee656523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee656523barEv,_ZThn24_N7ee656523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee656523barEv,_ZThn12_N7ee656523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65652 = { "ee65652", // class name
+ bases_ee65652, 4,
+ &(vtc_ee65652[0]), // expected_vtbl_contents
+ &(vtt_ee65652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee65652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75652 : virtual dd5652 {
+ int e;
+ virtual void foo(); // _ZN7ee756523fooEv
+ virtual void bar(); // _ZN7ee756523barEv
+ ~ee75652(); // tgen
+ ee75652(); // tgen
+};
+//SIG(1 ee75652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75652 ::foo(){vfunc_called(this, "_ZN7ee756523fooEv");}
+void ee75652 ::bar(){vfunc_called(this, "_ZN7ee756523barEv");}
+ee75652 ::~ee75652(){ note_dtor("ee75652", this);} // tgen
+ee75652 ::ee75652(){ note_ctor("ee75652", this);} // tgen
+
+static void Test_ee75652()
+{
+ extern Class_Descriptor cd_ee75652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee75652, buf);
+ ee75652 *dp, &lv = *(dp=new (buf) ee75652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee75652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee75652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee75652");
+ check_base_class_offset(lv, (cc652*)(dd5652*), ABISELECT(32,16), "ee75652");
+ check_base_class_offset(lv, (dd5652*), ABISELECT(16,8), "ee75652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75652.e");
+ test_class_info(&lv, &cd_ee75652);
+ dp->~ee75652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75652(Test_ee75652, "ee75652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee75652C1Ev();
+extern void _ZN7ee75652D1Ev();
+Name_Map name_map_ee75652[] = {
+ NSPAIR(_ZN7ee75652C1Ev),
+ NSPAIR(_ZN7ee75652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd5652;
+extern VTBL_ENTRY _ZTI6dd5652[];
+extern VTBL_ENTRY _ZTV6dd5652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5652[];
+static Base_Class bases_ee75652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5652, 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
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75652[];
+extern void _ZN7ee756523fooEv();
+extern void _ZN7ee756523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee756523barEv,_ZTv0_n20_N7ee756523barEv)();
+extern void ABISELECT(_ZThn16_N7ee756523barEv,_ZThn8_N7ee756523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756523barEv,_ZTv0_n16_N7ee756523barEv)();
+extern void ABISELECT(_ZThn32_N7ee756523barEv,_ZThn16_N7ee756523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee756523fooEv,_ZTv0_n20_N7ee756523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee756523fooEv,_ZThn16_N7ee756523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee756523fooEv,_ZTv0_n12_N7ee756523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee756523fooEv,_ZThn28_N7ee756523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee756523barEv,_ZTv0_n16_N7ee756523barEv)();
+extern void ABISELECT(_ZThn48_N7ee756523barEv,_ZThn28_N7ee756523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75652[0]),
+ (VTBL_ENTRY)&_ZN7ee756523fooEv,
+ (VTBL_ENTRY)&_ZN7ee756523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756523barEv,_ZTv0_n20_N7ee756523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756523barEv,_ZTv0_n16_N7ee756523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee756523fooEv,_ZTv0_n20_N7ee756523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee75652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee756523fooEv,_ZTv0_n12_N7ee756523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee756523barEv,_ZTv0_n16_N7ee756523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75652[];
+extern void _ZN6dd56523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5652__7ee75652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&_ZN6dd56523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv)() __attribute__((weak));
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd5652__7ee75652[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv)();
+extern void ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5652__7ee75652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-16,-12),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee75652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee75652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee75652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee75652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee75652[] = {
+ {&(_ZTV7ee75652[5]), 5,26},
+ {&(_ZTV7ee75652[12]), 12,26},
+ {&(_ZTV7ee75652[18]), 18,26},
+ {&(_ZTV7ee75652[24]), 24,26},
+ {&(_tg__ZTV6dd5652__7ee75652[4]), 4,5},
+ {&(_tg__ZTV5cc652__6dd5652__7ee75652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd5652__7ee75652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee75652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee75652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee75652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee75652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75652[];
+extern VTBL_ENTRY _ZTV7ee75652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75652[];
+static VTBL_ENTRY alt_thunk_names1472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd56523barEv,_ZTv0_n16_N6dd56523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd56523barEv,_ZThn20_N6dd56523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd56523barEv,_ZThn8_N6dd56523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee756523fooEv,_ZTv0_n12_N7ee756523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee756523fooEv,_ZThn28_N7ee756523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756523fooEv,_ZTv0_n20_N7ee756523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756523fooEv,_ZThn16_N7ee756523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee756523barEv,_ZTv0_n16_N7ee756523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee756523barEv,_ZThn28_N7ee756523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee756523barEv,_ZThn16_N7ee756523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee756523barEv,_ZTv0_n20_N7ee756523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee756523barEv,_ZThn8_N7ee756523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75652 = { "ee75652", // class name
+ bases_ee75652, 4,
+ &(vtc_ee75652[0]), // expected_vtbl_contents
+ &(vtt_ee75652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee75652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75652),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1472,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6652 : cc652 {
+ int d;
+ virtual void bar(); // _ZN6dd66523barEv
+ virtual void foo(); // _ZN6dd66523fooEv
+ ~dd6652(); // tgen
+ dd6652(); // tgen
+};
+//SIG(-1 dd6652) C1{ BC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6652 ::bar(){vfunc_called(this, "_ZN6dd66523barEv");}
+void dd6652 ::foo(){vfunc_called(this, "_ZN6dd66523fooEv");}
+dd6652 ::~dd6652(){ note_dtor("dd6652", this);} // tgen
+dd6652 ::dd6652(){ note_ctor("dd6652", this);} // tgen
+
+static void Test_dd6652()
+{
+ extern Class_Descriptor cd_dd6652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,7)];
+ init_test(&cd_dd6652, buf);
+ dd6652 *dp, &lv = *(dp=new (buf) dd6652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,24), "sizeof(dd6652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(24,16), "dd6652");
+ check_base_class_offset(lv, (bb52*)(cc652*), 0, "dd6652");
+ check_base_class_offset(lv, (cc652*), 0, "dd6652");
+ check_field_offset(lv, d, ABISELECT(16,12), "dd6652.d");
+ test_class_info(&lv, &cd_dd6652);
+ dp->~dd6652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6652(Test_dd6652, "dd6652", ABISELECT(40,24));
+
+#else // __cplusplus
+
+extern void _ZN6dd6652C1Ev();
+extern void _ZN6dd6652D1Ev();
+Name_Map name_map_dd6652[] = {
+ NSPAIR(_ZN6dd6652C1Ev),
+ NSPAIR(_ZN6dd6652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd6652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,16), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd6652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd6652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd6652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd6652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd6652[] = {
+ {&(_ZTV6dd6652[3]), 3,11},
+ {&(_tg__ZTV5cc652__6dd6652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd6652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd6652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd6652[4]), 4,6},
+ {&(_ZTV6dd6652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static VTBL_ENTRY alt_thunk_names1473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6652 = { "dd6652", // class name
+ bases_dd6652, 3,
+ &(vtc_dd6652[0]), // expected_vtbl_contents
+ &(vtt_dd6652[0]), // expected_vtt_contents
+ ABISELECT(40,24), // object size
+ NSPAIRA(_ZTI6dd6652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6652),6, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1473,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06652 : dd6652 {
+ int e;
+ ~ee06652(); // tgen
+ ee06652(); // tgen
+};
+//SIG(1 ee06652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06652 ::~ee06652(){ note_dtor("ee06652", this);} // tgen
+ee06652 ::ee06652(){ note_ctor("ee06652", this);} // tgen
+
+static void Test_ee06652()
+{
+ extern Class_Descriptor cd_ee06652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee06652, buf);
+ ee06652 *dp, &lv = *(dp=new (buf) ee06652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee06652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(24,20), "ee06652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), 0, "ee06652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), 0, "ee06652");
+ check_base_class_offset(lv, (dd6652*), 0, "ee06652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee06652.e");
+ test_class_info(&lv, &cd_ee06652);
+ dp->~ee06652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06652(Test_ee06652, "ee06652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee06652C1Ev();
+extern void _ZN7ee06652D1Ev();
+Name_Map name_map_ee06652[] = {
+ NSPAIR(_ZN7ee06652C1Ev),
+ NSPAIR(_ZN7ee06652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee06652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee06652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee06652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee06652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee06652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee06652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee06652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee06652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee06652[] = {
+ {&(_ZTV7ee06652[3]), 3,11},
+ {&(_tg__ZTV6dd6652__7ee06652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee06652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee06652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee06652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee06652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee06652[4]), 4,6},
+ {&(_ZTV7ee06652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee06652[];
+extern VTBL_ENTRY _ZTV7ee06652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06652[];
+static VTBL_ENTRY alt_thunk_names1474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06652 = { "ee06652", // class name
+ bases_ee06652, 4,
+ &(vtc_ee06652[0]), // expected_vtbl_contents
+ &(vtt_ee06652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee06652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1474,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16652 : virtual dd6652 {
+ int e;
+ ~ee16652(); // tgen
+ ee16652(); // tgen
+};
+//SIG(1 ee16652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16652 ::~ee16652(){ note_dtor("ee16652", this);} // tgen
+ee16652 ::ee16652(){ note_ctor("ee16652", this);} // tgen
+
+static void Test_ee16652()
+{
+ extern Class_Descriptor cd_ee16652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee16652, buf);
+ ee16652 *dp, &lv = *(dp=new (buf) ee16652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee16652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(40,24), "ee16652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), ABISELECT(16,8), "ee16652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), ABISELECT(16,8), "ee16652");
+ check_base_class_offset(lv, (dd6652*), ABISELECT(16,8), "ee16652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16652.e");
+ test_class_info(&lv, &cd_ee16652);
+ dp->~ee16652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16652(Test_ee16652, "ee16652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee16652C1Ev();
+extern void _ZN7ee16652D1Ev();
+Name_Map name_map_ee16652[] = {
+ NSPAIR(_ZN7ee16652C1Ev),
+ NSPAIR(_ZN7ee16652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee16652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16652[0]),
+ 0,
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee16652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee16652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee16652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee16652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee16652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee16652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee16652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee16652[] = {
+ {&(_ZTV7ee16652[4]), 4,17},
+ {&(_ZTV7ee16652[9]), 9,17},
+ {&(_ZTV7ee16652[15]), 15,17},
+ {&(_tg__ZTV6dd6652__7ee16652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee16652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee16652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee16652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee16652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee16652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16652[];
+extern VTBL_ENTRY _ZTV7ee16652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16652[];
+static VTBL_ENTRY alt_thunk_names1475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16652 = { "ee16652", // class name
+ bases_ee16652, 4,
+ &(vtc_ee16652[0]), // expected_vtbl_contents
+ &(vtt_ee16652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee16652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16652),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1475,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26652 : dd6652 {
+ int e;
+ virtual void foo(); // _ZN7ee266523fooEv
+ ~ee26652(); // tgen
+ ee26652(); // tgen
+};
+//SIG(1 ee26652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26652 ::foo(){vfunc_called(this, "_ZN7ee266523fooEv");}
+ee26652 ::~ee26652(){ note_dtor("ee26652", this);} // tgen
+ee26652 ::ee26652(){ note_ctor("ee26652", this);} // tgen
+
+static void Test_ee26652()
+{
+ extern Class_Descriptor cd_ee26652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee26652, buf);
+ ee26652 *dp, &lv = *(dp=new (buf) ee26652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee26652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(24,20), "ee26652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), 0, "ee26652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), 0, "ee26652");
+ check_base_class_offset(lv, (dd6652*), 0, "ee26652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee26652.e");
+ test_class_info(&lv, &cd_ee26652);
+ dp->~ee26652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26652(Test_ee26652, "ee26652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee26652C1Ev();
+extern void _ZN7ee26652D1Ev();
+Name_Map name_map_ee26652[] = {
+ NSPAIR(_ZN7ee26652C1Ev),
+ NSPAIR(_ZN7ee26652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee26652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN7ee266523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee266523fooEv,_ZTv0_n12_N7ee266523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee266523fooEv,_ZThn20_N7ee266523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN7ee266523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee26652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee266523fooEv,_ZTv0_n12_N7ee266523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee26652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee26652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee26652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee26652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee26652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee26652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee26652[] = {
+ {&(_ZTV7ee26652[3]), 3,11},
+ {&(_tg__ZTV6dd6652__7ee26652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee26652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee26652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee26652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee26652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee26652[4]), 4,6},
+ {&(_ZTV7ee26652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee26652[];
+extern VTBL_ENTRY _ZTV7ee26652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26652[];
+static VTBL_ENTRY alt_thunk_names1476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee266523fooEv,_ZTv0_n12_N7ee266523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee266523fooEv,_ZThn20_N7ee266523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26652 = { "ee26652", // class name
+ bases_ee26652, 4,
+ &(vtc_ee26652[0]), // expected_vtbl_contents
+ &(vtt_ee26652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee26652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1476,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36652 : virtual dd6652 {
+ int e;
+ virtual void foo(); // _ZN7ee366523fooEv
+ ~ee36652(); // tgen
+ ee36652(); // tgen
+};
+//SIG(1 ee36652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36652 ::foo(){vfunc_called(this, "_ZN7ee366523fooEv");}
+ee36652 ::~ee36652(){ note_dtor("ee36652", this);} // tgen
+ee36652 ::ee36652(){ note_ctor("ee36652", this);} // tgen
+
+static void Test_ee36652()
+{
+ extern Class_Descriptor cd_ee36652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee36652, buf);
+ ee36652 *dp, &lv = *(dp=new (buf) ee36652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee36652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(40,24), "ee36652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), ABISELECT(16,8), "ee36652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), ABISELECT(16,8), "ee36652");
+ check_base_class_offset(lv, (dd6652*), ABISELECT(16,8), "ee36652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36652.e");
+ test_class_info(&lv, &cd_ee36652);
+ dp->~ee36652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36652(Test_ee36652, "ee36652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee36652C1Ev();
+extern void _ZN7ee36652D1Ev();
+Name_Map name_map_ee36652[] = {
+ NSPAIR(_ZN7ee36652C1Ev),
+ NSPAIR(_ZN7ee36652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee36652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36652[];
+extern void _ZN7ee366523fooEv();
+extern void _ZN6dd66523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee366523fooEv,_ZTv0_n20_N7ee366523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee366523fooEv,_ZThn8_N7ee366523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee366523fooEv,_ZTv0_n12_N7ee366523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee366523fooEv,_ZThn24_N7ee366523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36652[0]),
+ (VTBL_ENTRY)&_ZN7ee366523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee366523fooEv,_ZTv0_n20_N7ee366523fooEv),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee36652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee366523fooEv,_ZTv0_n12_N7ee366523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee36652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee36652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee36652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee36652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee36652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee36652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee36652[] = {
+ {&(_ZTV7ee36652[4]), 4,18},
+ {&(_ZTV7ee36652[10]), 10,18},
+ {&(_ZTV7ee36652[16]), 16,18},
+ {&(_tg__ZTV6dd6652__7ee36652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee36652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee36652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee36652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee36652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee36652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36652[];
+extern VTBL_ENTRY _ZTV7ee36652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36652[];
+static VTBL_ENTRY alt_thunk_names1477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee366523fooEv,_ZTv0_n12_N7ee366523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee366523fooEv,_ZThn24_N7ee366523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee366523fooEv,_ZTv0_n20_N7ee366523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee366523fooEv,_ZThn8_N7ee366523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36652 = { "ee36652", // class name
+ bases_ee36652, 4,
+ &(vtc_ee36652[0]), // expected_vtbl_contents
+ &(vtt_ee36652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee36652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1477,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46652 : dd6652 {
+ int e;
+ virtual void bar(); // _ZN7ee466523barEv
+ ~ee46652(); // tgen
+ ee46652(); // tgen
+};
+//SIG(1 ee46652) C1{ BC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46652 ::bar(){vfunc_called(this, "_ZN7ee466523barEv");}
+ee46652 ::~ee46652(){ note_dtor("ee46652", this);} // tgen
+ee46652 ::ee46652(){ note_ctor("ee46652", this);} // tgen
+
+static void Test_ee46652()
+{
+ extern Class_Descriptor cd_ee46652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee46652, buf);
+ ee46652 *dp, &lv = *(dp=new (buf) ee46652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee46652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(24,20), "ee46652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), 0, "ee46652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), 0, "ee46652");
+ check_base_class_offset(lv, (dd6652*), 0, "ee46652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee46652.e");
+ test_class_info(&lv, &cd_ee46652);
+ dp->~ee46652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46652(Test_ee46652, "ee46652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee46652C1Ev();
+extern void _ZN7ee46652D1Ev();
+Name_Map name_map_ee46652[] = {
+ NSPAIR(_ZN7ee46652C1Ev),
+ NSPAIR(_ZN7ee46652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee46652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46652[];
+extern void _ZN7ee466523barEv();
+extern void _ZN6dd66523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee466523barEv,_ZTv0_n16_N7ee466523barEv)();
+extern void ABISELECT(_ZThn24_N7ee466523barEv,_ZThn20_N7ee466523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46652[0]),
+ (VTBL_ENTRY)&_ZN7ee466523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee46652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee466523barEv,_ZTv0_n16_N7ee466523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee46652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee46652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee46652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee46652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee46652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee46652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee46652[] = {
+ {&(_ZTV7ee46652[3]), 3,11},
+ {&(_tg__ZTV6dd6652__7ee46652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee46652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee46652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee46652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee46652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee46652[4]), 4,6},
+ {&(_ZTV7ee46652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee46652[];
+extern VTBL_ENTRY _ZTV7ee46652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46652[];
+static VTBL_ENTRY alt_thunk_names1478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee466523barEv,_ZTv0_n16_N7ee466523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee466523barEv,_ZThn20_N7ee466523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46652 = { "ee46652", // class name
+ bases_ee46652, 4,
+ &(vtc_ee46652[0]), // expected_vtbl_contents
+ &(vtt_ee46652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee46652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1478,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56652 : virtual dd6652 {
+ int e;
+ virtual void bar(); // _ZN7ee566523barEv
+ ~ee56652(); // tgen
+ ee56652(); // tgen
+};
+//SIG(1 ee56652) C1{ VBC2{ BC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56652 ::bar(){vfunc_called(this, "_ZN7ee566523barEv");}
+ee56652 ::~ee56652(){ note_dtor("ee56652", this);} // tgen
+ee56652 ::ee56652(){ note_ctor("ee56652", this);} // tgen
+
+static void Test_ee56652()
+{
+ extern Class_Descriptor cd_ee56652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee56652, buf);
+ ee56652 *dp, &lv = *(dp=new (buf) ee56652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee56652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(40,24), "ee56652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), ABISELECT(16,8), "ee56652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), ABISELECT(16,8), "ee56652");
+ check_base_class_offset(lv, (dd6652*), ABISELECT(16,8), "ee56652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56652.e");
+ test_class_info(&lv, &cd_ee56652);
+ dp->~ee56652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56652(Test_ee56652, "ee56652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee56652C1Ev();
+extern void _ZN7ee56652D1Ev();
+Name_Map name_map_ee56652[] = {
+ NSPAIR(_ZN7ee56652C1Ev),
+ NSPAIR(_ZN7ee56652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee56652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56652[];
+extern void _ZN7ee566523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee566523barEv,_ZTv0_n16_N7ee566523barEv)();
+extern void ABISELECT(_ZThn16_N7ee566523barEv,_ZThn8_N7ee566523barEv)() __attribute__((weak));
+extern void _ZN6dd66523fooEv();
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee566523barEv,_ZTv0_n16_N7ee566523barEv)();
+extern void ABISELECT(_ZThn40_N7ee566523barEv,_ZThn24_N7ee566523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56652[0]),
+ (VTBL_ENTRY)&_ZN7ee566523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566523barEv,_ZTv0_n16_N7ee566523barEv),
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+ ABISELECT(-40,-24),
+ ABISELECT(-24,-16),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee56652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee566523barEv,_ZTv0_n16_N7ee566523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee56652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee56652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee56652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee56652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee56652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee56652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee56652[] = {
+ {&(_ZTV7ee56652[4]), 4,18},
+ {&(_ZTV7ee56652[10]), 10,18},
+ {&(_ZTV7ee56652[16]), 16,18},
+ {&(_tg__ZTV6dd6652__7ee56652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee56652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee56652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee56652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee56652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee56652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56652[];
+extern VTBL_ENTRY _ZTV7ee56652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56652[];
+static VTBL_ENTRY alt_thunk_names1479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee566523barEv,_ZTv0_n16_N7ee566523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee566523barEv,_ZThn24_N7ee566523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee566523barEv,_ZThn8_N7ee566523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56652 = { "ee56652", // class name
+ bases_ee56652, 4,
+ &(vtc_ee56652[0]), // expected_vtbl_contents
+ &(vtt_ee56652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee56652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56652),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1479,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66652 : dd6652 {
+ int e;
+ virtual void foo(); // _ZN7ee666523fooEv
+ virtual void bar(); // _ZN7ee666523barEv
+ ~ee66652(); // tgen
+ ee66652(); // tgen
+};
+//SIG(1 ee66652) C1{ BC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66652 ::foo(){vfunc_called(this, "_ZN7ee666523fooEv");}
+void ee66652 ::bar(){vfunc_called(this, "_ZN7ee666523barEv");}
+ee66652 ::~ee66652(){ note_dtor("ee66652", this);} // tgen
+ee66652 ::ee66652(){ note_ctor("ee66652", this);} // tgen
+
+static void Test_ee66652()
+{
+ extern Class_Descriptor cd_ee66652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(6,8)];
+ init_test(&cd_ee66652, buf);
+ ee66652 *dp, &lv = *(dp=new (buf) ee66652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(40,28), "sizeof(ee66652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(24,20), "ee66652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), 0, "ee66652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), 0, "ee66652");
+ check_base_class_offset(lv, (dd6652*), 0, "ee66652");
+ check_field_offset(lv, e, ABISELECT(20,16), "ee66652.e");
+ test_class_info(&lv, &cd_ee66652);
+ dp->~ee66652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66652(Test_ee66652, "ee66652", ABISELECT(40,28));
+
+#else // __cplusplus
+
+extern void _ZN7ee66652C1Ev();
+extern void _ZN7ee66652D1Ev();
+Name_Map name_map_ee66652[] = {
+ NSPAIR(_ZN7ee66652C1Ev),
+ NSPAIR(_ZN7ee66652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee66652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(24,20), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66652[];
+extern void _ZN7ee666523barEv();
+extern void _ZN7ee666523fooEv();
+extern void ABISELECT(_ZTv0_n24_N7ee666523fooEv,_ZTv0_n12_N7ee666523fooEv)();
+extern void ABISELECT(_ZThn24_N7ee666523fooEv,_ZThn20_N7ee666523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee666523barEv,_ZTv0_n16_N7ee666523barEv)();
+extern void ABISELECT(_ZThn24_N7ee666523barEv,_ZThn20_N7ee666523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66652[0]),
+ (VTBL_ENTRY)&_ZN7ee666523barEv,
+ (VTBL_ENTRY)&_ZN7ee666523fooEv,
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI7ee66652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee666523fooEv,_ZTv0_n12_N7ee666523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee666523barEv,_ZTv0_n16_N7ee666523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee66652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee66652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee66652[] = {
+ ABISELECT(24,20),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee66652[] = {
+ ABISELECT(-24,-20),
+ 0,
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee66652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee66652[] = {
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ ABISELECT(-24,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee66652[] = {
+ {&(_ZTV7ee66652[3]), 3,11},
+ {&(_tg__ZTV6dd6652__7ee66652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee66652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee66652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee66652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee66652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee66652[4]), 4,6},
+ {&(_ZTV7ee66652[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI7ee66652[];
+extern VTBL_ENTRY _ZTV7ee66652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66652[];
+static VTBL_ENTRY alt_thunk_names1480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn20_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn20_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn20_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn20_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn20_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee666523barEv,_ZTv0_n16_N7ee666523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee666523barEv,_ZThn20_N7ee666523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee666523fooEv,_ZTv0_n12_N7ee666523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee666523fooEv,_ZThn20_N7ee666523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66652 = { "ee66652", // class name
+ bases_ee66652, 4,
+ &(vtc_ee66652[0]), // expected_vtbl_contents
+ &(vtt_ee66652[0]), // expected_vtt_contents
+ ABISELECT(40,28), // object size
+ NSPAIRA(_ZTI7ee66652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66652),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66652),8, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1480,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76652 : virtual dd6652 {
+ int e;
+ virtual void foo(); // _ZN7ee766523fooEv
+ virtual void bar(); // _ZN7ee766523barEv
+ ~ee76652(); // tgen
+ ee76652(); // tgen
+};
+//SIG(1 ee76652) C1{ VBC2{ BC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76652 ::foo(){vfunc_called(this, "_ZN7ee766523fooEv");}
+void ee76652 ::bar(){vfunc_called(this, "_ZN7ee766523barEv");}
+ee76652 ::~ee76652(){ note_dtor("ee76652", this);} // tgen
+ee76652 ::ee76652(){ note_ctor("ee76652", this);} // tgen
+
+static void Test_ee76652()
+{
+ extern Class_Descriptor cd_ee76652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee76652, buf);
+ ee76652 *dp, &lv = *(dp=new (buf) ee76652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee76652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*)(dd6652*), ABISELECT(40,24), "ee76652");
+ check_base_class_offset(lv, (bb52*)(cc652*)(dd6652*), ABISELECT(16,8), "ee76652");
+ check_base_class_offset(lv, (cc652*)(dd6652*), ABISELECT(16,8), "ee76652");
+ check_base_class_offset(lv, (dd6652*), ABISELECT(16,8), "ee76652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76652.e");
+ test_class_info(&lv, &cd_ee76652);
+ dp->~ee76652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76652(Test_ee76652, "ee76652", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee76652C1Ev();
+extern void _ZN7ee76652D1Ev();
+Name_Map name_map_ee76652[] = {
+ NSPAIR(_ZN7ee76652C1Ev),
+ NSPAIR(_ZN7ee76652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd6652;
+extern VTBL_ENTRY _ZTI6dd6652[];
+extern VTBL_ENTRY _ZTV6dd6652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6652[];
+static Base_Class bases_ee76652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76652[];
+extern void _ZN7ee766523fooEv();
+extern void _ZN7ee766523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee766523barEv,_ZTv0_n16_N7ee766523barEv)();
+extern void ABISELECT(_ZThn16_N7ee766523barEv,_ZThn8_N7ee766523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee766523fooEv,_ZTv0_n20_N7ee766523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee766523fooEv,_ZThn8_N7ee766523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee766523fooEv,_ZTv0_n12_N7ee766523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee766523fooEv,_ZThn24_N7ee766523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee766523barEv,_ZTv0_n16_N7ee766523barEv)();
+extern void ABISELECT(_ZThn40_N7ee766523barEv,_ZThn24_N7ee766523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76652[] = {
+ ABISELECT(40,24),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76652[0]),
+ (VTBL_ENTRY)&_ZN7ee766523fooEv,
+ (VTBL_ENTRY)&_ZN7ee766523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(24,16),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766523barEv,_ZTv0_n16_N7ee766523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee766523fooEv,_ZTv0_n20_N7ee766523fooEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee76652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee766523fooEv,_ZTv0_n12_N7ee766523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee766523barEv,_ZTv0_n16_N7ee766523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76652[];
+extern void _ZN6dd66523barEv();
+extern void _ZN6dd66523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd6652__7ee76652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&_ZN6dd66523barEv,
+ (VTBL_ENTRY)&_ZN6dd66523fooEv,
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc6526dd6652__7ee76652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc6526dd6652__7ee76652[] = {
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc6526dd6652__7ee76652[] = {
+ ABISELECT(-24,-16),
+ 0,
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc6526dd6652__7ee76652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv)();
+extern void ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv)();
+extern void ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6652__7ee76652[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv),
+};
+static VTT_ENTRY vtt_ee76652[] = {
+ {&(_ZTV7ee76652[4]), 4,19},
+ {&(_ZTV7ee76652[11]), 11,19},
+ {&(_ZTV7ee76652[17]), 17,19},
+ {&(_tg__ZTV6dd6652__7ee76652[3]), 3,5},
+ {&(_tg__ZTV5cc6526dd6652__7ee76652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc6526dd6652__7ee76652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc6526dd6652__7ee76652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc6526dd6652__7ee76652[4]), 4,6},
+ {&(_tg__ZTV3aa2__6dd6652__7ee76652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76652[];
+extern VTBL_ENTRY _ZTV7ee76652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76652[];
+static VTBL_ENTRY alt_thunk_names1481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd66523barEv,_ZTv0_n16_N6dd66523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523barEv,_ZThn16_N6dd66523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd66523fooEv,_ZTv0_n12_N6dd66523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd66523fooEv,_ZThn16_N6dd66523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523barEv,_ZThn16_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc6523fooEv,_ZThn16_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N4bb523barEv,_ZThn16_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee766523fooEv,_ZTv0_n12_N7ee766523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee766523fooEv,_ZThn24_N7ee766523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee766523fooEv,_ZTv0_n20_N7ee766523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766523fooEv,_ZThn8_N7ee766523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee766523barEv,_ZTv0_n16_N7ee766523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee766523barEv,_ZThn24_N7ee766523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee766523barEv,_ZThn8_N7ee766523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76652 = { "ee76652", // class name
+ bases_ee76652, 4,
+ &(vtc_ee76652[0]), // expected_vtbl_contents
+ &(vtt_ee76652[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee76652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76652),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1481,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7652 : virtual cc652 {
+ int d;
+ virtual void bar(); // _ZN6dd76523barEv
+ virtual void foo(); // _ZN6dd76523fooEv
+ ~dd7652(); // tgen
+ dd7652(); // tgen
+};
+//SIG(-1 dd7652) C1{ VBC2{ BC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7652 ::bar(){vfunc_called(this, "_ZN6dd76523barEv");}
+void dd7652 ::foo(){vfunc_called(this, "_ZN6dd76523fooEv");}
+dd7652 ::~dd7652(){ note_dtor("dd7652", this);} // tgen
+dd7652 ::dd7652(){ note_ctor("dd7652", this);} // tgen
+
+static void Test_dd7652()
+{
+ extern Class_Descriptor cd_dd7652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd7652, buf);
+ dd7652 *dp, &lv = *(dp=new (buf) dd7652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd7652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,20), "dd7652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,8), "dd7652");
+ check_base_class_offset(lv, (cc652*), ABISELECT(16,8), "dd7652");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7652.d");
+ test_class_info(&lv, &cd_dd7652);
+ dp->~dd7652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7652(Test_dd7652, "dd7652", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd7652C1Ev();
+extern void _ZN6dd7652D1Ev();
+Name_Map name_map_dd7652[] = {
+ NSPAIR(_ZN6dd7652C1Ev),
+ NSPAIR(_ZN6dd7652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+static Base_Class bases_dd7652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //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 _ZTI6dd7652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__6dd7652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__6dd7652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__6dd7652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_dd7652[] = {
+ {&(_ZTV6dd7652[4]), 4,19},
+ {&(_ZTV6dd7652[11]), 11,19},
+ {&(_ZTV6dd7652[17]), 17,19},
+ {&(_tg__ZTV5cc652__6dd7652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__6dd7652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__6dd7652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__6dd7652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static VTBL_ENTRY alt_thunk_names1482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7652 = { "dd7652", // class name
+ bases_dd7652, 3,
+ &(vtc_dd7652[0]), // expected_vtbl_contents
+ &(vtt_dd7652[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd7652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7652),7, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1482,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07652 : dd7652 {
+ int e;
+ ~ee07652(); // tgen
+ ee07652(); // tgen
+};
+//SIG(1 ee07652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07652 ::~ee07652(){ note_dtor("ee07652", this);} // tgen
+ee07652 ::ee07652(){ note_ctor("ee07652", this);} // tgen
+
+static void Test_ee07652()
+{
+ extern Class_Descriptor cd_ee07652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee07652, buf);
+ ee07652 *dp, &lv = *(dp=new (buf) ee07652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee07652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee07652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee07652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(16,12), "ee07652");
+ check_base_class_offset(lv, (dd7652*), 0, "ee07652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07652.e");
+ test_class_info(&lv, &cd_ee07652);
+ dp->~ee07652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07652(Test_ee07652, "ee07652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee07652C1Ev();
+extern void _ZN7ee07652D1Ev();
+Name_Map name_map_ee07652[] = {
+ NSPAIR(_ZN7ee07652C1Ev),
+ NSPAIR(_ZN7ee07652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee07652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee07652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee07652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee07652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee07652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee07652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee07652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee07652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee07652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee07652[] = {
+ {&(_ZTV7ee07652[4]), 4,19},
+ {&(_tg__ZTV6dd7652__7ee07652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee07652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee07652[4]), 4,6},
+ {&(_ZTV7ee07652[11]), 11,19},
+ {&(_ZTV7ee07652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee07652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee07652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee07652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee07652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07652[];
+extern VTBL_ENTRY _ZTV7ee07652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07652[];
+static VTBL_ENTRY alt_thunk_names1483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07652 = { "ee07652", // class name
+ bases_ee07652, 4,
+ &(vtc_ee07652[0]), // expected_vtbl_contents
+ &(vtt_ee07652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee07652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1483,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17652 : virtual dd7652 {
+ int e;
+ ~ee17652(); // tgen
+ ee17652(); // tgen
+};
+//SIG(1 ee17652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17652 ::~ee17652(){ note_dtor("ee17652", this);} // tgen
+ee17652 ::ee17652(){ note_ctor("ee17652", this);} // tgen
+
+static void Test_ee17652()
+{
+ extern Class_Descriptor cd_ee17652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee17652, buf);
+ ee17652 *dp, &lv = *(dp=new (buf) ee17652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee17652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee17652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee17652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(32,16), "ee17652");
+ check_base_class_offset(lv, (dd7652*), ABISELECT(16,8), "ee17652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17652.e");
+ test_class_info(&lv, &cd_ee17652);
+ dp->~ee17652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17652(Test_ee17652, "ee17652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee17652C1Ev();
+extern void _ZN7ee17652D1Ev();
+Name_Map name_map_ee17652[] = {
+ NSPAIR(_ZN7ee17652C1Ev),
+ NSPAIR(_ZN7ee17652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee17652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17652[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee17652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee17652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee17652[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee17652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee17652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee17652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee17652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee17652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee17652[] = {
+ {&(_ZTV7ee17652[5]), 5,26},
+ {&(_ZTV7ee17652[11]), 11,26},
+ {&(_ZTV7ee17652[18]), 18,26},
+ {&(_ZTV7ee17652[24]), 24,26},
+ {&(_tg__ZTV6dd7652__7ee17652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee17652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee17652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee17652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee17652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee17652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee17652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17652[];
+extern VTBL_ENTRY _ZTV7ee17652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17652[];
+static VTBL_ENTRY alt_thunk_names1484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17652 = { "ee17652", // class name
+ bases_ee17652, 4,
+ &(vtc_ee17652[0]), // expected_vtbl_contents
+ &(vtt_ee17652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee17652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17652),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1484,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27652 : dd7652 {
+ int e;
+ virtual void foo(); // _ZN7ee276523fooEv
+ ~ee27652(); // tgen
+ ee27652(); // tgen
+};
+//SIG(1 ee27652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27652 ::foo(){vfunc_called(this, "_ZN7ee276523fooEv");}
+ee27652 ::~ee27652(){ note_dtor("ee27652", this);} // tgen
+ee27652 ::ee27652(){ note_ctor("ee27652", this);} // tgen
+
+static void Test_ee27652()
+{
+ extern Class_Descriptor cd_ee27652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee27652, buf);
+ ee27652 *dp, &lv = *(dp=new (buf) ee27652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee27652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee27652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee27652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(16,12), "ee27652");
+ check_base_class_offset(lv, (dd7652*), 0, "ee27652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27652.e");
+ test_class_info(&lv, &cd_ee27652);
+ dp->~ee27652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27652(Test_ee27652, "ee27652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee27652C1Ev();
+extern void _ZN7ee27652D1Ev();
+Name_Map name_map_ee27652[] = {
+ NSPAIR(_ZN7ee27652C1Ev),
+ NSPAIR(_ZN7ee27652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee27652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN7ee276523fooEv();
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee276523fooEv,_ZTv0_n20_N7ee276523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee276523fooEv,_ZThn12_N7ee276523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee276523fooEv,_ZTv0_n12_N7ee276523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee276523fooEv,_ZThn24_N7ee276523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN7ee276523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee276523fooEv,_ZTv0_n20_N7ee276523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee27652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee276523fooEv,_ZTv0_n12_N7ee276523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee27652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee27652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee27652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee27652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee27652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee27652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee27652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee27652[] = {
+ {&(_ZTV7ee27652[4]), 4,19},
+ {&(_tg__ZTV6dd7652__7ee27652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee27652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee27652[4]), 4,6},
+ {&(_ZTV7ee27652[11]), 11,19},
+ {&(_ZTV7ee27652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee27652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee27652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee27652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee27652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27652[];
+extern VTBL_ENTRY _ZTV7ee27652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27652[];
+static VTBL_ENTRY alt_thunk_names1485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee276523fooEv,_ZTv0_n12_N7ee276523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee276523fooEv,_ZThn24_N7ee276523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee276523fooEv,_ZTv0_n20_N7ee276523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee276523fooEv,_ZThn12_N7ee276523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27652 = { "ee27652", // class name
+ bases_ee27652, 4,
+ &(vtc_ee27652[0]), // expected_vtbl_contents
+ &(vtt_ee27652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee27652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1485,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37652 : virtual dd7652 {
+ int e;
+ virtual void foo(); // _ZN7ee376523fooEv
+ ~ee37652(); // tgen
+ ee37652(); // tgen
+};
+//SIG(1 ee37652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37652 ::foo(){vfunc_called(this, "_ZN7ee376523fooEv");}
+ee37652 ::~ee37652(){ note_dtor("ee37652", this);} // tgen
+ee37652 ::ee37652(){ note_ctor("ee37652", this);} // tgen
+
+static void Test_ee37652()
+{
+ extern Class_Descriptor cd_ee37652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee37652, buf);
+ ee37652 *dp, &lv = *(dp=new (buf) ee37652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee37652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee37652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee37652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(32,16), "ee37652");
+ check_base_class_offset(lv, (dd7652*), ABISELECT(16,8), "ee37652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37652.e");
+ test_class_info(&lv, &cd_ee37652);
+ dp->~ee37652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37652(Test_ee37652, "ee37652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee37652C1Ev();
+extern void _ZN7ee37652D1Ev();
+Name_Map name_map_ee37652[] = {
+ NSPAIR(_ZN7ee37652C1Ev),
+ NSPAIR(_ZN7ee37652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee37652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37652[];
+extern void _ZN7ee376523fooEv();
+extern void _ZN6dd76523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee376523fooEv,_ZTv0_n24_N7ee376523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee376523fooEv,_ZThn8_N7ee376523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee376523fooEv,_ZTv0_n20_N7ee376523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee376523fooEv,_ZThn16_N7ee376523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee376523fooEv,_ZTv0_n12_N7ee376523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee376523fooEv,_ZThn28_N7ee376523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37652[0]),
+ (VTBL_ENTRY)&_ZN7ee376523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee376523fooEv,_ZTv0_n24_N7ee376523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee376523fooEv,_ZTv0_n20_N7ee376523fooEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee37652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee376523fooEv,_ZTv0_n12_N7ee376523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee37652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee37652[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee37652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee37652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee37652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee37652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee37652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee37652[] = {
+ {&(_ZTV7ee37652[5]), 5,27},
+ {&(_ZTV7ee37652[12]), 12,27},
+ {&(_ZTV7ee37652[19]), 19,27},
+ {&(_ZTV7ee37652[25]), 25,27},
+ {&(_tg__ZTV6dd7652__7ee37652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee37652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee37652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee37652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee37652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee37652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee37652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37652[];
+extern VTBL_ENTRY _ZTV7ee37652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37652[];
+static VTBL_ENTRY alt_thunk_names1486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee376523fooEv,_ZTv0_n12_N7ee376523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee376523fooEv,_ZThn28_N7ee376523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee376523fooEv,_ZTv0_n20_N7ee376523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee376523fooEv,_ZThn16_N7ee376523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee376523fooEv,_ZTv0_n24_N7ee376523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee376523fooEv,_ZThn8_N7ee376523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37652 = { "ee37652", // class name
+ bases_ee37652, 4,
+ &(vtc_ee37652[0]), // expected_vtbl_contents
+ &(vtt_ee37652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee37652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37652),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1486,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47652 : dd7652 {
+ int e;
+ virtual void bar(); // _ZN7ee476523barEv
+ ~ee47652(); // tgen
+ ee47652(); // tgen
+};
+//SIG(1 ee47652) C1{ BC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47652 ::bar(){vfunc_called(this, "_ZN7ee476523barEv");}
+ee47652 ::~ee47652(){ note_dtor("ee47652", this);} // tgen
+ee47652 ::ee47652(){ note_ctor("ee47652", this);} // tgen
+
+static void Test_ee47652()
+{
+ extern Class_Descriptor cd_ee47652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee47652, buf);
+ ee47652 *dp, &lv = *(dp=new (buf) ee47652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee47652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee47652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee47652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(16,12), "ee47652");
+ check_base_class_offset(lv, (dd7652*), 0, "ee47652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47652.e");
+ test_class_info(&lv, &cd_ee47652);
+ dp->~ee47652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47652(Test_ee47652, "ee47652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee47652C1Ev();
+extern void _ZN7ee47652D1Ev();
+Name_Map name_map_ee47652[] = {
+ NSPAIR(_ZN7ee47652C1Ev),
+ NSPAIR(_ZN7ee47652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee47652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47652[];
+extern void _ZN7ee476523barEv();
+extern void _ZN6dd76523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee476523barEv,_ZTv0_n16_N7ee476523barEv)();
+extern void ABISELECT(_ZThn16_N7ee476523barEv,_ZThn12_N7ee476523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee476523barEv,_ZTv0_n16_N7ee476523barEv)();
+extern void ABISELECT(_ZThn32_N7ee476523barEv,_ZThn24_N7ee476523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47652[0]),
+ (VTBL_ENTRY)&_ZN7ee476523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476523barEv,_ZTv0_n16_N7ee476523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee47652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee476523barEv,_ZTv0_n16_N7ee476523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee47652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee47652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee47652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee47652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee47652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee47652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee47652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee47652[] = {
+ {&(_ZTV7ee47652[4]), 4,19},
+ {&(_tg__ZTV6dd7652__7ee47652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee47652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee47652[4]), 4,6},
+ {&(_ZTV7ee47652[11]), 11,19},
+ {&(_ZTV7ee47652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee47652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee47652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee47652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee47652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47652[];
+extern VTBL_ENTRY _ZTV7ee47652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47652[];
+static VTBL_ENTRY alt_thunk_names1487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee476523barEv,_ZTv0_n16_N7ee476523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee476523barEv,_ZThn24_N7ee476523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee476523barEv,_ZThn12_N7ee476523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47652 = { "ee47652", // class name
+ bases_ee47652, 4,
+ &(vtc_ee47652[0]), // expected_vtbl_contents
+ &(vtt_ee47652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee47652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1487,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57652 : virtual dd7652 {
+ int e;
+ virtual void bar(); // _ZN7ee576523barEv
+ ~ee57652(); // tgen
+ ee57652(); // tgen
+};
+//SIG(1 ee57652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57652 ::bar(){vfunc_called(this, "_ZN7ee576523barEv");}
+ee57652 ::~ee57652(){ note_dtor("ee57652", this);} // tgen
+ee57652 ::ee57652(){ note_ctor("ee57652", this);} // tgen
+
+static void Test_ee57652()
+{
+ extern Class_Descriptor cd_ee57652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee57652, buf);
+ ee57652 *dp, &lv = *(dp=new (buf) ee57652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee57652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee57652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee57652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(32,16), "ee57652");
+ check_base_class_offset(lv, (dd7652*), ABISELECT(16,8), "ee57652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57652.e");
+ test_class_info(&lv, &cd_ee57652);
+ dp->~ee57652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57652(Test_ee57652, "ee57652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee57652C1Ev();
+extern void _ZN7ee57652D1Ev();
+Name_Map name_map_ee57652[] = {
+ NSPAIR(_ZN7ee57652C1Ev),
+ NSPAIR(_ZN7ee57652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee57652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57652[];
+extern void _ZN7ee576523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee576523barEv,_ZTv0_n20_N7ee576523barEv)();
+extern void ABISELECT(_ZThn16_N7ee576523barEv,_ZThn8_N7ee576523barEv)() __attribute__((weak));
+extern void _ZN6dd76523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee576523barEv,_ZTv0_n16_N7ee576523barEv)();
+extern void ABISELECT(_ZThn32_N7ee576523barEv,_ZThn16_N7ee576523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee576523barEv,_ZTv0_n16_N7ee576523barEv)();
+extern void ABISELECT(_ZThn48_N7ee576523barEv,_ZThn28_N7ee576523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57652[0]),
+ (VTBL_ENTRY)&_ZN7ee576523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee576523barEv,_ZTv0_n20_N7ee576523barEv),
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576523barEv,_ZTv0_n16_N7ee576523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee57652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee576523barEv,_ZTv0_n16_N7ee576523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee57652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee57652[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee57652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee57652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee57652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee57652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee57652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee57652[] = {
+ {&(_ZTV7ee57652[5]), 5,27},
+ {&(_ZTV7ee57652[12]), 12,27},
+ {&(_ZTV7ee57652[19]), 19,27},
+ {&(_ZTV7ee57652[25]), 25,27},
+ {&(_tg__ZTV6dd7652__7ee57652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee57652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee57652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee57652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee57652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee57652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee57652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57652[];
+extern VTBL_ENTRY _ZTV7ee57652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57652[];
+static VTBL_ENTRY alt_thunk_names1488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee576523barEv,_ZTv0_n16_N7ee576523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee576523barEv,_ZThn28_N7ee576523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee576523barEv,_ZThn16_N7ee576523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee576523barEv,_ZTv0_n20_N7ee576523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee576523barEv,_ZThn8_N7ee576523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57652 = { "ee57652", // class name
+ bases_ee57652, 4,
+ &(vtc_ee57652[0]), // expected_vtbl_contents
+ &(vtt_ee57652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee57652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57652),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1488,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67652 : dd7652 {
+ int e;
+ virtual void foo(); // _ZN7ee676523fooEv
+ virtual void bar(); // _ZN7ee676523barEv
+ ~ee67652(); // tgen
+ ee67652(); // tgen
+};
+//SIG(1 ee67652) C1{ BC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67652 ::foo(){vfunc_called(this, "_ZN7ee676523fooEv");}
+void ee67652 ::bar(){vfunc_called(this, "_ZN7ee676523barEv");}
+ee67652 ::~ee67652(){ note_dtor("ee67652", this);} // tgen
+ee67652 ::ee67652(){ note_ctor("ee67652", this);} // tgen
+
+static void Test_ee67652()
+{
+ extern Class_Descriptor cd_ee67652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,9)];
+ init_test(&cd_ee67652, buf);
+ ee67652 *dp, &lv = *(dp=new (buf) ee67652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,32), "sizeof(ee67652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(32,24), "ee67652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(16,12), "ee67652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(16,12), "ee67652");
+ check_base_class_offset(lv, (dd7652*), 0, "ee67652");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67652.e");
+ test_class_info(&lv, &cd_ee67652);
+ dp->~ee67652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67652(Test_ee67652, "ee67652", ABISELECT(48,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee67652C1Ev();
+extern void _ZN7ee67652D1Ev();
+Name_Map name_map_ee67652[] = {
+ NSPAIR(_ZN7ee67652C1Ev),
+ NSPAIR(_ZN7ee67652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee67652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,24), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67652[];
+extern void _ZN7ee676523barEv();
+extern void _ZN7ee676523fooEv();
+extern void ABISELECT(_ZTv0_n32_N7ee676523barEv,_ZTv0_n16_N7ee676523barEv)();
+extern void ABISELECT(_ZThn16_N7ee676523barEv,_ZThn12_N7ee676523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee676523fooEv,_ZTv0_n20_N7ee676523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee676523fooEv,_ZThn12_N7ee676523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee676523fooEv,_ZTv0_n12_N7ee676523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee676523fooEv,_ZThn24_N7ee676523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee676523barEv,_ZTv0_n16_N7ee676523barEv)();
+extern void ABISELECT(_ZThn32_N7ee676523barEv,_ZThn24_N7ee676523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67652[0]),
+ (VTBL_ENTRY)&_ZN7ee676523barEv,
+ (VTBL_ENTRY)&_ZN7ee676523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676523barEv,_ZTv0_n16_N7ee676523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee676523fooEv,_ZTv0_n20_N7ee676523fooEv),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI7ee67652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee676523fooEv,_ZTv0_n12_N7ee676523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee676523barEv,_ZTv0_n16_N7ee676523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee67652[] = {
+ ABISELECT(32,24),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee67652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(16,12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee67652[] = {
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ ABISELECT(-32,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee67652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee67652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee67652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee67652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee67652[] = {
+ {&(_ZTV7ee67652[4]), 4,19},
+ {&(_tg__ZTV6dd7652__7ee67652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee67652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee67652[4]), 4,6},
+ {&(_ZTV7ee67652[11]), 11,19},
+ {&(_ZTV7ee67652[17]), 17,19},
+ {&(_tg__ZTV5cc652__7ee67652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee67652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee67652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee67652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67652[];
+extern VTBL_ENTRY _ZTV7ee67652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67652[];
+static VTBL_ENTRY alt_thunk_names1489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn24_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn12_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn24_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn12_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee676523fooEv,_ZTv0_n12_N7ee676523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee676523fooEv,_ZThn24_N7ee676523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee676523fooEv,_ZTv0_n20_N7ee676523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676523fooEv,_ZThn12_N7ee676523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee676523barEv,_ZTv0_n16_N7ee676523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee676523barEv,_ZThn24_N7ee676523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee676523barEv,_ZThn12_N7ee676523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67652 = { "ee67652", // class name
+ bases_ee67652, 4,
+ &(vtc_ee67652[0]), // expected_vtbl_contents
+ &(vtt_ee67652[0]), // expected_vtt_contents
+ ABISELECT(48,32), // object size
+ NSPAIRA(_ZTI7ee67652),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67652),19, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67652),10, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1489,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77652 : virtual dd7652 {
+ int e;
+ virtual void foo(); // _ZN7ee776523fooEv
+ virtual void bar(); // _ZN7ee776523barEv
+ ~ee77652(); // tgen
+ ee77652(); // tgen
+};
+//SIG(1 ee77652) C1{ VBC2{ VBC3{ BC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77652 ::foo(){vfunc_called(this, "_ZN7ee776523fooEv");}
+void ee77652 ::bar(){vfunc_called(this, "_ZN7ee776523barEv");}
+ee77652 ::~ee77652(){ note_dtor("ee77652", this);} // tgen
+ee77652 ::ee77652(){ note_ctor("ee77652", this);} // tgen
+
+static void Test_ee77652()
+{
+ extern Class_Descriptor cd_ee77652;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee77652, buf);
+ ee77652 *dp, &lv = *(dp=new (buf) ee77652());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee77652)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77652)");
+ check_base_class_offset(lv, (aa2*)(bb52*)(cc652*), ABISELECT(48,28), "ee77652");
+ check_base_class_offset(lv, (bb52*)(cc652*), ABISELECT(32,16), "ee77652");
+ check_base_class_offset(lv, (cc652*)(dd7652*), ABISELECT(32,16), "ee77652");
+ check_base_class_offset(lv, (dd7652*), ABISELECT(16,8), "ee77652");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77652.e");
+ test_class_info(&lv, &cd_ee77652);
+ dp->~ee77652();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77652(Test_ee77652, "ee77652", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee77652C1Ev();
+extern void _ZN7ee77652D1Ev();
+Name_Map name_map_ee77652[] = {
+ NSPAIR(_ZN7ee77652C1Ev),
+ NSPAIR(_ZN7ee77652D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc652;
+extern VTBL_ENTRY _ZTI5cc652[];
+extern VTBL_ENTRY _ZTV5cc652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc652[];
+extern Class_Descriptor cd_dd7652;
+extern VTBL_ENTRY _ZTI6dd7652[];
+extern VTBL_ENTRY _ZTV6dd7652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7652[];
+static Base_Class bases_ee77652[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 0},
+ {&cd_cc652, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7652, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77652[];
+extern void _ZN7ee776523fooEv();
+extern void _ZN7ee776523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee776523barEv,_ZTv0_n20_N7ee776523barEv)();
+extern void ABISELECT(_ZThn16_N7ee776523barEv,_ZThn8_N7ee776523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee776523fooEv,_ZTv0_n24_N7ee776523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee776523fooEv,_ZThn8_N7ee776523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776523barEv,_ZTv0_n16_N7ee776523barEv)();
+extern void ABISELECT(_ZThn32_N7ee776523barEv,_ZThn16_N7ee776523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee776523fooEv,_ZTv0_n20_N7ee776523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee776523fooEv,_ZThn16_N7ee776523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee776523fooEv,_ZTv0_n12_N7ee776523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee776523fooEv,_ZThn28_N7ee776523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee776523barEv,_ZTv0_n16_N7ee776523barEv)();
+extern void ABISELECT(_ZThn48_N7ee776523barEv,_ZThn28_N7ee776523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77652[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77652[0]),
+ (VTBL_ENTRY)&_ZN7ee776523fooEv,
+ (VTBL_ENTRY)&_ZN7ee776523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776523barEv,_ZTv0_n20_N7ee776523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee776523fooEv,_ZTv0_n24_N7ee776523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(16,12),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776523barEv,_ZTv0_n16_N7ee776523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee776523fooEv,_ZTv0_n20_N7ee776523fooEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee77652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee776523fooEv,_ZTv0_n12_N7ee776523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee776523barEv,_ZTv0_n16_N7ee776523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77652[];
+extern void _ZN6dd76523barEv();
+extern void _ZN6dd76523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7652__7ee77652[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&_ZN6dd76523barEv,
+ (VTBL_ENTRY)&_ZN6dd76523fooEv,
+};
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc652__6dd7652__7ee77652[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv)();
+extern void ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7652__7ee77652[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv),
+};
+extern void _ZN5cc6523barEv();
+extern void _ZN5cc6523fooEv();
+static VTBL_ENTRY _tg__ZTV5cc652__7ee77652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&_ZN5cc6523barEv,
+ (VTBL_ENTRY)&_ZN5cc6523fooEv,
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb525cc652__7ee77652[] = {
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb525cc652__7ee77652[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv)();
+extern void ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv)();
+extern void ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc652__7ee77652[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc652[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv),
+};
+static VTT_ENTRY vtt_ee77652[] = {
+ {&(_ZTV7ee77652[5]), 5,28},
+ {&(_ZTV7ee77652[13]), 13,28},
+ {&(_ZTV7ee77652[20]), 20,28},
+ {&(_ZTV7ee77652[26]), 26,28},
+ {&(_tg__ZTV6dd7652__7ee77652[4]), 4,6},
+ {&(_tg__ZTV5cc652__6dd7652__7ee77652[5]), 5,7},
+ {&(_tg__ZTV3aa2__6dd7652__7ee77652[4]), 4,6},
+ {&(_tg__ZTV5cc652__7ee77652[3]), 3,5},
+ {&(_tg__ZTV4bb525cc652__7ee77652[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb525cc652__7ee77652[4]), 4,6},
+ {&(_tg__ZTV3aa2__5cc652__7ee77652[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77652[];
+extern VTBL_ENTRY _ZTV7ee77652[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77652[];
+static VTBL_ENTRY alt_thunk_names1490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc6523barEv,_ZTv0_n16_N5cc6523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523barEv,_ZThn12_N5cc6523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc6523fooEv,_ZTv0_n12_N5cc6523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc6523fooEv,_ZThn12_N5cc6523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn12_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd76523fooEv,_ZTv0_n12_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523fooEv,_ZThn20_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd76523fooEv,_ZTv0_n20_N6dd76523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523fooEv,_ZThn8_N6dd76523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd76523barEv,_ZTv0_n16_N6dd76523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd76523barEv,_ZThn20_N6dd76523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd76523barEv,_ZThn8_N6dd76523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee776523fooEv,_ZTv0_n12_N7ee776523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee776523fooEv,_ZThn28_N7ee776523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776523fooEv,_ZTv0_n20_N7ee776523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776523fooEv,_ZThn16_N7ee776523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee776523barEv,_ZTv0_n16_N7ee776523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee776523barEv,_ZThn28_N7ee776523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee776523barEv,_ZThn16_N7ee776523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee776523fooEv,_ZTv0_n24_N7ee776523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776523fooEv,_ZThn8_N7ee776523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee776523barEv,_ZTv0_n20_N7ee776523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee776523barEv,_ZThn8_N7ee776523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77652 = { "ee77652", // class name
+ bases_ee77652, 4,
+ &(vtc_ee77652[0]), // expected_vtbl_contents
+ &(vtt_ee77652[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee77652),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77652),28, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77652),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1490,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct cc752 : virtual bb52 {
+ int c;
+ virtual void foo(); // _ZN5cc7523fooEv
+ virtual void bar(); // _ZN5cc7523barEv
+ ~cc752(); // tgen
+ cc752(); // tgen
+};
+//SIG(-1 cc752) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void cc752 ::foo(){vfunc_called(this, "_ZN5cc7523fooEv");}
+void cc752 ::bar(){vfunc_called(this, "_ZN5cc7523barEv");}
+cc752 ::~cc752(){ note_dtor("cc752", this);} // tgen
+cc752 ::cc752(){ note_ctor("cc752", this);} // tgen
+
+static void Test_cc752()
+{
+ extern Class_Descriptor cd_cc752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_cc752, buf);
+ cc752 *dp, &lv = *(dp=new (buf) cc752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(cc752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(cc752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,16), "cc752");
+ check_base_class_offset(lv, (bb52*), ABISELECT(16,8), "cc752");
+ check_field_offset(lv, c, ABISELECT(8,4), "cc752.c");
+ test_class_info(&lv, &cd_cc752);
+ dp->~cc752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vcc752(Test_cc752, "cc752", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5cc752C1Ev();
+extern void _ZN5cc752D1Ev();
+Name_Map name_map_cc752[] = {
+ NSPAIR(_ZN5cc752C1Ev),
+ NSPAIR(_ZN5cc752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+static Base_Class bases_cc752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, 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
+ 4, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5cc752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_cc752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV5cc752[];
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__5cc752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_cc752[] = {
+ {&(_ZTV5cc752[4]), 4,17},
+ {&(_ZTV5cc752[10]), 10,17},
+ {&(_ZTV5cc752[15]), 15,17},
+ {&(_tg__ZTV4bb52__5cc752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__5cc752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static VTBL_ENTRY alt_thunk_names1491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_cc752 = { "cc752", // class name
+ bases_cc752, 2,
+ &(vtc_cc752[0]), // expected_vtbl_contents
+ &(vtt_cc752[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5cc752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV5cc752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5cc752),5, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1491,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd0752 : cc752 {
+ int d;
+ ~dd0752(); // tgen
+ dd0752(); // tgen
+};
+//SIG(-1 dd0752) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd0752 ::~dd0752(){ note_dtor("dd0752", this);} // tgen
+dd0752 ::dd0752(){ note_ctor("dd0752", this);} // tgen
+
+static void Test_dd0752()
+{
+ extern Class_Descriptor cd_dd0752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd0752, buf);
+ dd0752 *dp, &lv = *(dp=new (buf) dd0752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd0752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd0752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd0752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(16,12), "dd0752");
+ check_base_class_offset(lv, (cc752*), 0, "dd0752");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd0752.d");
+ test_class_info(&lv, &cd_dd0752);
+ dp->~dd0752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd0752(Test_dd0752, "dd0752", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd0752C1Ev();
+extern void _ZN6dd0752D1Ev();
+Name_Map name_map_dd0752[] = {
+ NSPAIR(_ZN6dd0752C1Ev),
+ NSPAIR(_ZN6dd0752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd0752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd0752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd0752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd0752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd0752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd0752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd0752[] = {
+ {&(_ZTV6dd0752[4]), 4,17},
+ {&(_tg__ZTV5cc752__6dd0752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd0752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd0752[4]), 4,6},
+ {&(_ZTV6dd0752[10]), 10,17},
+ {&(_ZTV6dd0752[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd0752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd0752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static VTBL_ENTRY alt_thunk_names1492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd0752 = { "dd0752", // class name
+ bases_dd0752, 3,
+ &(vtc_dd0752[0]), // expected_vtbl_contents
+ &(vtt_dd0752[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd0752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd0752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd0752),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1492,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee00752 : dd0752 {
+ int e;
+ ~ee00752(); // tgen
+ ee00752(); // tgen
+};
+//SIG(1 ee00752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee00752 ::~ee00752(){ note_dtor("ee00752", this);} // tgen
+ee00752 ::ee00752(){ note_ctor("ee00752", this);} // tgen
+
+static void Test_ee00752()
+{
+ extern Class_Descriptor cd_ee00752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee00752, buf);
+ ee00752 *dp, &lv = *(dp=new (buf) ee00752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee00752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee00752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee00752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(24,16), "ee00752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), 0, "ee00752");
+ check_base_class_offset(lv, (dd0752*), 0, "ee00752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee00752.e");
+ test_class_info(&lv, &cd_ee00752);
+ dp->~ee00752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee00752(Test_ee00752, "ee00752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee00752C1Ev();
+extern void _ZN7ee00752D1Ev();
+Name_Map name_map_ee00752[] = {
+ NSPAIR(_ZN7ee00752C1Ev),
+ NSPAIR(_ZN7ee00752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee00752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee00752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee00752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee00752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee00752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee00752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee00752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee00752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee00752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee00752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee00752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee00752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee00752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee00752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee00752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee00752[] = {
+ {&(_ZTV7ee00752[4]), 4,17},
+ {&(_tg__ZTV6dd0752__7ee00752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee00752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee00752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee00752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee00752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee00752[4]), 4,6},
+ {&(_ZTV7ee00752[10]), 10,17},
+ {&(_ZTV7ee00752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee00752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee00752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee00752[];
+extern VTBL_ENTRY _ZTV7ee00752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee00752[];
+static VTBL_ENTRY alt_thunk_names1493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee00752 = { "ee00752", // class name
+ bases_ee00752, 4,
+ &(vtc_ee00752[0]), // expected_vtbl_contents
+ &(vtt_ee00752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee00752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee00752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee00752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1493,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee10752 : virtual dd0752 {
+ int e;
+ ~ee10752(); // tgen
+ ee10752(); // tgen
+};
+//SIG(1 ee10752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee10752 ::~ee10752(){ note_dtor("ee10752", this);} // tgen
+ee10752 ::ee10752(){ note_ctor("ee10752", this);} // tgen
+
+static void Test_ee10752()
+{
+ extern Class_Descriptor cd_ee10752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee10752, buf);
+ ee10752 *dp, &lv = *(dp=new (buf) ee10752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee10752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee10752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee10752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(32,20), "ee10752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), ABISELECT(16,8), "ee10752");
+ check_base_class_offset(lv, (dd0752*), ABISELECT(16,8), "ee10752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee10752.e");
+ test_class_info(&lv, &cd_ee10752);
+ dp->~ee10752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee10752(Test_ee10752, "ee10752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee10752C1Ev();
+extern void _ZN7ee10752D1Ev();
+Name_Map name_map_ee10752[] = {
+ NSPAIR(_ZN7ee10752C1Ev),
+ NSPAIR(_ZN7ee10752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee10752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee10752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee10752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee10752[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee10752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee10752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee10752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee10752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee10752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee10752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee10752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee10752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee10752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee10752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee10752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee10752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee10752[] = {
+ {&(_ZTV7ee10752[5]), 5,24},
+ {&(_ZTV7ee10752[11]), 11,24},
+ {&(_ZTV7ee10752[17]), 17,24},
+ {&(_ZTV7ee10752[22]), 22,24},
+ {&(_tg__ZTV6dd0752__7ee10752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee10752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee10752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee10752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee10752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee10752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee10752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee10752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee10752[];
+extern VTBL_ENTRY _ZTV7ee10752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee10752[];
+static VTBL_ENTRY alt_thunk_names1494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee10752 = { "ee10752", // class name
+ bases_ee10752, 4,
+ &(vtc_ee10752[0]), // expected_vtbl_contents
+ &(vtt_ee10752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee10752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee10752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee10752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1494,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee20752 : dd0752 {
+ int e;
+ virtual void foo(); // _ZN7ee207523fooEv
+ ~ee20752(); // tgen
+ ee20752(); // tgen
+};
+//SIG(1 ee20752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee20752 ::foo(){vfunc_called(this, "_ZN7ee207523fooEv");}
+ee20752 ::~ee20752(){ note_dtor("ee20752", this);} // tgen
+ee20752 ::ee20752(){ note_ctor("ee20752", this);} // tgen
+
+static void Test_ee20752()
+{
+ extern Class_Descriptor cd_ee20752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee20752, buf);
+ ee20752 *dp, &lv = *(dp=new (buf) ee20752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee20752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee20752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee20752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(24,16), "ee20752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), 0, "ee20752");
+ check_base_class_offset(lv, (dd0752*), 0, "ee20752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee20752.e");
+ test_class_info(&lv, &cd_ee20752);
+ dp->~ee20752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee20752(Test_ee20752, "ee20752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee20752C1Ev();
+extern void _ZN7ee20752D1Ev();
+Name_Map name_map_ee20752[] = {
+ NSPAIR(_ZN7ee20752C1Ev),
+ NSPAIR(_ZN7ee20752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee20752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee20752[];
+extern void _ZN7ee207523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee207523fooEv,_ZTv0_n12_N7ee207523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee207523fooEv,_ZThn24_N7ee207523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee20752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee20752[0]),
+ (VTBL_ENTRY)&_ZN7ee207523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee20752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee20752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee207523fooEv,_ZTv0_n12_N7ee207523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee20752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee20752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee20752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee20752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee20752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee20752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee20752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee20752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee20752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee20752[] = {
+ {&(_ZTV7ee20752[4]), 4,17},
+ {&(_tg__ZTV6dd0752__7ee20752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee20752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee20752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee20752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee20752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee20752[4]), 4,6},
+ {&(_ZTV7ee20752[10]), 10,17},
+ {&(_ZTV7ee20752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee20752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee20752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee20752[];
+extern VTBL_ENTRY _ZTV7ee20752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee20752[];
+static VTBL_ENTRY alt_thunk_names1495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee207523fooEv,_ZTv0_n12_N7ee207523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee207523fooEv,_ZThn24_N7ee207523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee20752 = { "ee20752", // class name
+ bases_ee20752, 4,
+ &(vtc_ee20752[0]), // expected_vtbl_contents
+ &(vtt_ee20752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee20752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee20752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee20752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1495,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee30752 : virtual dd0752 {
+ int e;
+ virtual void foo(); // _ZN7ee307523fooEv
+ ~ee30752(); // tgen
+ ee30752(); // tgen
+};
+//SIG(1 ee30752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee30752 ::foo(){vfunc_called(this, "_ZN7ee307523fooEv");}
+ee30752 ::~ee30752(){ note_dtor("ee30752", this);} // tgen
+ee30752 ::ee30752(){ note_ctor("ee30752", this);} // tgen
+
+static void Test_ee30752()
+{
+ extern Class_Descriptor cd_ee30752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee30752, buf);
+ ee30752 *dp, &lv = *(dp=new (buf) ee30752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee30752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee30752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee30752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(32,20), "ee30752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), ABISELECT(16,8), "ee30752");
+ check_base_class_offset(lv, (dd0752*), ABISELECT(16,8), "ee30752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee30752.e");
+ test_class_info(&lv, &cd_ee30752);
+ dp->~ee30752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee30752(Test_ee30752, "ee30752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee30752C1Ev();
+extern void _ZN7ee30752D1Ev();
+Name_Map name_map_ee30752[] = {
+ NSPAIR(_ZN7ee30752C1Ev),
+ NSPAIR(_ZN7ee30752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee30752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee30752[];
+extern void _ZN7ee307523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee307523fooEv,_ZTv0_n20_N7ee307523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee307523fooEv,_ZThn8_N7ee307523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee307523fooEv,_ZTv0_n12_N7ee307523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee307523fooEv,_ZThn28_N7ee307523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee30752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee30752[0]),
+ (VTBL_ENTRY)&_ZN7ee307523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee30752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee307523fooEv,_ZTv0_n20_N7ee307523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee30752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee30752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee307523fooEv,_ZTv0_n12_N7ee307523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee30752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee30752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee30752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee30752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee30752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee30752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee30752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee30752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee30752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee30752[] = {
+ {&(_ZTV7ee30752[5]), 5,25},
+ {&(_ZTV7ee30752[12]), 12,25},
+ {&(_ZTV7ee30752[18]), 18,25},
+ {&(_ZTV7ee30752[23]), 23,25},
+ {&(_tg__ZTV6dd0752__7ee30752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee30752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee30752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee30752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee30752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee30752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee30752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee30752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee30752[];
+extern VTBL_ENTRY _ZTV7ee30752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee30752[];
+static VTBL_ENTRY alt_thunk_names1496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee307523fooEv,_ZTv0_n12_N7ee307523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee307523fooEv,_ZThn28_N7ee307523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee307523fooEv,_ZTv0_n20_N7ee307523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee307523fooEv,_ZThn8_N7ee307523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee30752 = { "ee30752", // class name
+ bases_ee30752, 4,
+ &(vtc_ee30752[0]), // expected_vtbl_contents
+ &(vtt_ee30752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee30752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee30752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee30752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1496,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee40752 : dd0752 {
+ int e;
+ virtual void bar(); // _ZN7ee407523barEv
+ ~ee40752(); // tgen
+ ee40752(); // tgen
+};
+//SIG(1 ee40752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee40752 ::bar(){vfunc_called(this, "_ZN7ee407523barEv");}
+ee40752 ::~ee40752(){ note_dtor("ee40752", this);} // tgen
+ee40752 ::ee40752(){ note_ctor("ee40752", this);} // tgen
+
+static void Test_ee40752()
+{
+ extern Class_Descriptor cd_ee40752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee40752, buf);
+ ee40752 *dp, &lv = *(dp=new (buf) ee40752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee40752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee40752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee40752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(24,16), "ee40752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), 0, "ee40752");
+ check_base_class_offset(lv, (dd0752*), 0, "ee40752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee40752.e");
+ test_class_info(&lv, &cd_ee40752);
+ dp->~ee40752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee40752(Test_ee40752, "ee40752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee40752C1Ev();
+extern void _ZN7ee40752D1Ev();
+Name_Map name_map_ee40752[] = {
+ NSPAIR(_ZN7ee40752C1Ev),
+ NSPAIR(_ZN7ee40752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee40752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee40752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN7ee407523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee407523barEv,_ZTv0_n16_N7ee407523barEv)();
+extern void ABISELECT(_ZThn24_N7ee407523barEv,_ZThn16_N7ee407523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee407523barEv,_ZTv0_n16_N7ee407523barEv)();
+extern void ABISELECT(_ZThn40_N7ee407523barEv,_ZThn24_N7ee407523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee40752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee40752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN7ee407523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee40752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407523barEv,_ZTv0_n16_N7ee407523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee40752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee407523barEv,_ZTv0_n16_N7ee407523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee40752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee40752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee40752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee40752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee40752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee40752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee40752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee40752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee40752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee40752[] = {
+ {&(_ZTV7ee40752[4]), 4,17},
+ {&(_tg__ZTV6dd0752__7ee40752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee40752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee40752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee40752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee40752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee40752[4]), 4,6},
+ {&(_ZTV7ee40752[10]), 10,17},
+ {&(_ZTV7ee40752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee40752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee40752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee40752[];
+extern VTBL_ENTRY _ZTV7ee40752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee40752[];
+static VTBL_ENTRY alt_thunk_names1497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee407523barEv,_ZTv0_n16_N7ee407523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee407523barEv,_ZThn24_N7ee407523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee407523barEv,_ZThn16_N7ee407523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee40752 = { "ee40752", // class name
+ bases_ee40752, 4,
+ &(vtc_ee40752[0]), // expected_vtbl_contents
+ &(vtt_ee40752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee40752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee40752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee40752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1497,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee50752 : virtual dd0752 {
+ int e;
+ virtual void bar(); // _ZN7ee507523barEv
+ ~ee50752(); // tgen
+ ee50752(); // tgen
+};
+//SIG(1 ee50752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee50752 ::bar(){vfunc_called(this, "_ZN7ee507523barEv");}
+ee50752 ::~ee50752(){ note_dtor("ee50752", this);} // tgen
+ee50752 ::ee50752(){ note_ctor("ee50752", this);} // tgen
+
+static void Test_ee50752()
+{
+ extern Class_Descriptor cd_ee50752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee50752, buf);
+ ee50752 *dp, &lv = *(dp=new (buf) ee50752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee50752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee50752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee50752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(32,20), "ee50752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), ABISELECT(16,8), "ee50752");
+ check_base_class_offset(lv, (dd0752*), ABISELECT(16,8), "ee50752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee50752.e");
+ test_class_info(&lv, &cd_ee50752);
+ dp->~ee50752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee50752(Test_ee50752, "ee50752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee50752C1Ev();
+extern void _ZN7ee50752D1Ev();
+Name_Map name_map_ee50752[] = {
+ NSPAIR(_ZN7ee50752C1Ev),
+ NSPAIR(_ZN7ee50752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee50752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee50752[];
+extern void _ZN7ee507523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee507523barEv,_ZTv0_n24_N7ee507523barEv)();
+extern void ABISELECT(_ZThn16_N7ee507523barEv,_ZThn8_N7ee507523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507523barEv,_ZTv0_n16_N7ee507523barEv)();
+extern void ABISELECT(_ZThn32_N7ee507523barEv,_ZThn20_N7ee507523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee507523barEv,_ZTv0_n16_N7ee507523barEv)();
+extern void ABISELECT(_ZThn48_N7ee507523barEv,_ZThn28_N7ee507523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee50752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee50752[0]),
+ (VTBL_ENTRY)&_ZN7ee507523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee50752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee507523barEv,_ZTv0_n24_N7ee507523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee50752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507523barEv,_ZTv0_n16_N7ee507523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee50752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee507523barEv,_ZTv0_n16_N7ee507523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee50752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee50752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee50752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee50752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee50752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee50752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee50752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee50752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee50752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee50752[] = {
+ {&(_ZTV7ee50752[5]), 5,25},
+ {&(_ZTV7ee50752[12]), 12,25},
+ {&(_ZTV7ee50752[18]), 18,25},
+ {&(_ZTV7ee50752[23]), 23,25},
+ {&(_tg__ZTV6dd0752__7ee50752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee50752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee50752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee50752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee50752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee50752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee50752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee50752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee50752[];
+extern VTBL_ENTRY _ZTV7ee50752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee50752[];
+static VTBL_ENTRY alt_thunk_names1498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee507523barEv,_ZTv0_n16_N7ee507523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee507523barEv,_ZThn28_N7ee507523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee507523barEv,_ZThn20_N7ee507523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee507523barEv,_ZTv0_n24_N7ee507523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee507523barEv,_ZThn8_N7ee507523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee50752 = { "ee50752", // class name
+ bases_ee50752, 4,
+ &(vtc_ee50752[0]), // expected_vtbl_contents
+ &(vtt_ee50752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee50752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee50752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee50752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1498,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee60752 : dd0752 {
+ int e;
+ virtual void foo(); // _ZN7ee607523fooEv
+ virtual void bar(); // _ZN7ee607523barEv
+ ~ee60752(); // tgen
+ ee60752(); // tgen
+};
+//SIG(1 ee60752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee60752 ::foo(){vfunc_called(this, "_ZN7ee607523fooEv");}
+void ee60752 ::bar(){vfunc_called(this, "_ZN7ee607523barEv");}
+ee60752 ::~ee60752(){ note_dtor("ee60752", this);} // tgen
+ee60752 ::ee60752(){ note_ctor("ee60752", this);} // tgen
+
+static void Test_ee60752()
+{
+ extern Class_Descriptor cd_ee60752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee60752, buf);
+ ee60752 *dp, &lv = *(dp=new (buf) ee60752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee60752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee60752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee60752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(24,16), "ee60752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), 0, "ee60752");
+ check_base_class_offset(lv, (dd0752*), 0, "ee60752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee60752.e");
+ test_class_info(&lv, &cd_ee60752);
+ dp->~ee60752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee60752(Test_ee60752, "ee60752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee60752C1Ev();
+extern void _ZN7ee60752D1Ev();
+Name_Map name_map_ee60752[] = {
+ NSPAIR(_ZN7ee60752C1Ev),
+ NSPAIR(_ZN7ee60752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee60752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee60752[];
+extern void _ZN7ee607523fooEv();
+extern void _ZN7ee607523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee607523barEv,_ZTv0_n16_N7ee607523barEv)();
+extern void ABISELECT(_ZThn24_N7ee607523barEv,_ZThn16_N7ee607523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee607523fooEv,_ZTv0_n12_N7ee607523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee607523fooEv,_ZThn24_N7ee607523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee607523barEv,_ZTv0_n16_N7ee607523barEv)();
+extern void ABISELECT(_ZThn40_N7ee607523barEv,_ZThn24_N7ee607523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee60752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee60752[0]),
+ (VTBL_ENTRY)&_ZN7ee607523fooEv,
+ (VTBL_ENTRY)&_ZN7ee607523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee60752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607523barEv,_ZTv0_n16_N7ee607523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee60752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee607523fooEv,_ZTv0_n12_N7ee607523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee607523barEv,_ZTv0_n16_N7ee607523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee60752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee60752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee60752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee60752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee60752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee60752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee60752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee60752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee60752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee60752[] = {
+ {&(_ZTV7ee60752[4]), 4,17},
+ {&(_tg__ZTV6dd0752__7ee60752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee60752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee60752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee60752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee60752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee60752[4]), 4,6},
+ {&(_ZTV7ee60752[10]), 10,17},
+ {&(_ZTV7ee60752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee60752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee60752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee60752[];
+extern VTBL_ENTRY _ZTV7ee60752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee60752[];
+static VTBL_ENTRY alt_thunk_names1499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee607523fooEv,_ZTv0_n12_N7ee607523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee607523fooEv,_ZThn24_N7ee607523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee607523barEv,_ZTv0_n16_N7ee607523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee607523barEv,_ZThn24_N7ee607523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee607523barEv,_ZThn16_N7ee607523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee60752 = { "ee60752", // class name
+ bases_ee60752, 4,
+ &(vtc_ee60752[0]), // expected_vtbl_contents
+ &(vtt_ee60752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee60752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee60752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee60752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee70752 : virtual dd0752 {
+ int e;
+ virtual void foo(); // _ZN7ee707523fooEv
+ virtual void bar(); // _ZN7ee707523barEv
+ ~ee70752(); // tgen
+ ee70752(); // tgen
+};
+//SIG(1 ee70752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee70752 ::foo(){vfunc_called(this, "_ZN7ee707523fooEv");}
+void ee70752 ::bar(){vfunc_called(this, "_ZN7ee707523barEv");}
+ee70752 ::~ee70752(){ note_dtor("ee70752", this);} // tgen
+ee70752 ::ee70752(){ note_ctor("ee70752", this);} // tgen
+
+static void Test_ee70752()
+{
+ extern Class_Descriptor cd_ee70752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee70752, buf);
+ ee70752 *dp, &lv = *(dp=new (buf) ee70752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee70752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee70752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee70752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd0752*), ABISELECT(32,20), "ee70752");
+ check_base_class_offset(lv, (cc752*)(dd0752*), ABISELECT(16,8), "ee70752");
+ check_base_class_offset(lv, (dd0752*), ABISELECT(16,8), "ee70752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee70752.e");
+ test_class_info(&lv, &cd_ee70752);
+ dp->~ee70752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee70752(Test_ee70752, "ee70752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee70752C1Ev();
+extern void _ZN7ee70752D1Ev();
+Name_Map name_map_ee70752[] = {
+ NSPAIR(_ZN7ee70752C1Ev),
+ NSPAIR(_ZN7ee70752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd0752;
+extern VTBL_ENTRY _ZTI6dd0752[];
+extern VTBL_ENTRY _ZTV6dd0752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd0752[];
+static Base_Class bases_ee70752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd0752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee70752[];
+extern void _ZN7ee707523fooEv();
+extern void _ZN7ee707523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee707523fooEv,_ZTv0_n20_N7ee707523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee707523fooEv,_ZThn8_N7ee707523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee707523barEv,_ZTv0_n24_N7ee707523barEv)();
+extern void ABISELECT(_ZThn16_N7ee707523barEv,_ZThn8_N7ee707523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707523barEv,_ZTv0_n16_N7ee707523barEv)();
+extern void ABISELECT(_ZThn32_N7ee707523barEv,_ZThn20_N7ee707523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee707523fooEv,_ZTv0_n12_N7ee707523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee707523fooEv,_ZThn28_N7ee707523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee707523barEv,_ZTv0_n16_N7ee707523barEv)();
+extern void ABISELECT(_ZThn48_N7ee707523barEv,_ZThn28_N7ee707523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee70752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee70752[0]),
+ (VTBL_ENTRY)&_ZN7ee707523fooEv,
+ (VTBL_ENTRY)&_ZN7ee707523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee70752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee707523fooEv,_ZTv0_n20_N7ee707523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee707523barEv,_ZTv0_n24_N7ee707523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee70752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707523barEv,_ZTv0_n16_N7ee707523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee70752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee707523fooEv,_ZTv0_n12_N7ee707523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee707523barEv,_ZTv0_n16_N7ee707523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee70752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd0752__7ee70752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd0752__7ee70752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd0752__7ee70752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd0752__7ee70752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd0752__7ee70752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd0752__7ee70752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd0752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee70752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee70752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee70752[] = {
+ {&(_ZTV7ee70752[5]), 5,26},
+ {&(_ZTV7ee70752[13]), 13,26},
+ {&(_ZTV7ee70752[19]), 19,26},
+ {&(_ZTV7ee70752[24]), 24,26},
+ {&(_tg__ZTV6dd0752__7ee70752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd0752__7ee70752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd0752__7ee70752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd0752__7ee70752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd0752__7ee70752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd0752__7ee70752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee70752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee70752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee70752[];
+extern VTBL_ENTRY _ZTV7ee70752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee70752[];
+static VTBL_ENTRY alt_thunk_names1500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee707523fooEv,_ZTv0_n12_N7ee707523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee707523fooEv,_ZThn28_N7ee707523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee707523barEv,_ZTv0_n16_N7ee707523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee707523barEv,_ZThn28_N7ee707523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee707523barEv,_ZThn20_N7ee707523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee707523barEv,_ZTv0_n24_N7ee707523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707523barEv,_ZThn8_N7ee707523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee707523fooEv,_ZTv0_n20_N7ee707523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee707523fooEv,_ZThn8_N7ee707523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee70752 = { "ee70752", // class name
+ bases_ee70752, 4,
+ &(vtc_ee70752[0]), // expected_vtbl_contents
+ &(vtt_ee70752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee70752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee70752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee70752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1500,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd1752 : virtual cc752 {
+ int d;
+ ~dd1752(); // tgen
+ dd1752(); // tgen
+};
+//SIG(-1 dd1752) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi}
+
+
+dd1752 ::~dd1752(){ note_dtor("dd1752", this);} // tgen
+dd1752 ::dd1752(){ note_ctor("dd1752", this);} // tgen
+
+static void Test_dd1752()
+{
+ extern Class_Descriptor cd_dd1752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd1752, buf);
+ dd1752 *dp, &lv = *(dp=new (buf) dd1752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd1752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd1752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd1752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,16), "dd1752");
+ check_base_class_offset(lv, (cc752*), ABISELECT(16,8), "dd1752");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd1752.d");
+ test_class_info(&lv, &cd_dd1752);
+ dp->~dd1752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd1752(Test_dd1752, "dd1752", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd1752C1Ev();
+extern void _ZN6dd1752D1Ev();
+Name_Map name_map_dd1752[] = {
+ NSPAIR(_ZN6dd1752C1Ev),
+ NSPAIR(_ZN6dd1752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd1752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd1752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd1752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd1752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd1752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd1752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd1752[] = {
+ {&(_ZTV6dd1752[5]), 5,24},
+ {&(_ZTV6dd1752[11]), 11,24},
+ {&(_ZTV6dd1752[17]), 17,24},
+ {&(_ZTV6dd1752[22]), 22,24},
+ {&(_tg__ZTV5cc752__6dd1752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd1752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd1752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd1752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd1752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static VTBL_ENTRY alt_thunk_names1501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd1752 = { "dd1752", // class name
+ bases_dd1752, 3,
+ &(vtc_dd1752[0]), // expected_vtbl_contents
+ &(vtt_dd1752[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd1752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd1752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd1752),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1501,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee01752 : dd1752 {
+ int e;
+ ~ee01752(); // tgen
+ ee01752(); // tgen
+};
+//SIG(1 ee01752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee01752 ::~ee01752(){ note_dtor("ee01752", this);} // tgen
+ee01752 ::ee01752(){ note_ctor("ee01752", this);} // tgen
+
+static void Test_ee01752()
+{
+ extern Class_Descriptor cd_ee01752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee01752, buf);
+ ee01752 *dp, &lv = *(dp=new (buf) ee01752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee01752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee01752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee01752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee01752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(16,12), "ee01752");
+ check_base_class_offset(lv, (dd1752*), 0, "ee01752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee01752.e");
+ test_class_info(&lv, &cd_ee01752);
+ dp->~ee01752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee01752(Test_ee01752, "ee01752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee01752C1Ev();
+extern void _ZN7ee01752D1Ev();
+Name_Map name_map_ee01752[] = {
+ NSPAIR(_ZN7ee01752C1Ev),
+ NSPAIR(_ZN7ee01752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee01752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee01752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee01752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee01752[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee01752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee01752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee01752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee01752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee01752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee01752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee01752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee01752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee01752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee01752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee01752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee01752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee01752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee01752[] = {
+ {&(_ZTV7ee01752[5]), 5,24},
+ {&(_tg__ZTV6dd1752__7ee01752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee01752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee01752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee01752[4]), 4,6},
+ {&(_ZTV7ee01752[11]), 11,24},
+ {&(_ZTV7ee01752[17]), 17,24},
+ {&(_ZTV7ee01752[22]), 22,24},
+ {&(_tg__ZTV5cc752__7ee01752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee01752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee01752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee01752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee01752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee01752[];
+extern VTBL_ENTRY _ZTV7ee01752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee01752[];
+static VTBL_ENTRY alt_thunk_names1502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee01752 = { "ee01752", // class name
+ bases_ee01752, 4,
+ &(vtc_ee01752[0]), // expected_vtbl_contents
+ &(vtt_ee01752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee01752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee01752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee01752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1502,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee11752 : virtual dd1752 {
+ int e;
+ ~ee11752(); // tgen
+ ee11752(); // tgen
+};
+//SIG(1 ee11752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} Fi}
+
+
+ee11752 ::~ee11752(){ note_dtor("ee11752", this);} // tgen
+ee11752 ::ee11752(){ note_ctor("ee11752", this);} // tgen
+
+static void Test_ee11752()
+{
+ extern Class_Descriptor cd_ee11752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee11752, buf);
+ ee11752 *dp, &lv = *(dp=new (buf) ee11752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee11752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee11752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee11752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee11752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(32,16), "ee11752");
+ check_base_class_offset(lv, (dd1752*), ABISELECT(16,8), "ee11752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee11752.e");
+ test_class_info(&lv, &cd_ee11752);
+ dp->~ee11752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee11752(Test_ee11752, "ee11752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee11752C1Ev();
+extern void _ZN7ee11752D1Ev();
+Name_Map name_map_ee11752[] = {
+ NSPAIR(_ZN7ee11752C1Ev),
+ NSPAIR(_ZN7ee11752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee11752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee11752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee11752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee11752[0]),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee11752[0]),
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee11752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee11752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee11752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee11752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee11752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee11752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee11752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee11752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee11752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee11752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee11752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee11752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee11752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee11752[] = {
+ {&(_ZTV7ee11752[6]), 6,30},
+ {&(_ZTV7ee11752[11]), 11,30},
+ {&(_ZTV7ee11752[17]), 17,30},
+ {&(_ZTV7ee11752[23]), 23,30},
+ {&(_ZTV7ee11752[28]), 28,30},
+ {&(_tg__ZTV6dd1752__7ee11752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee11752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee11752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee11752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee11752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee11752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee11752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee11752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee11752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee11752[];
+extern VTBL_ENTRY _ZTV7ee11752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee11752[];
+static VTBL_ENTRY alt_thunk_names1503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee11752 = { "ee11752", // class name
+ bases_ee11752, 4,
+ &(vtc_ee11752[0]), // expected_vtbl_contents
+ &(vtt_ee11752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee11752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee11752),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee11752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1503,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee21752 : dd1752 {
+ int e;
+ virtual void foo(); // _ZN7ee217523fooEv
+ ~ee21752(); // tgen
+ ee21752(); // tgen
+};
+//SIG(1 ee21752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee21752 ::foo(){vfunc_called(this, "_ZN7ee217523fooEv");}
+ee21752 ::~ee21752(){ note_dtor("ee21752", this);} // tgen
+ee21752 ::ee21752(){ note_ctor("ee21752", this);} // tgen
+
+static void Test_ee21752()
+{
+ extern Class_Descriptor cd_ee21752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee21752, buf);
+ ee21752 *dp, &lv = *(dp=new (buf) ee21752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee21752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee21752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee21752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee21752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(16,12), "ee21752");
+ check_base_class_offset(lv, (dd1752*), 0, "ee21752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee21752.e");
+ test_class_info(&lv, &cd_ee21752);
+ dp->~ee21752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee21752(Test_ee21752, "ee21752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee21752C1Ev();
+extern void _ZN7ee21752D1Ev();
+Name_Map name_map_ee21752[] = {
+ NSPAIR(_ZN7ee21752C1Ev),
+ NSPAIR(_ZN7ee21752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee21752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee21752[];
+extern void _ZN7ee217523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee217523fooEv,_ZTv0_n20_N7ee217523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee217523fooEv,_ZThn12_N7ee217523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee217523fooEv,_ZTv0_n12_N7ee217523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee217523fooEv,_ZThn28_N7ee217523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee21752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee21752[0]),
+ (VTBL_ENTRY)&_ZN7ee217523fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee21752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee217523fooEv,_ZTv0_n20_N7ee217523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee21752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee21752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee217523fooEv,_ZTv0_n12_N7ee217523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee21752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee21752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee21752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee21752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee21752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee21752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee21752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee21752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee21752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee21752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee21752[] = {
+ {&(_ZTV7ee21752[5]), 5,25},
+ {&(_tg__ZTV6dd1752__7ee21752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee21752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee21752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee21752[4]), 4,6},
+ {&(_ZTV7ee21752[12]), 12,25},
+ {&(_ZTV7ee21752[18]), 18,25},
+ {&(_ZTV7ee21752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee21752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee21752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee21752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee21752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee21752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee21752[];
+extern VTBL_ENTRY _ZTV7ee21752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee21752[];
+static VTBL_ENTRY alt_thunk_names1504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee217523fooEv,_ZTv0_n12_N7ee217523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee217523fooEv,_ZThn28_N7ee217523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee217523fooEv,_ZTv0_n20_N7ee217523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee217523fooEv,_ZThn12_N7ee217523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee21752 = { "ee21752", // class name
+ bases_ee21752, 4,
+ &(vtc_ee21752[0]), // expected_vtbl_contents
+ &(vtt_ee21752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee21752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee21752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee21752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1504,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee31752 : virtual dd1752 {
+ int e;
+ virtual void foo(); // _ZN7ee317523fooEv
+ ~ee31752(); // tgen
+ ee31752(); // tgen
+};
+//SIG(1 ee31752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 Fi}
+
+
+void ee31752 ::foo(){vfunc_called(this, "_ZN7ee317523fooEv");}
+ee31752 ::~ee31752(){ note_dtor("ee31752", this);} // tgen
+ee31752 ::ee31752(){ note_ctor("ee31752", this);} // tgen
+
+static void Test_ee31752()
+{
+ extern Class_Descriptor cd_ee31752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee31752, buf);
+ ee31752 *dp, &lv = *(dp=new (buf) ee31752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee31752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee31752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee31752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee31752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(32,16), "ee31752");
+ check_base_class_offset(lv, (dd1752*), ABISELECT(16,8), "ee31752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee31752.e");
+ test_class_info(&lv, &cd_ee31752);
+ dp->~ee31752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee31752(Test_ee31752, "ee31752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee31752C1Ev();
+extern void _ZN7ee31752D1Ev();
+Name_Map name_map_ee31752[] = {
+ NSPAIR(_ZN7ee31752C1Ev),
+ NSPAIR(_ZN7ee31752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee31752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee31752[];
+extern void _ZN7ee317523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee317523fooEv,_ZTv0_n20_N7ee317523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee317523fooEv,_ZThn16_N7ee317523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee317523fooEv,_ZTv0_n12_N7ee317523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee317523fooEv,_ZThn32_N7ee317523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee31752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee31752[0]),
+ (VTBL_ENTRY)&_ZN7ee317523fooEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee31752[0]),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee31752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee317523fooEv,_ZTv0_n20_N7ee317523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee31752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee31752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee317523fooEv,_ZTv0_n12_N7ee317523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee31752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee31752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee31752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee31752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee31752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee31752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee31752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee31752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee31752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee31752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee31752[] = {
+ {&(_ZTV7ee31752[6]), 6,31},
+ {&(_ZTV7ee31752[12]), 12,31},
+ {&(_ZTV7ee31752[18]), 18,31},
+ {&(_ZTV7ee31752[24]), 24,31},
+ {&(_ZTV7ee31752[29]), 29,31},
+ {&(_tg__ZTV6dd1752__7ee31752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee31752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee31752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee31752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee31752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee31752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee31752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee31752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee31752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee31752[];
+extern VTBL_ENTRY _ZTV7ee31752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee31752[];
+static VTBL_ENTRY alt_thunk_names1505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee317523fooEv,_ZTv0_n12_N7ee317523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee317523fooEv,_ZThn32_N7ee317523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee317523fooEv,_ZTv0_n20_N7ee317523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee317523fooEv,_ZThn16_N7ee317523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee31752 = { "ee31752", // class name
+ bases_ee31752, 4,
+ &(vtc_ee31752[0]), // expected_vtbl_contents
+ &(vtt_ee31752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee31752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee31752),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee31752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1505,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee41752 : dd1752 {
+ int e;
+ virtual void bar(); // _ZN7ee417523barEv
+ ~ee41752(); // tgen
+ ee41752(); // tgen
+};
+//SIG(1 ee41752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee41752 ::bar(){vfunc_called(this, "_ZN7ee417523barEv");}
+ee41752 ::~ee41752(){ note_dtor("ee41752", this);} // tgen
+ee41752 ::ee41752(){ note_ctor("ee41752", this);} // tgen
+
+static void Test_ee41752()
+{
+ extern Class_Descriptor cd_ee41752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee41752, buf);
+ ee41752 *dp, &lv = *(dp=new (buf) ee41752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee41752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee41752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee41752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee41752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(16,12), "ee41752");
+ check_base_class_offset(lv, (dd1752*), 0, "ee41752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee41752.e");
+ test_class_info(&lv, &cd_ee41752);
+ dp->~ee41752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee41752(Test_ee41752, "ee41752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee41752C1Ev();
+extern void _ZN7ee41752D1Ev();
+Name_Map name_map_ee41752[] = {
+ NSPAIR(_ZN7ee41752C1Ev),
+ NSPAIR(_ZN7ee41752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee41752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee41752[];
+extern void _ZN7ee417523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee417523barEv,_ZTv0_n24_N7ee417523barEv)();
+extern void ABISELECT(_ZThn16_N7ee417523barEv,_ZThn12_N7ee417523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417523barEv,_ZTv0_n16_N7ee417523barEv)();
+extern void ABISELECT(_ZThn32_N7ee417523barEv,_ZThn20_N7ee417523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee417523barEv,_ZTv0_n16_N7ee417523barEv)();
+extern void ABISELECT(_ZThn48_N7ee417523barEv,_ZThn28_N7ee417523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee41752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee41752[0]),
+ (VTBL_ENTRY)&_ZN7ee417523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee41752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee417523barEv,_ZTv0_n24_N7ee417523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee41752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417523barEv,_ZTv0_n16_N7ee417523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee41752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee417523barEv,_ZTv0_n16_N7ee417523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee41752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee41752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee41752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee41752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee41752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee41752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee41752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee41752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee41752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee41752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee41752[] = {
+ {&(_ZTV7ee41752[5]), 5,25},
+ {&(_tg__ZTV6dd1752__7ee41752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee41752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee41752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee41752[4]), 4,6},
+ {&(_ZTV7ee41752[12]), 12,25},
+ {&(_ZTV7ee41752[18]), 18,25},
+ {&(_ZTV7ee41752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee41752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee41752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee41752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee41752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee41752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee41752[];
+extern VTBL_ENTRY _ZTV7ee41752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee41752[];
+static VTBL_ENTRY alt_thunk_names1506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee417523barEv,_ZTv0_n16_N7ee417523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee417523barEv,_ZThn28_N7ee417523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee417523barEv,_ZThn20_N7ee417523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee417523barEv,_ZTv0_n24_N7ee417523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee417523barEv,_ZThn12_N7ee417523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee41752 = { "ee41752", // class name
+ bases_ee41752, 4,
+ &(vtc_ee41752[0]), // expected_vtbl_contents
+ &(vtt_ee41752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee41752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee41752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee41752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1506,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee51752 : virtual dd1752 {
+ int e;
+ virtual void bar(); // _ZN7ee517523barEv
+ ~ee51752(); // tgen
+ ee51752(); // tgen
+};
+//SIG(1 ee51752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} Fi} v1 Fi}
+
+
+void ee51752 ::bar(){vfunc_called(this, "_ZN7ee517523barEv");}
+ee51752 ::~ee51752(){ note_dtor("ee51752", this);} // tgen
+ee51752 ::ee51752(){ note_ctor("ee51752", this);} // tgen
+
+static void Test_ee51752()
+{
+ extern Class_Descriptor cd_ee51752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee51752, buf);
+ ee51752 *dp, &lv = *(dp=new (buf) ee51752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee51752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee51752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee51752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee51752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(32,16), "ee51752");
+ check_base_class_offset(lv, (dd1752*), ABISELECT(16,8), "ee51752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee51752.e");
+ test_class_info(&lv, &cd_ee51752);
+ dp->~ee51752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee51752(Test_ee51752, "ee51752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee51752C1Ev();
+extern void _ZN7ee51752D1Ev();
+Name_Map name_map_ee51752[] = {
+ NSPAIR(_ZN7ee51752C1Ev),
+ NSPAIR(_ZN7ee51752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee51752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee51752[];
+extern void _ZN7ee517523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee517523barEv,_ZTv0_n24_N7ee517523barEv)();
+extern void ABISELECT(_ZThn32_N7ee517523barEv,_ZThn16_N7ee517523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517523barEv,_ZTv0_n16_N7ee517523barEv)();
+extern void ABISELECT(_ZThn48_N7ee517523barEv,_ZThn24_N7ee517523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee517523barEv,_ZTv0_n16_N7ee517523barEv)();
+extern void ABISELECT(_ZThn64_N7ee517523barEv,_ZThn32_N7ee517523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee51752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee51752[0]),
+ (VTBL_ENTRY)&_ZN7ee517523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee51752[0]),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee51752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee517523barEv,_ZTv0_n24_N7ee517523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee51752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517523barEv,_ZTv0_n16_N7ee517523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee51752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee517523barEv,_ZTv0_n16_N7ee517523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee51752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee51752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee51752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee51752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee51752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee51752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee51752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee51752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee51752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee51752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee51752[] = {
+ {&(_ZTV7ee51752[6]), 6,31},
+ {&(_ZTV7ee51752[12]), 12,31},
+ {&(_ZTV7ee51752[18]), 18,31},
+ {&(_ZTV7ee51752[24]), 24,31},
+ {&(_ZTV7ee51752[29]), 29,31},
+ {&(_tg__ZTV6dd1752__7ee51752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee51752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee51752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee51752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee51752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee51752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee51752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee51752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee51752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee51752[];
+extern VTBL_ENTRY _ZTV7ee51752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee51752[];
+static VTBL_ENTRY alt_thunk_names1507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee517523barEv,_ZTv0_n16_N7ee517523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee517523barEv,_ZThn32_N7ee517523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee517523barEv,_ZThn24_N7ee517523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee517523barEv,_ZTv0_n24_N7ee517523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee517523barEv,_ZThn16_N7ee517523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee51752 = { "ee51752", // class name
+ bases_ee51752, 4,
+ &(vtc_ee51752[0]), // expected_vtbl_contents
+ &(vtt_ee51752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee51752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee51752),31, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee51752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1507,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee61752 : dd1752 {
+ int e;
+ virtual void foo(); // _ZN7ee617523fooEv
+ virtual void bar(); // _ZN7ee617523barEv
+ ~ee61752(); // tgen
+ ee61752(); // tgen
+};
+//SIG(1 ee61752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee61752 ::foo(){vfunc_called(this, "_ZN7ee617523fooEv");}
+void ee61752 ::bar(){vfunc_called(this, "_ZN7ee617523barEv");}
+ee61752 ::~ee61752(){ note_dtor("ee61752", this);} // tgen
+ee61752 ::ee61752(){ note_ctor("ee61752", this);} // tgen
+
+static void Test_ee61752()
+{
+ extern Class_Descriptor cd_ee61752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee61752, buf);
+ ee61752 *dp, &lv = *(dp=new (buf) ee61752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee61752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee61752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee61752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee61752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(16,12), "ee61752");
+ check_base_class_offset(lv, (dd1752*), 0, "ee61752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee61752.e");
+ test_class_info(&lv, &cd_ee61752);
+ dp->~ee61752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee61752(Test_ee61752, "ee61752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee61752C1Ev();
+extern void _ZN7ee61752D1Ev();
+Name_Map name_map_ee61752[] = {
+ NSPAIR(_ZN7ee61752C1Ev),
+ NSPAIR(_ZN7ee61752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee61752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee61752[];
+extern void _ZN7ee617523fooEv();
+extern void _ZN7ee617523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee617523fooEv,_ZTv0_n20_N7ee617523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee617523fooEv,_ZThn12_N7ee617523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee617523barEv,_ZTv0_n24_N7ee617523barEv)();
+extern void ABISELECT(_ZThn16_N7ee617523barEv,_ZThn12_N7ee617523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617523barEv,_ZTv0_n16_N7ee617523barEv)();
+extern void ABISELECT(_ZThn32_N7ee617523barEv,_ZThn20_N7ee617523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee617523fooEv,_ZTv0_n12_N7ee617523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee617523fooEv,_ZThn28_N7ee617523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee617523barEv,_ZTv0_n16_N7ee617523barEv)();
+extern void ABISELECT(_ZThn48_N7ee617523barEv,_ZThn28_N7ee617523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee61752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee61752[0]),
+ (VTBL_ENTRY)&_ZN7ee617523fooEv,
+ (VTBL_ENTRY)&_ZN7ee617523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee61752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee617523fooEv,_ZTv0_n20_N7ee617523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee617523barEv,_ZTv0_n24_N7ee617523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee61752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617523barEv,_ZTv0_n16_N7ee617523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee61752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee617523fooEv,_ZTv0_n12_N7ee617523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee617523barEv,_ZTv0_n16_N7ee617523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee61752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee61752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee61752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee61752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee61752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee61752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee61752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee61752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee61752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee61752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee61752[] = {
+ {&(_ZTV7ee61752[5]), 5,26},
+ {&(_tg__ZTV6dd1752__7ee61752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee61752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee61752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee61752[4]), 4,6},
+ {&(_ZTV7ee61752[13]), 13,26},
+ {&(_ZTV7ee61752[19]), 19,26},
+ {&(_ZTV7ee61752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee61752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee61752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee61752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee61752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee61752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee61752[];
+extern VTBL_ENTRY _ZTV7ee61752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee61752[];
+static VTBL_ENTRY alt_thunk_names1508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee617523fooEv,_ZTv0_n12_N7ee617523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee617523fooEv,_ZThn28_N7ee617523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee617523barEv,_ZTv0_n16_N7ee617523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee617523barEv,_ZThn28_N7ee617523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee617523barEv,_ZThn20_N7ee617523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee617523barEv,_ZTv0_n24_N7ee617523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617523barEv,_ZThn12_N7ee617523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee617523fooEv,_ZTv0_n20_N7ee617523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee617523fooEv,_ZThn12_N7ee617523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee61752 = { "ee61752", // class name
+ bases_ee61752, 4,
+ &(vtc_ee61752[0]), // expected_vtbl_contents
+ &(vtt_ee61752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee61752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee61752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee61752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1508,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee71752 : virtual dd1752 {
+ int e;
+ virtual void foo(); // _ZN7ee717523fooEv
+ virtual void bar(); // _ZN7ee717523barEv
+ ~ee71752(); // tgen
+ ee71752(); // tgen
+};
+//SIG(1 ee71752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} Fi} v1 v2 Fi}
+
+
+void ee71752 ::foo(){vfunc_called(this, "_ZN7ee717523fooEv");}
+void ee71752 ::bar(){vfunc_called(this, "_ZN7ee717523barEv");}
+ee71752 ::~ee71752(){ note_dtor("ee71752", this);} // tgen
+ee71752 ::ee71752(){ note_ctor("ee71752", this);} // tgen
+
+static void Test_ee71752()
+{
+ extern Class_Descriptor cd_ee71752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee71752, buf);
+ ee71752 *dp, &lv = *(dp=new (buf) ee71752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee71752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee71752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee71752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee71752");
+ check_base_class_offset(lv, (cc752*)(dd1752*), ABISELECT(32,16), "ee71752");
+ check_base_class_offset(lv, (dd1752*), ABISELECT(16,8), "ee71752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee71752.e");
+ test_class_info(&lv, &cd_ee71752);
+ dp->~ee71752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee71752(Test_ee71752, "ee71752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee71752C1Ev();
+extern void _ZN7ee71752D1Ev();
+Name_Map name_map_ee71752[] = {
+ NSPAIR(_ZN7ee71752C1Ev),
+ NSPAIR(_ZN7ee71752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd1752;
+extern VTBL_ENTRY _ZTI6dd1752[];
+extern VTBL_ENTRY _ZTV6dd1752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd1752[];
+static Base_Class bases_ee71752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd1752, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee71752[];
+extern void _ZN7ee717523fooEv();
+extern void _ZN7ee717523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee717523fooEv,_ZTv0_n20_N7ee717523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee717523fooEv,_ZThn16_N7ee717523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee717523barEv,_ZTv0_n24_N7ee717523barEv)();
+extern void ABISELECT(_ZThn32_N7ee717523barEv,_ZThn16_N7ee717523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717523barEv,_ZTv0_n16_N7ee717523barEv)();
+extern void ABISELECT(_ZThn48_N7ee717523barEv,_ZThn24_N7ee717523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee717523fooEv,_ZTv0_n12_N7ee717523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee717523fooEv,_ZThn32_N7ee717523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee717523barEv,_ZTv0_n16_N7ee717523barEv)();
+extern void ABISELECT(_ZThn64_N7ee717523barEv,_ZThn32_N7ee717523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee71752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee71752[0]),
+ (VTBL_ENTRY)&_ZN7ee717523fooEv,
+ (VTBL_ENTRY)&_ZN7ee717523barEv,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee71752[0]),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee71752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee717523fooEv,_ZTv0_n20_N7ee717523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee717523barEv,_ZTv0_n24_N7ee717523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee71752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717523barEv,_ZTv0_n16_N7ee717523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee71752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee717523fooEv,_ZTv0_n12_N7ee717523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee717523barEv,_ZTv0_n16_N7ee717523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee71752[];
+static VTBL_ENTRY _tg__ZTV6dd1752__7ee71752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd1752__7ee71752[] = {
+ 0,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd1752__7ee71752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd1752__7ee71752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd1752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee71752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee71752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee71752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee71752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee71752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee71752[] = {
+ {&(_ZTV7ee71752[6]), 6,32},
+ {&(_ZTV7ee71752[13]), 13,32},
+ {&(_ZTV7ee71752[19]), 19,32},
+ {&(_ZTV7ee71752[25]), 25,32},
+ {&(_ZTV7ee71752[30]), 30,32},
+ {&(_tg__ZTV6dd1752__7ee71752[5]), 5,5},
+ {&(_tg__ZTV5cc752__6dd1752__7ee71752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd1752__7ee71752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd1752__7ee71752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee71752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee71752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee71752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee71752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee71752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee71752[];
+extern VTBL_ENTRY _ZTV7ee71752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee71752[];
+static VTBL_ENTRY alt_thunk_names1509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee717523fooEv,_ZTv0_n12_N7ee717523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee717523fooEv,_ZThn32_N7ee717523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee717523barEv,_ZTv0_n16_N7ee717523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee717523barEv,_ZThn32_N7ee717523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee717523barEv,_ZThn24_N7ee717523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee717523barEv,_ZTv0_n24_N7ee717523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717523barEv,_ZThn16_N7ee717523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee717523fooEv,_ZTv0_n20_N7ee717523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee717523fooEv,_ZThn16_N7ee717523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee71752 = { "ee71752", // class name
+ bases_ee71752, 4,
+ &(vtc_ee71752[0]), // expected_vtbl_contents
+ &(vtt_ee71752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee71752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee71752),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee71752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1509,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd2752 : cc752 {
+ int d;
+ virtual void foo(); // _ZN6dd27523fooEv
+ ~dd2752(); // tgen
+ dd2752(); // tgen
+};
+//SIG(-1 dd2752) C1{ BC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd2752 ::foo(){vfunc_called(this, "_ZN6dd27523fooEv");}
+dd2752 ::~dd2752(){ note_dtor("dd2752", this);} // tgen
+dd2752 ::dd2752(){ note_ctor("dd2752", this);} // tgen
+
+static void Test_dd2752()
+{
+ extern Class_Descriptor cd_dd2752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd2752, buf);
+ dd2752 *dp, &lv = *(dp=new (buf) dd2752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd2752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd2752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd2752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(16,12), "dd2752");
+ check_base_class_offset(lv, (cc752*), 0, "dd2752");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd2752.d");
+ test_class_info(&lv, &cd_dd2752);
+ dp->~dd2752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd2752(Test_dd2752, "dd2752", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd2752C1Ev();
+extern void _ZN6dd2752D1Ev();
+Name_Map name_map_dd2752[] = {
+ NSPAIR(_ZN6dd2752C1Ev),
+ NSPAIR(_ZN6dd2752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd2752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd2752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd2752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd2752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd2752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd2752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd2752[] = {
+ {&(_ZTV6dd2752[4]), 4,17},
+ {&(_tg__ZTV5cc752__6dd2752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd2752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd2752[4]), 4,6},
+ {&(_ZTV6dd2752[10]), 10,17},
+ {&(_ZTV6dd2752[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd2752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd2752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static VTBL_ENTRY alt_thunk_names1510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd2752 = { "dd2752", // class name
+ bases_dd2752, 3,
+ &(vtc_dd2752[0]), // expected_vtbl_contents
+ &(vtt_dd2752[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd2752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd2752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd2752),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1510,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee02752 : dd2752 {
+ int e;
+ ~ee02752(); // tgen
+ ee02752(); // tgen
+};
+//SIG(1 ee02752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee02752 ::~ee02752(){ note_dtor("ee02752", this);} // tgen
+ee02752 ::ee02752(){ note_ctor("ee02752", this);} // tgen
+
+static void Test_ee02752()
+{
+ extern Class_Descriptor cd_ee02752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee02752, buf);
+ ee02752 *dp, &lv = *(dp=new (buf) ee02752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee02752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee02752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee02752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(24,16), "ee02752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), 0, "ee02752");
+ check_base_class_offset(lv, (dd2752*), 0, "ee02752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee02752.e");
+ test_class_info(&lv, &cd_ee02752);
+ dp->~ee02752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee02752(Test_ee02752, "ee02752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee02752C1Ev();
+extern void _ZN7ee02752D1Ev();
+Name_Map name_map_ee02752[] = {
+ NSPAIR(_ZN7ee02752C1Ev),
+ NSPAIR(_ZN7ee02752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee02752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee02752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee02752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee02752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee02752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee02752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee02752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee02752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee02752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee02752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee02752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee02752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee02752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee02752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee02752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee02752[] = {
+ {&(_ZTV7ee02752[4]), 4,17},
+ {&(_tg__ZTV6dd2752__7ee02752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee02752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee02752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee02752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee02752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee02752[4]), 4,6},
+ {&(_ZTV7ee02752[10]), 10,17},
+ {&(_ZTV7ee02752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee02752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee02752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee02752[];
+extern VTBL_ENTRY _ZTV7ee02752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee02752[];
+static VTBL_ENTRY alt_thunk_names1511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee02752 = { "ee02752", // class name
+ bases_ee02752, 4,
+ &(vtc_ee02752[0]), // expected_vtbl_contents
+ &(vtt_ee02752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee02752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee02752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee02752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1511,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee12752 : virtual dd2752 {
+ int e;
+ ~ee12752(); // tgen
+ ee12752(); // tgen
+};
+//SIG(1 ee12752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee12752 ::~ee12752(){ note_dtor("ee12752", this);} // tgen
+ee12752 ::ee12752(){ note_ctor("ee12752", this);} // tgen
+
+static void Test_ee12752()
+{
+ extern Class_Descriptor cd_ee12752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee12752, buf);
+ ee12752 *dp, &lv = *(dp=new (buf) ee12752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee12752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee12752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee12752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(32,20), "ee12752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), ABISELECT(16,8), "ee12752");
+ check_base_class_offset(lv, (dd2752*), ABISELECT(16,8), "ee12752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee12752.e");
+ test_class_info(&lv, &cd_ee12752);
+ dp->~ee12752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee12752(Test_ee12752, "ee12752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee12752C1Ev();
+extern void _ZN7ee12752D1Ev();
+Name_Map name_map_ee12752[] = {
+ NSPAIR(_ZN7ee12752C1Ev),
+ NSPAIR(_ZN7ee12752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee12752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee12752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee12752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee12752[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee12752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee12752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee12752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee12752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee12752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee12752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee12752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee12752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee12752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee12752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee12752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee12752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee12752[] = {
+ {&(_ZTV7ee12752[5]), 5,24},
+ {&(_ZTV7ee12752[11]), 11,24},
+ {&(_ZTV7ee12752[17]), 17,24},
+ {&(_ZTV7ee12752[22]), 22,24},
+ {&(_tg__ZTV6dd2752__7ee12752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee12752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee12752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee12752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee12752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee12752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee12752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee12752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee12752[];
+extern VTBL_ENTRY _ZTV7ee12752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee12752[];
+static VTBL_ENTRY alt_thunk_names1512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee12752 = { "ee12752", // class name
+ bases_ee12752, 4,
+ &(vtc_ee12752[0]), // expected_vtbl_contents
+ &(vtt_ee12752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee12752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee12752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee12752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1512,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee22752 : dd2752 {
+ int e;
+ virtual void foo(); // _ZN7ee227523fooEv
+ ~ee22752(); // tgen
+ ee22752(); // tgen
+};
+//SIG(1 ee22752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee22752 ::foo(){vfunc_called(this, "_ZN7ee227523fooEv");}
+ee22752 ::~ee22752(){ note_dtor("ee22752", this);} // tgen
+ee22752 ::ee22752(){ note_ctor("ee22752", this);} // tgen
+
+static void Test_ee22752()
+{
+ extern Class_Descriptor cd_ee22752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee22752, buf);
+ ee22752 *dp, &lv = *(dp=new (buf) ee22752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee22752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee22752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee22752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(24,16), "ee22752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), 0, "ee22752");
+ check_base_class_offset(lv, (dd2752*), 0, "ee22752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee22752.e");
+ test_class_info(&lv, &cd_ee22752);
+ dp->~ee22752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee22752(Test_ee22752, "ee22752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee22752C1Ev();
+extern void _ZN7ee22752D1Ev();
+Name_Map name_map_ee22752[] = {
+ NSPAIR(_ZN7ee22752C1Ev),
+ NSPAIR(_ZN7ee22752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee22752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee22752[];
+extern void _ZN7ee227523fooEv();
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee227523fooEv,_ZTv0_n12_N7ee227523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee227523fooEv,_ZThn24_N7ee227523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee22752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee22752[0]),
+ (VTBL_ENTRY)&_ZN7ee227523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee22752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee22752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee227523fooEv,_ZTv0_n12_N7ee227523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee22752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee22752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee22752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee22752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee22752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee22752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee22752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee22752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee22752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee22752[] = {
+ {&(_ZTV7ee22752[4]), 4,17},
+ {&(_tg__ZTV6dd2752__7ee22752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee22752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee22752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee22752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee22752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee22752[4]), 4,6},
+ {&(_ZTV7ee22752[10]), 10,17},
+ {&(_ZTV7ee22752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee22752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee22752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee22752[];
+extern VTBL_ENTRY _ZTV7ee22752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee22752[];
+static VTBL_ENTRY alt_thunk_names1513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee227523fooEv,_ZTv0_n12_N7ee227523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee227523fooEv,_ZThn24_N7ee227523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee22752 = { "ee22752", // class name
+ bases_ee22752, 4,
+ &(vtc_ee22752[0]), // expected_vtbl_contents
+ &(vtt_ee22752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee22752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee22752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee22752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1513,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee32752 : virtual dd2752 {
+ int e;
+ virtual void foo(); // _ZN7ee327523fooEv
+ ~ee32752(); // tgen
+ ee32752(); // tgen
+};
+//SIG(1 ee32752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee32752 ::foo(){vfunc_called(this, "_ZN7ee327523fooEv");}
+ee32752 ::~ee32752(){ note_dtor("ee32752", this);} // tgen
+ee32752 ::ee32752(){ note_ctor("ee32752", this);} // tgen
+
+static void Test_ee32752()
+{
+ extern Class_Descriptor cd_ee32752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee32752, buf);
+ ee32752 *dp, &lv = *(dp=new (buf) ee32752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee32752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee32752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee32752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(32,20), "ee32752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), ABISELECT(16,8), "ee32752");
+ check_base_class_offset(lv, (dd2752*), ABISELECT(16,8), "ee32752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee32752.e");
+ test_class_info(&lv, &cd_ee32752);
+ dp->~ee32752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee32752(Test_ee32752, "ee32752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee32752C1Ev();
+extern void _ZN7ee32752D1Ev();
+Name_Map name_map_ee32752[] = {
+ NSPAIR(_ZN7ee32752C1Ev),
+ NSPAIR(_ZN7ee32752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee32752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee32752[];
+extern void _ZN7ee327523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee327523fooEv,_ZTv0_n20_N7ee327523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee327523fooEv,_ZThn8_N7ee327523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee327523fooEv,_ZTv0_n12_N7ee327523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee327523fooEv,_ZThn28_N7ee327523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee32752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee32752[0]),
+ (VTBL_ENTRY)&_ZN7ee327523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee32752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee327523fooEv,_ZTv0_n20_N7ee327523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee32752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee32752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee327523fooEv,_ZTv0_n12_N7ee327523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee32752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee32752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee32752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee32752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee32752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee32752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee32752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee32752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee32752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee32752[] = {
+ {&(_ZTV7ee32752[5]), 5,25},
+ {&(_ZTV7ee32752[12]), 12,25},
+ {&(_ZTV7ee32752[18]), 18,25},
+ {&(_ZTV7ee32752[23]), 23,25},
+ {&(_tg__ZTV6dd2752__7ee32752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee32752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee32752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee32752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee32752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee32752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee32752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee32752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee32752[];
+extern VTBL_ENTRY _ZTV7ee32752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee32752[];
+static VTBL_ENTRY alt_thunk_names1514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee327523fooEv,_ZTv0_n12_N7ee327523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee327523fooEv,_ZThn28_N7ee327523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee327523fooEv,_ZTv0_n20_N7ee327523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee327523fooEv,_ZThn8_N7ee327523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee32752 = { "ee32752", // class name
+ bases_ee32752, 4,
+ &(vtc_ee32752[0]), // expected_vtbl_contents
+ &(vtt_ee32752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee32752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee32752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee32752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1514,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee42752 : dd2752 {
+ int e;
+ virtual void bar(); // _ZN7ee427523barEv
+ ~ee42752(); // tgen
+ ee42752(); // tgen
+};
+//SIG(1 ee42752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee42752 ::bar(){vfunc_called(this, "_ZN7ee427523barEv");}
+ee42752 ::~ee42752(){ note_dtor("ee42752", this);} // tgen
+ee42752 ::ee42752(){ note_ctor("ee42752", this);} // tgen
+
+static void Test_ee42752()
+{
+ extern Class_Descriptor cd_ee42752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee42752, buf);
+ ee42752 *dp, &lv = *(dp=new (buf) ee42752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee42752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee42752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee42752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(24,16), "ee42752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), 0, "ee42752");
+ check_base_class_offset(lv, (dd2752*), 0, "ee42752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee42752.e");
+ test_class_info(&lv, &cd_ee42752);
+ dp->~ee42752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee42752(Test_ee42752, "ee42752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee42752C1Ev();
+extern void _ZN7ee42752D1Ev();
+Name_Map name_map_ee42752[] = {
+ NSPAIR(_ZN7ee42752C1Ev),
+ NSPAIR(_ZN7ee42752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee42752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee42752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN7ee427523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee427523barEv,_ZTv0_n16_N7ee427523barEv)();
+extern void ABISELECT(_ZThn24_N7ee427523barEv,_ZThn16_N7ee427523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee427523barEv,_ZTv0_n16_N7ee427523barEv)();
+extern void ABISELECT(_ZThn40_N7ee427523barEv,_ZThn24_N7ee427523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee42752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee42752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN7ee427523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee42752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427523barEv,_ZTv0_n16_N7ee427523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee42752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee427523barEv,_ZTv0_n16_N7ee427523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee42752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee42752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee42752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee42752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee42752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee42752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee42752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee42752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee42752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee42752[] = {
+ {&(_ZTV7ee42752[4]), 4,17},
+ {&(_tg__ZTV6dd2752__7ee42752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee42752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee42752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee42752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee42752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee42752[4]), 4,6},
+ {&(_ZTV7ee42752[10]), 10,17},
+ {&(_ZTV7ee42752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee42752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee42752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee42752[];
+extern VTBL_ENTRY _ZTV7ee42752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee42752[];
+static VTBL_ENTRY alt_thunk_names1515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee427523barEv,_ZTv0_n16_N7ee427523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee427523barEv,_ZThn24_N7ee427523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee427523barEv,_ZThn16_N7ee427523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee42752 = { "ee42752", // class name
+ bases_ee42752, 4,
+ &(vtc_ee42752[0]), // expected_vtbl_contents
+ &(vtt_ee42752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee42752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee42752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee42752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1515,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee52752 : virtual dd2752 {
+ int e;
+ virtual void bar(); // _ZN7ee527523barEv
+ ~ee52752(); // tgen
+ ee52752(); // tgen
+};
+//SIG(1 ee52752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee52752 ::bar(){vfunc_called(this, "_ZN7ee527523barEv");}
+ee52752 ::~ee52752(){ note_dtor("ee52752", this);} // tgen
+ee52752 ::ee52752(){ note_ctor("ee52752", this);} // tgen
+
+static void Test_ee52752()
+{
+ extern Class_Descriptor cd_ee52752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee52752, buf);
+ ee52752 *dp, &lv = *(dp=new (buf) ee52752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee52752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee52752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee52752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(32,20), "ee52752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), ABISELECT(16,8), "ee52752");
+ check_base_class_offset(lv, (dd2752*), ABISELECT(16,8), "ee52752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee52752.e");
+ test_class_info(&lv, &cd_ee52752);
+ dp->~ee52752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee52752(Test_ee52752, "ee52752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee52752C1Ev();
+extern void _ZN7ee52752D1Ev();
+Name_Map name_map_ee52752[] = {
+ NSPAIR(_ZN7ee52752C1Ev),
+ NSPAIR(_ZN7ee52752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee52752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee52752[];
+extern void _ZN7ee527523barEv();
+extern void _ZN6dd27523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee527523barEv,_ZTv0_n24_N7ee527523barEv)();
+extern void ABISELECT(_ZThn16_N7ee527523barEv,_ZThn8_N7ee527523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527523barEv,_ZTv0_n16_N7ee527523barEv)();
+extern void ABISELECT(_ZThn32_N7ee527523barEv,_ZThn20_N7ee527523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee527523barEv,_ZTv0_n16_N7ee527523barEv)();
+extern void ABISELECT(_ZThn48_N7ee527523barEv,_ZThn28_N7ee527523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee52752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee52752[0]),
+ (VTBL_ENTRY)&_ZN7ee527523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee52752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee527523barEv,_ZTv0_n24_N7ee527523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee52752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527523barEv,_ZTv0_n16_N7ee527523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee52752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee527523barEv,_ZTv0_n16_N7ee527523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee52752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee52752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee52752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee52752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee52752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee52752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee52752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee52752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee52752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee52752[] = {
+ {&(_ZTV7ee52752[5]), 5,25},
+ {&(_ZTV7ee52752[12]), 12,25},
+ {&(_ZTV7ee52752[18]), 18,25},
+ {&(_ZTV7ee52752[23]), 23,25},
+ {&(_tg__ZTV6dd2752__7ee52752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee52752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee52752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee52752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee52752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee52752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee52752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee52752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee52752[];
+extern VTBL_ENTRY _ZTV7ee52752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee52752[];
+static VTBL_ENTRY alt_thunk_names1516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee527523barEv,_ZTv0_n16_N7ee527523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee527523barEv,_ZThn28_N7ee527523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee527523barEv,_ZThn20_N7ee527523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee527523barEv,_ZTv0_n24_N7ee527523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee527523barEv,_ZThn8_N7ee527523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee52752 = { "ee52752", // class name
+ bases_ee52752, 4,
+ &(vtc_ee52752[0]), // expected_vtbl_contents
+ &(vtt_ee52752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee52752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee52752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee52752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1516,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee62752 : dd2752 {
+ int e;
+ virtual void foo(); // _ZN7ee627523fooEv
+ virtual void bar(); // _ZN7ee627523barEv
+ ~ee62752(); // tgen
+ ee62752(); // tgen
+};
+//SIG(1 ee62752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee62752 ::foo(){vfunc_called(this, "_ZN7ee627523fooEv");}
+void ee62752 ::bar(){vfunc_called(this, "_ZN7ee627523barEv");}
+ee62752 ::~ee62752(){ note_dtor("ee62752", this);} // tgen
+ee62752 ::ee62752(){ note_ctor("ee62752", this);} // tgen
+
+static void Test_ee62752()
+{
+ extern Class_Descriptor cd_ee62752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee62752, buf);
+ ee62752 *dp, &lv = *(dp=new (buf) ee62752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee62752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee62752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee62752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(24,16), "ee62752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), 0, "ee62752");
+ check_base_class_offset(lv, (dd2752*), 0, "ee62752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee62752.e");
+ test_class_info(&lv, &cd_ee62752);
+ dp->~ee62752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee62752(Test_ee62752, "ee62752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee62752C1Ev();
+extern void _ZN7ee62752D1Ev();
+Name_Map name_map_ee62752[] = {
+ NSPAIR(_ZN7ee62752C1Ev),
+ NSPAIR(_ZN7ee62752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee62752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee62752[];
+extern void _ZN7ee627523fooEv();
+extern void _ZN7ee627523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee627523barEv,_ZTv0_n16_N7ee627523barEv)();
+extern void ABISELECT(_ZThn24_N7ee627523barEv,_ZThn16_N7ee627523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee627523fooEv,_ZTv0_n12_N7ee627523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee627523fooEv,_ZThn24_N7ee627523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee627523barEv,_ZTv0_n16_N7ee627523barEv)();
+extern void ABISELECT(_ZThn40_N7ee627523barEv,_ZThn24_N7ee627523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee62752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee62752[0]),
+ (VTBL_ENTRY)&_ZN7ee627523fooEv,
+ (VTBL_ENTRY)&_ZN7ee627523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee62752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627523barEv,_ZTv0_n16_N7ee627523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee62752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee627523fooEv,_ZTv0_n12_N7ee627523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee627523barEv,_ZTv0_n16_N7ee627523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee62752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee62752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee62752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee62752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee62752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee62752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee62752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee62752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee62752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee62752[] = {
+ {&(_ZTV7ee62752[4]), 4,17},
+ {&(_tg__ZTV6dd2752__7ee62752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee62752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee62752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee62752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee62752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee62752[4]), 4,6},
+ {&(_ZTV7ee62752[10]), 10,17},
+ {&(_ZTV7ee62752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee62752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee62752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee62752[];
+extern VTBL_ENTRY _ZTV7ee62752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee62752[];
+static VTBL_ENTRY alt_thunk_names1517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd27523fooEv,_ZThn24_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee627523fooEv,_ZTv0_n12_N7ee627523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee627523fooEv,_ZThn24_N7ee627523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee627523barEv,_ZTv0_n16_N7ee627523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee627523barEv,_ZThn24_N7ee627523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee627523barEv,_ZThn16_N7ee627523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee62752 = { "ee62752", // class name
+ bases_ee62752, 4,
+ &(vtc_ee62752[0]), // expected_vtbl_contents
+ &(vtt_ee62752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee62752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee62752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee62752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1517,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee72752 : virtual dd2752 {
+ int e;
+ virtual void foo(); // _ZN7ee727523fooEv
+ virtual void bar(); // _ZN7ee727523barEv
+ ~ee72752(); // tgen
+ ee72752(); // tgen
+};
+//SIG(1 ee72752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee72752 ::foo(){vfunc_called(this, "_ZN7ee727523fooEv");}
+void ee72752 ::bar(){vfunc_called(this, "_ZN7ee727523barEv");}
+ee72752 ::~ee72752(){ note_dtor("ee72752", this);} // tgen
+ee72752 ::ee72752(){ note_ctor("ee72752", this);} // tgen
+
+static void Test_ee72752()
+{
+ extern Class_Descriptor cd_ee72752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee72752, buf);
+ ee72752 *dp, &lv = *(dp=new (buf) ee72752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee72752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee72752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee72752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd2752*), ABISELECT(32,20), "ee72752");
+ check_base_class_offset(lv, (cc752*)(dd2752*), ABISELECT(16,8), "ee72752");
+ check_base_class_offset(lv, (dd2752*), ABISELECT(16,8), "ee72752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee72752.e");
+ test_class_info(&lv, &cd_ee72752);
+ dp->~ee72752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee72752(Test_ee72752, "ee72752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee72752C1Ev();
+extern void _ZN7ee72752D1Ev();
+Name_Map name_map_ee72752[] = {
+ NSPAIR(_ZN7ee72752C1Ev),
+ NSPAIR(_ZN7ee72752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd2752;
+extern VTBL_ENTRY _ZTI6dd2752[];
+extern VTBL_ENTRY _ZTV6dd2752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd2752[];
+static Base_Class bases_ee72752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd2752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee72752[];
+extern void _ZN7ee727523fooEv();
+extern void _ZN7ee727523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee727523fooEv,_ZTv0_n20_N7ee727523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee727523fooEv,_ZThn8_N7ee727523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee727523barEv,_ZTv0_n24_N7ee727523barEv)();
+extern void ABISELECT(_ZThn16_N7ee727523barEv,_ZThn8_N7ee727523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727523barEv,_ZTv0_n16_N7ee727523barEv)();
+extern void ABISELECT(_ZThn32_N7ee727523barEv,_ZThn20_N7ee727523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee727523fooEv,_ZTv0_n12_N7ee727523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee727523fooEv,_ZThn28_N7ee727523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee727523barEv,_ZTv0_n16_N7ee727523barEv)();
+extern void ABISELECT(_ZThn48_N7ee727523barEv,_ZThn28_N7ee727523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee72752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee72752[0]),
+ (VTBL_ENTRY)&_ZN7ee727523fooEv,
+ (VTBL_ENTRY)&_ZN7ee727523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee72752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee727523fooEv,_ZTv0_n20_N7ee727523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee727523barEv,_ZTv0_n24_N7ee727523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee72752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727523barEv,_ZTv0_n16_N7ee727523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee72752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee727523fooEv,_ZTv0_n12_N7ee727523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee727523barEv,_ZTv0_n16_N7ee727523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee72752[];
+extern void _ZN6dd27523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV6dd2752__7ee72752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&_ZN6dd27523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd2752__7ee72752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd2752__7ee72752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd2752__7ee72752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd2752__7ee72752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd2752__7ee72752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd2752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee72752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee72752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee72752[] = {
+ {&(_ZTV7ee72752[5]), 5,26},
+ {&(_ZTV7ee72752[13]), 13,26},
+ {&(_ZTV7ee72752[19]), 19,26},
+ {&(_ZTV7ee72752[24]), 24,26},
+ {&(_tg__ZTV6dd2752__7ee72752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd2752__7ee72752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd2752__7ee72752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd2752__7ee72752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd2752__7ee72752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd2752__7ee72752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee72752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee72752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee72752[];
+extern VTBL_ENTRY _ZTV7ee72752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee72752[];
+static VTBL_ENTRY alt_thunk_names1518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd27523fooEv,_ZTv0_n12_N6dd27523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd27523fooEv,_ZThn20_N6dd27523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee727523fooEv,_ZTv0_n12_N7ee727523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee727523fooEv,_ZThn28_N7ee727523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee727523barEv,_ZTv0_n16_N7ee727523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee727523barEv,_ZThn28_N7ee727523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee727523barEv,_ZThn20_N7ee727523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee727523barEv,_ZTv0_n24_N7ee727523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727523barEv,_ZThn8_N7ee727523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee727523fooEv,_ZTv0_n20_N7ee727523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee727523fooEv,_ZThn8_N7ee727523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee72752 = { "ee72752", // class name
+ bases_ee72752, 4,
+ &(vtc_ee72752[0]), // expected_vtbl_contents
+ &(vtt_ee72752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee72752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee72752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee72752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1518,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd3752 : virtual cc752 {
+ int d;
+ virtual void foo(); // _ZN6dd37523fooEv
+ ~dd3752(); // tgen
+ dd3752(); // tgen
+};
+//SIG(-1 dd3752) C1{ VBC2{ VBC3{ VBC4{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void dd3752 ::foo(){vfunc_called(this, "_ZN6dd37523fooEv");}
+dd3752 ::~dd3752(){ note_dtor("dd3752", this);} // tgen
+dd3752 ::dd3752(){ note_ctor("dd3752", this);} // tgen
+
+static void Test_dd3752()
+{
+ extern Class_Descriptor cd_dd3752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd3752, buf);
+ dd3752 *dp, &lv = *(dp=new (buf) dd3752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd3752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd3752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd3752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,16), "dd3752");
+ check_base_class_offset(lv, (cc752*), ABISELECT(16,8), "dd3752");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd3752.d");
+ test_class_info(&lv, &cd_dd3752);
+ dp->~dd3752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd3752(Test_dd3752, "dd3752", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd3752C1Ev();
+extern void _ZN6dd3752D1Ev();
+Name_Map name_map_dd3752[] = {
+ NSPAIR(_ZN6dd3752C1Ev),
+ NSPAIR(_ZN6dd3752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd3752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd3752[];
+extern void _ZN6dd37523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd3752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd3752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd3752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd3752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd3752[] = {
+ {&(_ZTV6dd3752[5]), 5,25},
+ {&(_ZTV6dd3752[12]), 12,25},
+ {&(_ZTV6dd3752[18]), 18,25},
+ {&(_ZTV6dd3752[23]), 23,25},
+ {&(_tg__ZTV5cc752__6dd3752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd3752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd3752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd3752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd3752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static VTBL_ENTRY alt_thunk_names1519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd3752 = { "dd3752", // class name
+ bases_dd3752, 3,
+ &(vtc_dd3752[0]), // expected_vtbl_contents
+ &(vtt_dd3752[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd3752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd3752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd3752),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1519,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee03752 : dd3752 {
+ int e;
+ ~ee03752(); // tgen
+ ee03752(); // tgen
+};
+//SIG(1 ee03752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee03752 ::~ee03752(){ note_dtor("ee03752", this);} // tgen
+ee03752 ::ee03752(){ note_ctor("ee03752", this);} // tgen
+
+static void Test_ee03752()
+{
+ extern Class_Descriptor cd_ee03752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee03752, buf);
+ ee03752 *dp, &lv = *(dp=new (buf) ee03752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee03752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee03752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee03752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee03752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(16,12), "ee03752");
+ check_base_class_offset(lv, (dd3752*), 0, "ee03752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee03752.e");
+ test_class_info(&lv, &cd_ee03752);
+ dp->~ee03752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee03752(Test_ee03752, "ee03752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee03752C1Ev();
+extern void _ZN7ee03752D1Ev();
+Name_Map name_map_ee03752[] = {
+ NSPAIR(_ZN7ee03752C1Ev),
+ NSPAIR(_ZN7ee03752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee03752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee03752[];
+extern void _ZN6dd37523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee03752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee03752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee03752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee03752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee03752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee03752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee03752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee03752[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee03752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee03752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee03752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee03752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee03752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee03752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee03752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee03752[] = {
+ {&(_ZTV7ee03752[5]), 5,25},
+ {&(_tg__ZTV6dd3752__7ee03752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee03752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee03752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee03752[4]), 4,6},
+ {&(_ZTV7ee03752[12]), 12,25},
+ {&(_ZTV7ee03752[18]), 18,25},
+ {&(_ZTV7ee03752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee03752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee03752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee03752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee03752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee03752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee03752[];
+extern VTBL_ENTRY _ZTV7ee03752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee03752[];
+static VTBL_ENTRY alt_thunk_names1520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee03752 = { "ee03752", // class name
+ bases_ee03752, 4,
+ &(vtc_ee03752[0]), // expected_vtbl_contents
+ &(vtt_ee03752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee03752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee03752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee03752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1520,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee13752 : virtual dd3752 {
+ int e;
+ ~ee13752(); // tgen
+ ee13752(); // tgen
+};
+//SIG(1 ee13752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} Fi}
+
+
+ee13752 ::~ee13752(){ note_dtor("ee13752", this);} // tgen
+ee13752 ::ee13752(){ note_ctor("ee13752", this);} // tgen
+
+static void Test_ee13752()
+{
+ extern Class_Descriptor cd_ee13752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee13752, buf);
+ ee13752 *dp, &lv = *(dp=new (buf) ee13752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee13752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee13752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee13752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee13752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(32,16), "ee13752");
+ check_base_class_offset(lv, (dd3752*), ABISELECT(16,8), "ee13752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee13752.e");
+ test_class_info(&lv, &cd_ee13752);
+ dp->~ee13752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee13752(Test_ee13752, "ee13752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee13752C1Ev();
+extern void _ZN7ee13752D1Ev();
+Name_Map name_map_ee13752[] = {
+ NSPAIR(_ZN7ee13752C1Ev),
+ NSPAIR(_ZN7ee13752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee13752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee13752[];
+extern void _ZN6dd37523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee13752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee13752[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee13752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee13752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee13752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee13752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee13752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee13752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee13752[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee13752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee13752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee13752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee13752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee13752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee13752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee13752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee13752[] = {
+ {&(_ZTV7ee13752[6]), 6,32},
+ {&(_ZTV7ee13752[12]), 12,32},
+ {&(_ZTV7ee13752[19]), 19,32},
+ {&(_ZTV7ee13752[25]), 25,32},
+ {&(_ZTV7ee13752[30]), 30,32},
+ {&(_tg__ZTV6dd3752__7ee13752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee13752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee13752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee13752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee13752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee13752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee13752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee13752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee13752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee13752[];
+extern VTBL_ENTRY _ZTV7ee13752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee13752[];
+static VTBL_ENTRY alt_thunk_names1521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee13752 = { "ee13752", // class name
+ bases_ee13752, 4,
+ &(vtc_ee13752[0]), // expected_vtbl_contents
+ &(vtt_ee13752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee13752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee13752),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee13752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1521,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee23752 : dd3752 {
+ int e;
+ virtual void foo(); // _ZN7ee237523fooEv
+ ~ee23752(); // tgen
+ ee23752(); // tgen
+};
+//SIG(1 ee23752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee23752 ::foo(){vfunc_called(this, "_ZN7ee237523fooEv");}
+ee23752 ::~ee23752(){ note_dtor("ee23752", this);} // tgen
+ee23752 ::ee23752(){ note_ctor("ee23752", this);} // tgen
+
+static void Test_ee23752()
+{
+ extern Class_Descriptor cd_ee23752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee23752, buf);
+ ee23752 *dp, &lv = *(dp=new (buf) ee23752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee23752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee23752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee23752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee23752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(16,12), "ee23752");
+ check_base_class_offset(lv, (dd3752*), 0, "ee23752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee23752.e");
+ test_class_info(&lv, &cd_ee23752);
+ dp->~ee23752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee23752(Test_ee23752, "ee23752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee23752C1Ev();
+extern void _ZN7ee23752D1Ev();
+Name_Map name_map_ee23752[] = {
+ NSPAIR(_ZN7ee23752C1Ev),
+ NSPAIR(_ZN7ee23752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee23752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee23752[];
+extern void _ZN7ee237523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee237523fooEv,_ZTv0_n20_N7ee237523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee237523fooEv,_ZThn12_N7ee237523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee237523fooEv,_ZTv0_n12_N7ee237523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee237523fooEv,_ZThn28_N7ee237523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee23752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee23752[0]),
+ (VTBL_ENTRY)&_ZN7ee237523fooEv,
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee23752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee237523fooEv,_ZTv0_n20_N7ee237523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee23752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee23752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee237523fooEv,_ZTv0_n12_N7ee237523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee23752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee23752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee23752[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee23752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee23752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee23752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee23752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee23752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee23752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee23752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee23752[] = {
+ {&(_ZTV7ee23752[5]), 5,25},
+ {&(_tg__ZTV6dd3752__7ee23752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee23752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee23752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee23752[4]), 4,6},
+ {&(_ZTV7ee23752[12]), 12,25},
+ {&(_ZTV7ee23752[18]), 18,25},
+ {&(_ZTV7ee23752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee23752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee23752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee23752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee23752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee23752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee23752[];
+extern VTBL_ENTRY _ZTV7ee23752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee23752[];
+static VTBL_ENTRY alt_thunk_names1522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee237523fooEv,_ZTv0_n12_N7ee237523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee237523fooEv,_ZThn28_N7ee237523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee237523fooEv,_ZTv0_n20_N7ee237523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee237523fooEv,_ZThn12_N7ee237523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee23752 = { "ee23752", // class name
+ bases_ee23752, 4,
+ &(vtc_ee23752[0]), // expected_vtbl_contents
+ &(vtt_ee23752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee23752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee23752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee23752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1522,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee33752 : virtual dd3752 {
+ int e;
+ virtual void foo(); // _ZN7ee337523fooEv
+ ~ee33752(); // tgen
+ ee33752(); // tgen
+};
+//SIG(1 ee33752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void ee33752 ::foo(){vfunc_called(this, "_ZN7ee337523fooEv");}
+ee33752 ::~ee33752(){ note_dtor("ee33752", this);} // tgen
+ee33752 ::ee33752(){ note_ctor("ee33752", this);} // tgen
+
+static void Test_ee33752()
+{
+ extern Class_Descriptor cd_ee33752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee33752, buf);
+ ee33752 *dp, &lv = *(dp=new (buf) ee33752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee33752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee33752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee33752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee33752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(32,16), "ee33752");
+ check_base_class_offset(lv, (dd3752*), ABISELECT(16,8), "ee33752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee33752.e");
+ test_class_info(&lv, &cd_ee33752);
+ dp->~ee33752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee33752(Test_ee33752, "ee33752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee33752C1Ev();
+extern void _ZN7ee33752D1Ev();
+Name_Map name_map_ee33752[] = {
+ NSPAIR(_ZN7ee33752C1Ev),
+ NSPAIR(_ZN7ee33752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee33752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee33752[];
+extern void _ZN7ee337523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee337523fooEv,_ZTv0_n24_N7ee337523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee337523fooEv,_ZThn8_N7ee337523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee337523fooEv,_ZTv0_n20_N7ee337523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee337523fooEv,_ZThn16_N7ee337523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee337523fooEv,_ZTv0_n12_N7ee337523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee337523fooEv,_ZThn32_N7ee337523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee33752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee33752[0]),
+ (VTBL_ENTRY)&_ZN7ee337523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee33752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee337523fooEv,_ZTv0_n24_N7ee337523fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee33752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee337523fooEv,_ZTv0_n20_N7ee337523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee33752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee33752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee337523fooEv,_ZTv0_n12_N7ee337523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee33752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee33752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee33752[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee33752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee33752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee33752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee33752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee33752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee33752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee33752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee33752[] = {
+ {&(_ZTV7ee33752[6]), 6,33},
+ {&(_ZTV7ee33752[13]), 13,33},
+ {&(_ZTV7ee33752[20]), 20,33},
+ {&(_ZTV7ee33752[26]), 26,33},
+ {&(_ZTV7ee33752[31]), 31,33},
+ {&(_tg__ZTV6dd3752__7ee33752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee33752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee33752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee33752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee33752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee33752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee33752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee33752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee33752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee33752[];
+extern VTBL_ENTRY _ZTV7ee33752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee33752[];
+static VTBL_ENTRY alt_thunk_names1523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee337523fooEv,_ZTv0_n12_N7ee337523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee337523fooEv,_ZThn32_N7ee337523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee337523fooEv,_ZTv0_n20_N7ee337523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee337523fooEv,_ZThn16_N7ee337523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee337523fooEv,_ZTv0_n24_N7ee337523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee337523fooEv,_ZThn8_N7ee337523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee33752 = { "ee33752", // class name
+ bases_ee33752, 4,
+ &(vtc_ee33752[0]), // expected_vtbl_contents
+ &(vtt_ee33752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee33752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee33752),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee33752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1523,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee43752 : dd3752 {
+ int e;
+ virtual void bar(); // _ZN7ee437523barEv
+ ~ee43752(); // tgen
+ ee43752(); // tgen
+};
+//SIG(1 ee43752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee43752 ::bar(){vfunc_called(this, "_ZN7ee437523barEv");}
+ee43752 ::~ee43752(){ note_dtor("ee43752", this);} // tgen
+ee43752 ::ee43752(){ note_ctor("ee43752", this);} // tgen
+
+static void Test_ee43752()
+{
+ extern Class_Descriptor cd_ee43752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee43752, buf);
+ ee43752 *dp, &lv = *(dp=new (buf) ee43752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee43752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee43752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee43752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee43752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(16,12), "ee43752");
+ check_base_class_offset(lv, (dd3752*), 0, "ee43752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee43752.e");
+ test_class_info(&lv, &cd_ee43752);
+ dp->~ee43752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee43752(Test_ee43752, "ee43752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee43752C1Ev();
+extern void _ZN7ee43752D1Ev();
+Name_Map name_map_ee43752[] = {
+ NSPAIR(_ZN7ee43752C1Ev),
+ NSPAIR(_ZN7ee43752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee43752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee43752[];
+extern void _ZN6dd37523fooEv();
+extern void _ZN7ee437523barEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee437523barEv,_ZTv0_n24_N7ee437523barEv)();
+extern void ABISELECT(_ZThn16_N7ee437523barEv,_ZThn12_N7ee437523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437523barEv,_ZTv0_n16_N7ee437523barEv)();
+extern void ABISELECT(_ZThn32_N7ee437523barEv,_ZThn20_N7ee437523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee437523barEv,_ZTv0_n16_N7ee437523barEv)();
+extern void ABISELECT(_ZThn48_N7ee437523barEv,_ZThn28_N7ee437523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee43752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee43752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+ (VTBL_ENTRY)&_ZN7ee437523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee43752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee437523barEv,_ZTv0_n24_N7ee437523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee43752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437523barEv,_ZTv0_n16_N7ee437523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee43752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee437523barEv,_ZTv0_n16_N7ee437523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee43752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee43752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee43752[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee43752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee43752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee43752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee43752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee43752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee43752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee43752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee43752[] = {
+ {&(_ZTV7ee43752[5]), 5,26},
+ {&(_tg__ZTV6dd3752__7ee43752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee43752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee43752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee43752[4]), 4,6},
+ {&(_ZTV7ee43752[13]), 13,26},
+ {&(_ZTV7ee43752[19]), 19,26},
+ {&(_ZTV7ee43752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee43752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee43752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee43752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee43752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee43752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee43752[];
+extern VTBL_ENTRY _ZTV7ee43752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee43752[];
+static VTBL_ENTRY alt_thunk_names1524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee437523barEv,_ZTv0_n16_N7ee437523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee437523barEv,_ZThn28_N7ee437523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee437523barEv,_ZThn20_N7ee437523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee437523barEv,_ZTv0_n24_N7ee437523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee437523barEv,_ZThn12_N7ee437523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee43752 = { "ee43752", // class name
+ bases_ee43752, 4,
+ &(vtc_ee43752[0]), // expected_vtbl_contents
+ &(vtt_ee43752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee43752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee43752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee43752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1524,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee53752 : virtual dd3752 {
+ int e;
+ virtual void bar(); // _ZN7ee537523barEv
+ ~ee53752(); // tgen
+ ee53752(); // tgen
+};
+//SIG(1 ee53752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void ee53752 ::bar(){vfunc_called(this, "_ZN7ee537523barEv");}
+ee53752 ::~ee53752(){ note_dtor("ee53752", this);} // tgen
+ee53752 ::ee53752(){ note_ctor("ee53752", this);} // tgen
+
+static void Test_ee53752()
+{
+ extern Class_Descriptor cd_ee53752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee53752, buf);
+ ee53752 *dp, &lv = *(dp=new (buf) ee53752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee53752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee53752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee53752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee53752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(32,16), "ee53752");
+ check_base_class_offset(lv, (dd3752*), ABISELECT(16,8), "ee53752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee53752.e");
+ test_class_info(&lv, &cd_ee53752);
+ dp->~ee53752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee53752(Test_ee53752, "ee53752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee53752C1Ev();
+extern void _ZN7ee53752D1Ev();
+Name_Map name_map_ee53752[] = {
+ NSPAIR(_ZN7ee53752C1Ev),
+ NSPAIR(_ZN7ee53752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee53752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee53752[];
+extern void _ZN7ee537523barEv();
+extern void _ZN6dd37523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee537523barEv,_ZTv0_n24_N7ee537523barEv)();
+extern void ABISELECT(_ZThn32_N7ee537523barEv,_ZThn16_N7ee537523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537523barEv,_ZTv0_n16_N7ee537523barEv)();
+extern void ABISELECT(_ZThn48_N7ee537523barEv,_ZThn24_N7ee537523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee537523barEv,_ZTv0_n16_N7ee537523barEv)();
+extern void ABISELECT(_ZThn64_N7ee537523barEv,_ZThn32_N7ee537523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee53752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee53752[0]),
+ (VTBL_ENTRY)&_ZN7ee537523barEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee53752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee53752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee537523barEv,_ZTv0_n24_N7ee537523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee53752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537523barEv,_ZTv0_n16_N7ee537523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee53752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee537523barEv,_ZTv0_n16_N7ee537523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee53752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee53752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee53752[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee53752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee53752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee53752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee53752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee53752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee53752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee53752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee53752[] = {
+ {&(_ZTV7ee53752[6]), 6,33},
+ {&(_ZTV7ee53752[13]), 13,33},
+ {&(_ZTV7ee53752[20]), 20,33},
+ {&(_ZTV7ee53752[26]), 26,33},
+ {&(_ZTV7ee53752[31]), 31,33},
+ {&(_tg__ZTV6dd3752__7ee53752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee53752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee53752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee53752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee53752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee53752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee53752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee53752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee53752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee53752[];
+extern VTBL_ENTRY _ZTV7ee53752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee53752[];
+static VTBL_ENTRY alt_thunk_names1525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee537523barEv,_ZTv0_n16_N7ee537523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee537523barEv,_ZThn32_N7ee537523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee537523barEv,_ZThn24_N7ee537523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee537523barEv,_ZTv0_n24_N7ee537523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee537523barEv,_ZThn16_N7ee537523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee53752 = { "ee53752", // class name
+ bases_ee53752, 4,
+ &(vtc_ee53752[0]), // expected_vtbl_contents
+ &(vtt_ee53752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee53752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee53752),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee53752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee63752 : dd3752 {
+ int e;
+ virtual void foo(); // _ZN7ee637523fooEv
+ virtual void bar(); // _ZN7ee637523barEv
+ ~ee63752(); // tgen
+ ee63752(); // tgen
+};
+//SIG(1 ee63752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee63752 ::foo(){vfunc_called(this, "_ZN7ee637523fooEv");}
+void ee63752 ::bar(){vfunc_called(this, "_ZN7ee637523barEv");}
+ee63752 ::~ee63752(){ note_dtor("ee63752", this);} // tgen
+ee63752 ::ee63752(){ note_ctor("ee63752", this);} // tgen
+
+static void Test_ee63752()
+{
+ extern Class_Descriptor cd_ee63752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee63752, buf);
+ ee63752 *dp, &lv = *(dp=new (buf) ee63752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee63752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee63752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee63752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee63752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(16,12), "ee63752");
+ check_base_class_offset(lv, (dd3752*), 0, "ee63752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee63752.e");
+ test_class_info(&lv, &cd_ee63752);
+ dp->~ee63752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee63752(Test_ee63752, "ee63752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee63752C1Ev();
+extern void _ZN7ee63752D1Ev();
+Name_Map name_map_ee63752[] = {
+ NSPAIR(_ZN7ee63752C1Ev),
+ NSPAIR(_ZN7ee63752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee63752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee63752[];
+extern void _ZN7ee637523fooEv();
+extern void _ZN7ee637523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee637523fooEv,_ZTv0_n20_N7ee637523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee637523fooEv,_ZThn12_N7ee637523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee637523barEv,_ZTv0_n24_N7ee637523barEv)();
+extern void ABISELECT(_ZThn16_N7ee637523barEv,_ZThn12_N7ee637523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637523barEv,_ZTv0_n16_N7ee637523barEv)();
+extern void ABISELECT(_ZThn32_N7ee637523barEv,_ZThn20_N7ee637523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee637523fooEv,_ZTv0_n12_N7ee637523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee637523fooEv,_ZThn28_N7ee637523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee637523barEv,_ZTv0_n16_N7ee637523barEv)();
+extern void ABISELECT(_ZThn48_N7ee637523barEv,_ZThn28_N7ee637523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee63752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee63752[0]),
+ (VTBL_ENTRY)&_ZN7ee637523fooEv,
+ (VTBL_ENTRY)&_ZN7ee637523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee63752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee637523fooEv,_ZTv0_n20_N7ee637523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee637523barEv,_ZTv0_n24_N7ee637523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee63752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637523barEv,_ZTv0_n16_N7ee637523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee63752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee637523fooEv,_ZTv0_n12_N7ee637523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee637523barEv,_ZTv0_n16_N7ee637523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee63752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee63752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee63752[] = {
+ 0,
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee63752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee63752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee63752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee63752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee63752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee63752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee63752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee63752[] = {
+ {&(_ZTV7ee63752[5]), 5,26},
+ {&(_tg__ZTV6dd3752__7ee63752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee63752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee63752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee63752[4]), 4,6},
+ {&(_ZTV7ee63752[13]), 13,26},
+ {&(_ZTV7ee63752[19]), 19,26},
+ {&(_ZTV7ee63752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee63752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee63752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee63752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee63752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee63752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee63752[];
+extern VTBL_ENTRY _ZTV7ee63752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee63752[];
+static VTBL_ENTRY alt_thunk_names1526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn28_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn12_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee637523fooEv,_ZTv0_n12_N7ee637523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee637523fooEv,_ZThn28_N7ee637523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee637523barEv,_ZTv0_n16_N7ee637523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee637523barEv,_ZThn28_N7ee637523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee637523barEv,_ZThn20_N7ee637523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee637523barEv,_ZTv0_n24_N7ee637523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637523barEv,_ZThn12_N7ee637523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee637523fooEv,_ZTv0_n20_N7ee637523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee637523fooEv,_ZThn12_N7ee637523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee63752 = { "ee63752", // class name
+ bases_ee63752, 4,
+ &(vtc_ee63752[0]), // expected_vtbl_contents
+ &(vtt_ee63752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee63752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee63752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee63752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1526,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee73752 : virtual dd3752 {
+ int e;
+ virtual void foo(); // _ZN7ee737523fooEv
+ virtual void bar(); // _ZN7ee737523barEv
+ ~ee73752(); // tgen
+ ee73752(); // tgen
+};
+//SIG(1 ee73752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void ee73752 ::foo(){vfunc_called(this, "_ZN7ee737523fooEv");}
+void ee73752 ::bar(){vfunc_called(this, "_ZN7ee737523barEv");}
+ee73752 ::~ee73752(){ note_dtor("ee73752", this);} // tgen
+ee73752 ::ee73752(){ note_ctor("ee73752", this);} // tgen
+
+static void Test_ee73752()
+{
+ extern Class_Descriptor cd_ee73752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee73752, buf);
+ ee73752 *dp, &lv = *(dp=new (buf) ee73752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee73752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee73752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee73752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee73752");
+ check_base_class_offset(lv, (cc752*)(dd3752*), ABISELECT(32,16), "ee73752");
+ check_base_class_offset(lv, (dd3752*), ABISELECT(16,8), "ee73752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee73752.e");
+ test_class_info(&lv, &cd_ee73752);
+ dp->~ee73752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee73752(Test_ee73752, "ee73752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee73752C1Ev();
+extern void _ZN7ee73752D1Ev();
+Name_Map name_map_ee73752[] = {
+ NSPAIR(_ZN7ee73752C1Ev),
+ NSPAIR(_ZN7ee73752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd3752;
+extern VTBL_ENTRY _ZTI6dd3752[];
+extern VTBL_ENTRY _ZTV6dd3752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd3752[];
+static Base_Class bases_ee73752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd3752, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee73752[];
+extern void _ZN7ee737523fooEv();
+extern void _ZN7ee737523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee737523fooEv,_ZTv0_n24_N7ee737523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee737523fooEv,_ZThn8_N7ee737523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee737523fooEv,_ZTv0_n20_N7ee737523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee737523fooEv,_ZThn16_N7ee737523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee737523barEv,_ZTv0_n24_N7ee737523barEv)();
+extern void ABISELECT(_ZThn32_N7ee737523barEv,_ZThn16_N7ee737523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737523barEv,_ZTv0_n16_N7ee737523barEv)();
+extern void ABISELECT(_ZThn48_N7ee737523barEv,_ZThn24_N7ee737523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee737523fooEv,_ZTv0_n12_N7ee737523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee737523fooEv,_ZThn32_N7ee737523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee737523barEv,_ZTv0_n16_N7ee737523barEv)();
+extern void ABISELECT(_ZThn64_N7ee737523barEv,_ZThn32_N7ee737523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee73752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee73752[0]),
+ (VTBL_ENTRY)&_ZN7ee737523fooEv,
+ (VTBL_ENTRY)&_ZN7ee737523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee73752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737523fooEv,_ZTv0_n24_N7ee737523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee73752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee737523fooEv,_ZTv0_n20_N7ee737523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee737523barEv,_ZTv0_n24_N7ee737523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee73752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737523barEv,_ZTv0_n16_N7ee737523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee73752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee737523fooEv,_ZTv0_n12_N7ee737523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee737523barEv,_ZTv0_n16_N7ee737523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee73752[];
+extern void _ZN6dd37523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd3752__7ee73752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&_ZN6dd37523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv)() __attribute__((weak));
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd3752__7ee73752[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv),
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd3752__7ee73752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd3752__7ee73752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd3752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee73752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee73752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee73752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee73752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee73752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee73752[] = {
+ {&(_ZTV7ee73752[6]), 6,34},
+ {&(_ZTV7ee73752[14]), 14,34},
+ {&(_ZTV7ee73752[21]), 21,34},
+ {&(_ZTV7ee73752[27]), 27,34},
+ {&(_ZTV7ee73752[32]), 32,34},
+ {&(_tg__ZTV6dd3752__7ee73752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd3752__7ee73752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd3752__7ee73752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd3752__7ee73752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee73752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee73752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee73752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee73752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee73752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee73752[];
+extern VTBL_ENTRY _ZTV7ee73752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee73752[];
+static VTBL_ENTRY alt_thunk_names1527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd37523fooEv,_ZTv0_n12_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd37523fooEv,_ZThn24_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd37523fooEv,_ZTv0_n20_N6dd37523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd37523fooEv,_ZThn8_N6dd37523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee737523fooEv,_ZTv0_n12_N7ee737523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee737523fooEv,_ZThn32_N7ee737523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee737523barEv,_ZTv0_n16_N7ee737523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee737523barEv,_ZThn32_N7ee737523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee737523barEv,_ZThn24_N7ee737523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737523barEv,_ZTv0_n24_N7ee737523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737523barEv,_ZThn16_N7ee737523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee737523fooEv,_ZTv0_n20_N7ee737523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee737523fooEv,_ZThn16_N7ee737523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee737523fooEv,_ZTv0_n24_N7ee737523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee737523fooEv,_ZThn8_N7ee737523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee73752 = { "ee73752", // class name
+ bases_ee73752, 4,
+ &(vtc_ee73752[0]), // expected_vtbl_contents
+ &(vtt_ee73752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee73752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee73752),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee73752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1527,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd4752 : cc752 {
+ int d;
+ virtual void bar(); // _ZN6dd47523barEv
+ ~dd4752(); // tgen
+ dd4752(); // tgen
+};
+//SIG(-1 dd4752) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd4752 ::bar(){vfunc_called(this, "_ZN6dd47523barEv");}
+dd4752 ::~dd4752(){ note_dtor("dd4752", this);} // tgen
+dd4752 ::dd4752(){ note_ctor("dd4752", this);} // tgen
+
+static void Test_dd4752()
+{
+ extern Class_Descriptor cd_dd4752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd4752, buf);
+ dd4752 *dp, &lv = *(dp=new (buf) dd4752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd4752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd4752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd4752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(16,12), "dd4752");
+ check_base_class_offset(lv, (cc752*), 0, "dd4752");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd4752.d");
+ test_class_info(&lv, &cd_dd4752);
+ dp->~dd4752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd4752(Test_dd4752, "dd4752", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd4752C1Ev();
+extern void _ZN6dd4752D1Ev();
+Name_Map name_map_dd4752[] = {
+ NSPAIR(_ZN6dd4752C1Ev),
+ NSPAIR(_ZN6dd4752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd4752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd4752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd4752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd4752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd4752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd4752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd4752[] = {
+ {&(_ZTV6dd4752[4]), 4,17},
+ {&(_tg__ZTV5cc752__6dd4752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd4752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd4752[4]), 4,6},
+ {&(_ZTV6dd4752[10]), 10,17},
+ {&(_ZTV6dd4752[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd4752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd4752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static VTBL_ENTRY alt_thunk_names1528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd4752 = { "dd4752", // class name
+ bases_dd4752, 3,
+ &(vtc_dd4752[0]), // expected_vtbl_contents
+ &(vtt_dd4752[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd4752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd4752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd4752),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1528,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee04752 : dd4752 {
+ int e;
+ ~ee04752(); // tgen
+ ee04752(); // tgen
+};
+//SIG(1 ee04752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee04752 ::~ee04752(){ note_dtor("ee04752", this);} // tgen
+ee04752 ::ee04752(){ note_ctor("ee04752", this);} // tgen
+
+static void Test_ee04752()
+{
+ extern Class_Descriptor cd_ee04752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee04752, buf);
+ ee04752 *dp, &lv = *(dp=new (buf) ee04752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee04752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee04752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee04752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(24,16), "ee04752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), 0, "ee04752");
+ check_base_class_offset(lv, (dd4752*), 0, "ee04752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee04752.e");
+ test_class_info(&lv, &cd_ee04752);
+ dp->~ee04752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee04752(Test_ee04752, "ee04752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee04752C1Ev();
+extern void _ZN7ee04752D1Ev();
+Name_Map name_map_ee04752[] = {
+ NSPAIR(_ZN7ee04752C1Ev),
+ NSPAIR(_ZN7ee04752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee04752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee04752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee04752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee04752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee04752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee04752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee04752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee04752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee04752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee04752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee04752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee04752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee04752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee04752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee04752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee04752[] = {
+ {&(_ZTV7ee04752[4]), 4,17},
+ {&(_tg__ZTV6dd4752__7ee04752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee04752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee04752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee04752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee04752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee04752[4]), 4,6},
+ {&(_ZTV7ee04752[10]), 10,17},
+ {&(_ZTV7ee04752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee04752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee04752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee04752[];
+extern VTBL_ENTRY _ZTV7ee04752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee04752[];
+static VTBL_ENTRY alt_thunk_names1529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee04752 = { "ee04752", // class name
+ bases_ee04752, 4,
+ &(vtc_ee04752[0]), // expected_vtbl_contents
+ &(vtt_ee04752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee04752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee04752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee04752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1529,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee14752 : virtual dd4752 {
+ int e;
+ ~ee14752(); // tgen
+ ee14752(); // tgen
+};
+//SIG(1 ee14752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee14752 ::~ee14752(){ note_dtor("ee14752", this);} // tgen
+ee14752 ::ee14752(){ note_ctor("ee14752", this);} // tgen
+
+static void Test_ee14752()
+{
+ extern Class_Descriptor cd_ee14752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee14752, buf);
+ ee14752 *dp, &lv = *(dp=new (buf) ee14752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee14752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee14752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee14752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(32,20), "ee14752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), ABISELECT(16,8), "ee14752");
+ check_base_class_offset(lv, (dd4752*), ABISELECT(16,8), "ee14752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee14752.e");
+ test_class_info(&lv, &cd_ee14752);
+ dp->~ee14752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee14752(Test_ee14752, "ee14752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee14752C1Ev();
+extern void _ZN7ee14752D1Ev();
+Name_Map name_map_ee14752[] = {
+ NSPAIR(_ZN7ee14752C1Ev),
+ NSPAIR(_ZN7ee14752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee14752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee14752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee14752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee14752[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee14752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee14752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee14752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee14752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee14752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee14752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee14752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee14752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee14752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee14752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee14752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee14752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee14752[] = {
+ {&(_ZTV7ee14752[5]), 5,24},
+ {&(_ZTV7ee14752[11]), 11,24},
+ {&(_ZTV7ee14752[17]), 17,24},
+ {&(_ZTV7ee14752[22]), 22,24},
+ {&(_tg__ZTV6dd4752__7ee14752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee14752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee14752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee14752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee14752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee14752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee14752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee14752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee14752[];
+extern VTBL_ENTRY _ZTV7ee14752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee14752[];
+static VTBL_ENTRY alt_thunk_names1530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee14752 = { "ee14752", // class name
+ bases_ee14752, 4,
+ &(vtc_ee14752[0]), // expected_vtbl_contents
+ &(vtt_ee14752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee14752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee14752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee14752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1530,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee24752 : dd4752 {
+ int e;
+ virtual void foo(); // _ZN7ee247523fooEv
+ ~ee24752(); // tgen
+ ee24752(); // tgen
+};
+//SIG(1 ee24752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee24752 ::foo(){vfunc_called(this, "_ZN7ee247523fooEv");}
+ee24752 ::~ee24752(){ note_dtor("ee24752", this);} // tgen
+ee24752 ::ee24752(){ note_ctor("ee24752", this);} // tgen
+
+static void Test_ee24752()
+{
+ extern Class_Descriptor cd_ee24752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee24752, buf);
+ ee24752 *dp, &lv = *(dp=new (buf) ee24752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee24752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee24752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee24752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(24,16), "ee24752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), 0, "ee24752");
+ check_base_class_offset(lv, (dd4752*), 0, "ee24752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee24752.e");
+ test_class_info(&lv, &cd_ee24752);
+ dp->~ee24752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee24752(Test_ee24752, "ee24752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee24752C1Ev();
+extern void _ZN7ee24752D1Ev();
+Name_Map name_map_ee24752[] = {
+ NSPAIR(_ZN7ee24752C1Ev),
+ NSPAIR(_ZN7ee24752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee24752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee24752[];
+extern void _ZN7ee247523fooEv();
+extern void _ZN6dd47523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee247523fooEv,_ZTv0_n12_N7ee247523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee247523fooEv,_ZThn24_N7ee247523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee24752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee24752[0]),
+ (VTBL_ENTRY)&_ZN7ee247523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee24752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee24752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee247523fooEv,_ZTv0_n12_N7ee247523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee24752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee24752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee24752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee24752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee24752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee24752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee24752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee24752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee24752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee24752[] = {
+ {&(_ZTV7ee24752[4]), 4,17},
+ {&(_tg__ZTV6dd4752__7ee24752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee24752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee24752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee24752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee24752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee24752[4]), 4,6},
+ {&(_ZTV7ee24752[10]), 10,17},
+ {&(_ZTV7ee24752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee24752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee24752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee24752[];
+extern VTBL_ENTRY _ZTV7ee24752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee24752[];
+static VTBL_ENTRY alt_thunk_names1531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee247523fooEv,_ZTv0_n12_N7ee247523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee247523fooEv,_ZThn24_N7ee247523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee24752 = { "ee24752", // class name
+ bases_ee24752, 4,
+ &(vtc_ee24752[0]), // expected_vtbl_contents
+ &(vtt_ee24752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee24752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee24752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee24752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1531,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee34752 : virtual dd4752 {
+ int e;
+ virtual void foo(); // _ZN7ee347523fooEv
+ ~ee34752(); // tgen
+ ee34752(); // tgen
+};
+//SIG(1 ee34752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee34752 ::foo(){vfunc_called(this, "_ZN7ee347523fooEv");}
+ee34752 ::~ee34752(){ note_dtor("ee34752", this);} // tgen
+ee34752 ::ee34752(){ note_ctor("ee34752", this);} // tgen
+
+static void Test_ee34752()
+{
+ extern Class_Descriptor cd_ee34752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee34752, buf);
+ ee34752 *dp, &lv = *(dp=new (buf) ee34752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee34752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee34752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee34752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(32,20), "ee34752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), ABISELECT(16,8), "ee34752");
+ check_base_class_offset(lv, (dd4752*), ABISELECT(16,8), "ee34752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee34752.e");
+ test_class_info(&lv, &cd_ee34752);
+ dp->~ee34752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee34752(Test_ee34752, "ee34752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee34752C1Ev();
+extern void _ZN7ee34752D1Ev();
+Name_Map name_map_ee34752[] = {
+ NSPAIR(_ZN7ee34752C1Ev),
+ NSPAIR(_ZN7ee34752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee34752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee34752[];
+extern void _ZN7ee347523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee347523fooEv,_ZTv0_n20_N7ee347523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee347523fooEv,_ZThn8_N7ee347523fooEv)() __attribute__((weak));
+extern void _ZN6dd47523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee347523fooEv,_ZTv0_n12_N7ee347523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee347523fooEv,_ZThn28_N7ee347523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee34752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee34752[0]),
+ (VTBL_ENTRY)&_ZN7ee347523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee34752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee347523fooEv,_ZTv0_n20_N7ee347523fooEv),
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee34752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee34752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee347523fooEv,_ZTv0_n12_N7ee347523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee34752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee34752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee34752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee34752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee34752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee34752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee34752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee34752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee34752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee34752[] = {
+ {&(_ZTV7ee34752[5]), 5,25},
+ {&(_ZTV7ee34752[12]), 12,25},
+ {&(_ZTV7ee34752[18]), 18,25},
+ {&(_ZTV7ee34752[23]), 23,25},
+ {&(_tg__ZTV6dd4752__7ee34752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee34752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee34752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee34752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee34752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee34752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee34752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee34752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee34752[];
+extern VTBL_ENTRY _ZTV7ee34752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee34752[];
+static VTBL_ENTRY alt_thunk_names1532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee347523fooEv,_ZTv0_n12_N7ee347523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee347523fooEv,_ZThn28_N7ee347523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee347523fooEv,_ZTv0_n20_N7ee347523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee347523fooEv,_ZThn8_N7ee347523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee34752 = { "ee34752", // class name
+ bases_ee34752, 4,
+ &(vtc_ee34752[0]), // expected_vtbl_contents
+ &(vtt_ee34752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee34752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee34752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee34752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1532,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee44752 : dd4752 {
+ int e;
+ virtual void bar(); // _ZN7ee447523barEv
+ ~ee44752(); // tgen
+ ee44752(); // tgen
+};
+//SIG(1 ee44752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee44752 ::bar(){vfunc_called(this, "_ZN7ee447523barEv");}
+ee44752 ::~ee44752(){ note_dtor("ee44752", this);} // tgen
+ee44752 ::ee44752(){ note_ctor("ee44752", this);} // tgen
+
+static void Test_ee44752()
+{
+ extern Class_Descriptor cd_ee44752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee44752, buf);
+ ee44752 *dp, &lv = *(dp=new (buf) ee44752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee44752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee44752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee44752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(24,16), "ee44752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), 0, "ee44752");
+ check_base_class_offset(lv, (dd4752*), 0, "ee44752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee44752.e");
+ test_class_info(&lv, &cd_ee44752);
+ dp->~ee44752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee44752(Test_ee44752, "ee44752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee44752C1Ev();
+extern void _ZN7ee44752D1Ev();
+Name_Map name_map_ee44752[] = {
+ NSPAIR(_ZN7ee44752C1Ev),
+ NSPAIR(_ZN7ee44752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee44752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee44752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN7ee447523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee447523barEv,_ZTv0_n16_N7ee447523barEv)();
+extern void ABISELECT(_ZThn24_N7ee447523barEv,_ZThn16_N7ee447523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee447523barEv,_ZTv0_n16_N7ee447523barEv)();
+extern void ABISELECT(_ZThn40_N7ee447523barEv,_ZThn24_N7ee447523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee44752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee44752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN7ee447523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee44752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447523barEv,_ZTv0_n16_N7ee447523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee44752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee447523barEv,_ZTv0_n16_N7ee447523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee44752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee44752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee44752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee44752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee44752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee44752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee44752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee44752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee44752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee44752[] = {
+ {&(_ZTV7ee44752[4]), 4,17},
+ {&(_tg__ZTV6dd4752__7ee44752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee44752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee44752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee44752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee44752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee44752[4]), 4,6},
+ {&(_ZTV7ee44752[10]), 10,17},
+ {&(_ZTV7ee44752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee44752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee44752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee44752[];
+extern VTBL_ENTRY _ZTV7ee44752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee44752[];
+static VTBL_ENTRY alt_thunk_names1533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee447523barEv,_ZTv0_n16_N7ee447523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee447523barEv,_ZThn24_N7ee447523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee447523barEv,_ZThn16_N7ee447523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee44752 = { "ee44752", // class name
+ bases_ee44752, 4,
+ &(vtc_ee44752[0]), // expected_vtbl_contents
+ &(vtt_ee44752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee44752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee44752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee44752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1533,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee54752 : virtual dd4752 {
+ int e;
+ virtual void bar(); // _ZN7ee547523barEv
+ ~ee54752(); // tgen
+ ee54752(); // tgen
+};
+//SIG(1 ee54752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee54752 ::bar(){vfunc_called(this, "_ZN7ee547523barEv");}
+ee54752 ::~ee54752(){ note_dtor("ee54752", this);} // tgen
+ee54752 ::ee54752(){ note_ctor("ee54752", this);} // tgen
+
+static void Test_ee54752()
+{
+ extern Class_Descriptor cd_ee54752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee54752, buf);
+ ee54752 *dp, &lv = *(dp=new (buf) ee54752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee54752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee54752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee54752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(32,20), "ee54752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), ABISELECT(16,8), "ee54752");
+ check_base_class_offset(lv, (dd4752*), ABISELECT(16,8), "ee54752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee54752.e");
+ test_class_info(&lv, &cd_ee54752);
+ dp->~ee54752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee54752(Test_ee54752, "ee54752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee54752C1Ev();
+extern void _ZN7ee54752D1Ev();
+Name_Map name_map_ee54752[] = {
+ NSPAIR(_ZN7ee54752C1Ev),
+ NSPAIR(_ZN7ee54752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee54752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee54752[];
+extern void _ZN7ee547523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee547523barEv,_ZTv0_n24_N7ee547523barEv)();
+extern void ABISELECT(_ZThn16_N7ee547523barEv,_ZThn8_N7ee547523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547523barEv,_ZTv0_n16_N7ee547523barEv)();
+extern void ABISELECT(_ZThn32_N7ee547523barEv,_ZThn20_N7ee547523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee547523barEv,_ZTv0_n16_N7ee547523barEv)();
+extern void ABISELECT(_ZThn48_N7ee547523barEv,_ZThn28_N7ee547523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee54752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee54752[0]),
+ (VTBL_ENTRY)&_ZN7ee547523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee54752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee547523barEv,_ZTv0_n24_N7ee547523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee54752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547523barEv,_ZTv0_n16_N7ee547523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee54752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee547523barEv,_ZTv0_n16_N7ee547523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee54752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee54752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee54752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee54752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee54752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee54752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee54752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee54752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee54752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee54752[] = {
+ {&(_ZTV7ee54752[5]), 5,25},
+ {&(_ZTV7ee54752[12]), 12,25},
+ {&(_ZTV7ee54752[18]), 18,25},
+ {&(_ZTV7ee54752[23]), 23,25},
+ {&(_tg__ZTV6dd4752__7ee54752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee54752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee54752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee54752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee54752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee54752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee54752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee54752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee54752[];
+extern VTBL_ENTRY _ZTV7ee54752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee54752[];
+static VTBL_ENTRY alt_thunk_names1534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee547523barEv,_ZTv0_n16_N7ee547523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee547523barEv,_ZThn28_N7ee547523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee547523barEv,_ZThn20_N7ee547523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee547523barEv,_ZTv0_n24_N7ee547523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee547523barEv,_ZThn8_N7ee547523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee54752 = { "ee54752", // class name
+ bases_ee54752, 4,
+ &(vtc_ee54752[0]), // expected_vtbl_contents
+ &(vtt_ee54752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee54752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee54752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee54752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1534,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee64752 : dd4752 {
+ int e;
+ virtual void foo(); // _ZN7ee647523fooEv
+ virtual void bar(); // _ZN7ee647523barEv
+ ~ee64752(); // tgen
+ ee64752(); // tgen
+};
+//SIG(1 ee64752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee64752 ::foo(){vfunc_called(this, "_ZN7ee647523fooEv");}
+void ee64752 ::bar(){vfunc_called(this, "_ZN7ee647523barEv");}
+ee64752 ::~ee64752(){ note_dtor("ee64752", this);} // tgen
+ee64752 ::ee64752(){ note_ctor("ee64752", this);} // tgen
+
+static void Test_ee64752()
+{
+ extern Class_Descriptor cd_ee64752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee64752, buf);
+ ee64752 *dp, &lv = *(dp=new (buf) ee64752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee64752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee64752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee64752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(24,16), "ee64752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), 0, "ee64752");
+ check_base_class_offset(lv, (dd4752*), 0, "ee64752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee64752.e");
+ test_class_info(&lv, &cd_ee64752);
+ dp->~ee64752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee64752(Test_ee64752, "ee64752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee64752C1Ev();
+extern void _ZN7ee64752D1Ev();
+Name_Map name_map_ee64752[] = {
+ NSPAIR(_ZN7ee64752C1Ev),
+ NSPAIR(_ZN7ee64752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee64752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee64752[];
+extern void _ZN7ee647523fooEv();
+extern void _ZN7ee647523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee647523barEv,_ZTv0_n16_N7ee647523barEv)();
+extern void ABISELECT(_ZThn24_N7ee647523barEv,_ZThn16_N7ee647523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee647523fooEv,_ZTv0_n12_N7ee647523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee647523fooEv,_ZThn24_N7ee647523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee647523barEv,_ZTv0_n16_N7ee647523barEv)();
+extern void ABISELECT(_ZThn40_N7ee647523barEv,_ZThn24_N7ee647523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee64752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee64752[0]),
+ (VTBL_ENTRY)&_ZN7ee647523fooEv,
+ (VTBL_ENTRY)&_ZN7ee647523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee64752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647523barEv,_ZTv0_n16_N7ee647523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee64752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee647523fooEv,_ZTv0_n12_N7ee647523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee647523barEv,_ZTv0_n16_N7ee647523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee64752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee64752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee64752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee64752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee64752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee64752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee64752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee64752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee64752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee64752[] = {
+ {&(_ZTV7ee64752[4]), 4,17},
+ {&(_tg__ZTV6dd4752__7ee64752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee64752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee64752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee64752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee64752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee64752[4]), 4,6},
+ {&(_ZTV7ee64752[10]), 10,17},
+ {&(_ZTV7ee64752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee64752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee64752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee64752[];
+extern VTBL_ENTRY _ZTV7ee64752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee64752[];
+static VTBL_ENTRY alt_thunk_names1535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd47523barEv,_ZThn24_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd47523barEv,_ZThn16_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee647523fooEv,_ZTv0_n12_N7ee647523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee647523fooEv,_ZThn24_N7ee647523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee647523barEv,_ZTv0_n16_N7ee647523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee647523barEv,_ZThn24_N7ee647523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee647523barEv,_ZThn16_N7ee647523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee64752 = { "ee64752", // class name
+ bases_ee64752, 4,
+ &(vtc_ee64752[0]), // expected_vtbl_contents
+ &(vtt_ee64752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee64752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee64752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee64752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1535,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee74752 : virtual dd4752 {
+ int e;
+ virtual void foo(); // _ZN7ee747523fooEv
+ virtual void bar(); // _ZN7ee747523barEv
+ ~ee74752(); // tgen
+ ee74752(); // tgen
+};
+//SIG(1 ee74752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee74752 ::foo(){vfunc_called(this, "_ZN7ee747523fooEv");}
+void ee74752 ::bar(){vfunc_called(this, "_ZN7ee747523barEv");}
+ee74752 ::~ee74752(){ note_dtor("ee74752", this);} // tgen
+ee74752 ::ee74752(){ note_ctor("ee74752", this);} // tgen
+
+static void Test_ee74752()
+{
+ extern Class_Descriptor cd_ee74752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee74752, buf);
+ ee74752 *dp, &lv = *(dp=new (buf) ee74752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee74752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee74752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee74752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd4752*), ABISELECT(32,20), "ee74752");
+ check_base_class_offset(lv, (cc752*)(dd4752*), ABISELECT(16,8), "ee74752");
+ check_base_class_offset(lv, (dd4752*), ABISELECT(16,8), "ee74752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee74752.e");
+ test_class_info(&lv, &cd_ee74752);
+ dp->~ee74752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee74752(Test_ee74752, "ee74752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee74752C1Ev();
+extern void _ZN7ee74752D1Ev();
+Name_Map name_map_ee74752[] = {
+ NSPAIR(_ZN7ee74752C1Ev),
+ NSPAIR(_ZN7ee74752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd4752;
+extern VTBL_ENTRY _ZTI6dd4752[];
+extern VTBL_ENTRY _ZTV6dd4752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd4752[];
+static Base_Class bases_ee74752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd4752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee74752[];
+extern void _ZN7ee747523fooEv();
+extern void _ZN7ee747523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee747523fooEv,_ZTv0_n20_N7ee747523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee747523fooEv,_ZThn8_N7ee747523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee747523barEv,_ZTv0_n24_N7ee747523barEv)();
+extern void ABISELECT(_ZThn16_N7ee747523barEv,_ZThn8_N7ee747523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747523barEv,_ZTv0_n16_N7ee747523barEv)();
+extern void ABISELECT(_ZThn32_N7ee747523barEv,_ZThn20_N7ee747523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee747523fooEv,_ZTv0_n12_N7ee747523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee747523fooEv,_ZThn28_N7ee747523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee747523barEv,_ZTv0_n16_N7ee747523barEv)();
+extern void ABISELECT(_ZThn48_N7ee747523barEv,_ZThn28_N7ee747523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee74752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee74752[0]),
+ (VTBL_ENTRY)&_ZN7ee747523fooEv,
+ (VTBL_ENTRY)&_ZN7ee747523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee74752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee747523fooEv,_ZTv0_n20_N7ee747523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee747523barEv,_ZTv0_n24_N7ee747523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee74752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747523barEv,_ZTv0_n16_N7ee747523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee74752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee747523fooEv,_ZTv0_n12_N7ee747523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee747523barEv,_ZTv0_n16_N7ee747523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee74752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN6dd47523barEv();
+static VTBL_ENTRY _tg__ZTV6dd4752__7ee74752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN6dd47523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd4752__7ee74752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd4752__7ee74752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd4752__7ee74752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd4752__7ee74752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv)();
+extern void ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd4752__7ee74752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd4752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee74752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee74752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee74752[] = {
+ {&(_ZTV7ee74752[5]), 5,26},
+ {&(_ZTV7ee74752[13]), 13,26},
+ {&(_ZTV7ee74752[19]), 19,26},
+ {&(_ZTV7ee74752[24]), 24,26},
+ {&(_tg__ZTV6dd4752__7ee74752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd4752__7ee74752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd4752__7ee74752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd4752__7ee74752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd4752__7ee74752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd4752__7ee74752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee74752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee74752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee74752[];
+extern VTBL_ENTRY _ZTV7ee74752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee74752[];
+static VTBL_ENTRY alt_thunk_names1536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd47523barEv,_ZTv0_n16_N6dd47523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd47523barEv,_ZThn20_N6dd47523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd47523barEv,_ZThn12_N6dd47523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee747523fooEv,_ZTv0_n12_N7ee747523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee747523fooEv,_ZThn28_N7ee747523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee747523barEv,_ZTv0_n16_N7ee747523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee747523barEv,_ZThn28_N7ee747523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee747523barEv,_ZThn20_N7ee747523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee747523barEv,_ZTv0_n24_N7ee747523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747523barEv,_ZThn8_N7ee747523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee747523fooEv,_ZTv0_n20_N7ee747523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee747523fooEv,_ZThn8_N7ee747523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee74752 = { "ee74752", // class name
+ bases_ee74752, 4,
+ &(vtc_ee74752[0]), // expected_vtbl_contents
+ &(vtt_ee74752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee74752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee74752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee74752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1536,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd5752 : virtual cc752 {
+ int d;
+ virtual void bar(); // _ZN6dd57523barEv
+ ~dd5752(); // tgen
+ dd5752(); // tgen
+};
+//SIG(-1 dd5752) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void dd5752 ::bar(){vfunc_called(this, "_ZN6dd57523barEv");}
+dd5752 ::~dd5752(){ note_dtor("dd5752", this);} // tgen
+dd5752 ::dd5752(){ note_ctor("dd5752", this);} // tgen
+
+static void Test_dd5752()
+{
+ extern Class_Descriptor cd_dd5752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd5752, buf);
+ dd5752 *dp, &lv = *(dp=new (buf) dd5752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd5752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd5752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd5752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,16), "dd5752");
+ check_base_class_offset(lv, (cc752*), ABISELECT(16,8), "dd5752");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd5752.d");
+ test_class_info(&lv, &cd_dd5752);
+ dp->~dd5752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd5752(Test_dd5752, "dd5752", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd5752C1Ev();
+extern void _ZN6dd5752D1Ev();
+Name_Map name_map_dd5752[] = {
+ NSPAIR(_ZN6dd5752C1Ev),
+ NSPAIR(_ZN6dd5752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd5752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd5752[];
+extern void _ZN6dd57523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd5752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd5752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd5752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd5752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd5752[] = {
+ {&(_ZTV6dd5752[5]), 5,25},
+ {&(_ZTV6dd5752[12]), 12,25},
+ {&(_ZTV6dd5752[18]), 18,25},
+ {&(_ZTV6dd5752[23]), 23,25},
+ {&(_tg__ZTV5cc752__6dd5752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd5752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd5752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd5752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd5752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static VTBL_ENTRY alt_thunk_names1537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd5752 = { "dd5752", // class name
+ bases_dd5752, 3,
+ &(vtc_dd5752[0]), // expected_vtbl_contents
+ &(vtt_dd5752[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd5752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd5752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd5752),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1537,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee05752 : dd5752 {
+ int e;
+ ~ee05752(); // tgen
+ ee05752(); // tgen
+};
+//SIG(1 ee05752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee05752 ::~ee05752(){ note_dtor("ee05752", this);} // tgen
+ee05752 ::ee05752(){ note_ctor("ee05752", this);} // tgen
+
+static void Test_ee05752()
+{
+ extern Class_Descriptor cd_ee05752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee05752, buf);
+ ee05752 *dp, &lv = *(dp=new (buf) ee05752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee05752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee05752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee05752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee05752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(16,12), "ee05752");
+ check_base_class_offset(lv, (dd5752*), 0, "ee05752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee05752.e");
+ test_class_info(&lv, &cd_ee05752);
+ dp->~ee05752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee05752(Test_ee05752, "ee05752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee05752C1Ev();
+extern void _ZN7ee05752D1Ev();
+Name_Map name_map_ee05752[] = {
+ NSPAIR(_ZN7ee05752C1Ev),
+ NSPAIR(_ZN7ee05752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee05752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee05752[];
+extern void _ZN6dd57523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee05752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee05752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee05752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee05752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee05752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee05752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee05752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee05752[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee05752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee05752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee05752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee05752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee05752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee05752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee05752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee05752[] = {
+ {&(_ZTV7ee05752[5]), 5,25},
+ {&(_tg__ZTV6dd5752__7ee05752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee05752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee05752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee05752[4]), 4,6},
+ {&(_ZTV7ee05752[12]), 12,25},
+ {&(_ZTV7ee05752[18]), 18,25},
+ {&(_ZTV7ee05752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee05752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee05752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee05752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee05752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee05752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee05752[];
+extern VTBL_ENTRY _ZTV7ee05752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee05752[];
+static VTBL_ENTRY alt_thunk_names1538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee05752 = { "ee05752", // class name
+ bases_ee05752, 4,
+ &(vtc_ee05752[0]), // expected_vtbl_contents
+ &(vtt_ee05752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee05752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee05752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee05752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1538,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee15752 : virtual dd5752 {
+ int e;
+ ~ee15752(); // tgen
+ ee15752(); // tgen
+};
+//SIG(1 ee15752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} Fi}
+
+
+ee15752 ::~ee15752(){ note_dtor("ee15752", this);} // tgen
+ee15752 ::ee15752(){ note_ctor("ee15752", this);} // tgen
+
+static void Test_ee15752()
+{
+ extern Class_Descriptor cd_ee15752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee15752, buf);
+ ee15752 *dp, &lv = *(dp=new (buf) ee15752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee15752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee15752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee15752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee15752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(32,16), "ee15752");
+ check_base_class_offset(lv, (dd5752*), ABISELECT(16,8), "ee15752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee15752.e");
+ test_class_info(&lv, &cd_ee15752);
+ dp->~ee15752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee15752(Test_ee15752, "ee15752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee15752C1Ev();
+extern void _ZN7ee15752D1Ev();
+Name_Map name_map_ee15752[] = {
+ NSPAIR(_ZN7ee15752C1Ev),
+ NSPAIR(_ZN7ee15752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee15752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee15752[];
+extern void _ZN6dd57523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee15752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee15752[0]),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee15752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee15752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee15752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee15752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee15752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee15752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee15752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee15752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee15752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee15752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee15752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee15752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee15752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee15752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee15752[] = {
+ {&(_ZTV7ee15752[6]), 6,32},
+ {&(_ZTV7ee15752[12]), 12,32},
+ {&(_ZTV7ee15752[19]), 19,32},
+ {&(_ZTV7ee15752[25]), 25,32},
+ {&(_ZTV7ee15752[30]), 30,32},
+ {&(_tg__ZTV6dd5752__7ee15752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee15752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee15752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee15752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee15752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee15752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee15752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee15752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee15752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee15752[];
+extern VTBL_ENTRY _ZTV7ee15752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee15752[];
+static VTBL_ENTRY alt_thunk_names1539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee15752 = { "ee15752", // class name
+ bases_ee15752, 4,
+ &(vtc_ee15752[0]), // expected_vtbl_contents
+ &(vtt_ee15752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee15752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee15752),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee15752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1539,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee25752 : dd5752 {
+ int e;
+ virtual void foo(); // _ZN7ee257523fooEv
+ ~ee25752(); // tgen
+ ee25752(); // tgen
+};
+//SIG(1 ee25752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee25752 ::foo(){vfunc_called(this, "_ZN7ee257523fooEv");}
+ee25752 ::~ee25752(){ note_dtor("ee25752", this);} // tgen
+ee25752 ::ee25752(){ note_ctor("ee25752", this);} // tgen
+
+static void Test_ee25752()
+{
+ extern Class_Descriptor cd_ee25752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee25752, buf);
+ ee25752 *dp, &lv = *(dp=new (buf) ee25752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee25752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee25752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee25752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee25752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(16,12), "ee25752");
+ check_base_class_offset(lv, (dd5752*), 0, "ee25752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee25752.e");
+ test_class_info(&lv, &cd_ee25752);
+ dp->~ee25752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee25752(Test_ee25752, "ee25752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee25752C1Ev();
+extern void _ZN7ee25752D1Ev();
+Name_Map name_map_ee25752[] = {
+ NSPAIR(_ZN7ee25752C1Ev),
+ NSPAIR(_ZN7ee25752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee25752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee25752[];
+extern void _ZN6dd57523barEv();
+extern void _ZN7ee257523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee257523fooEv,_ZTv0_n20_N7ee257523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee257523fooEv,_ZThn12_N7ee257523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee257523fooEv,_ZTv0_n12_N7ee257523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee257523fooEv,_ZThn28_N7ee257523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee25752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee25752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+ (VTBL_ENTRY)&_ZN7ee257523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee25752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee257523fooEv,_ZTv0_n20_N7ee257523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee25752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee25752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee257523fooEv,_ZTv0_n12_N7ee257523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee25752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee25752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee25752[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee25752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee25752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee25752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee25752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee25752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee25752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee25752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee25752[] = {
+ {&(_ZTV7ee25752[5]), 5,26},
+ {&(_tg__ZTV6dd5752__7ee25752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee25752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee25752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee25752[4]), 4,6},
+ {&(_ZTV7ee25752[13]), 13,26},
+ {&(_ZTV7ee25752[19]), 19,26},
+ {&(_ZTV7ee25752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee25752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee25752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee25752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee25752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee25752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee25752[];
+extern VTBL_ENTRY _ZTV7ee25752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee25752[];
+static VTBL_ENTRY alt_thunk_names1540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee257523fooEv,_ZTv0_n12_N7ee257523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee257523fooEv,_ZThn28_N7ee257523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee257523fooEv,_ZTv0_n20_N7ee257523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee257523fooEv,_ZThn12_N7ee257523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee25752 = { "ee25752", // class name
+ bases_ee25752, 4,
+ &(vtc_ee25752[0]), // expected_vtbl_contents
+ &(vtt_ee25752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee25752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee25752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee25752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1540,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee35752 : virtual dd5752 {
+ int e;
+ virtual void foo(); // _ZN7ee357523fooEv
+ ~ee35752(); // tgen
+ ee35752(); // tgen
+};
+//SIG(1 ee35752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void ee35752 ::foo(){vfunc_called(this, "_ZN7ee357523fooEv");}
+ee35752 ::~ee35752(){ note_dtor("ee35752", this);} // tgen
+ee35752 ::ee35752(){ note_ctor("ee35752", this);} // tgen
+
+static void Test_ee35752()
+{
+ extern Class_Descriptor cd_ee35752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee35752, buf);
+ ee35752 *dp, &lv = *(dp=new (buf) ee35752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee35752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee35752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee35752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee35752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(32,16), "ee35752");
+ check_base_class_offset(lv, (dd5752*), ABISELECT(16,8), "ee35752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee35752.e");
+ test_class_info(&lv, &cd_ee35752);
+ dp->~ee35752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee35752(Test_ee35752, "ee35752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee35752C1Ev();
+extern void _ZN7ee35752D1Ev();
+Name_Map name_map_ee35752[] = {
+ NSPAIR(_ZN7ee35752C1Ev),
+ NSPAIR(_ZN7ee35752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee35752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee35752[];
+extern void _ZN7ee357523fooEv();
+extern void _ZN6dd57523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee357523fooEv,_ZTv0_n20_N7ee357523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee357523fooEv,_ZThn16_N7ee357523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee357523fooEv,_ZTv0_n12_N7ee357523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee357523fooEv,_ZThn32_N7ee357523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee35752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee35752[0]),
+ (VTBL_ENTRY)&_ZN7ee357523fooEv,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee35752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee35752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee357523fooEv,_ZTv0_n20_N7ee357523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee35752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee35752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee357523fooEv,_ZTv0_n12_N7ee357523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee35752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee35752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee35752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee35752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee35752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee35752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee35752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee35752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee35752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee35752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee35752[] = {
+ {&(_ZTV7ee35752[6]), 6,33},
+ {&(_ZTV7ee35752[13]), 13,33},
+ {&(_ZTV7ee35752[20]), 20,33},
+ {&(_ZTV7ee35752[26]), 26,33},
+ {&(_ZTV7ee35752[31]), 31,33},
+ {&(_tg__ZTV6dd5752__7ee35752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee35752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee35752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee35752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee35752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee35752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee35752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee35752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee35752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee35752[];
+extern VTBL_ENTRY _ZTV7ee35752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee35752[];
+static VTBL_ENTRY alt_thunk_names1541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee357523fooEv,_ZTv0_n12_N7ee357523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee357523fooEv,_ZThn32_N7ee357523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee357523fooEv,_ZTv0_n20_N7ee357523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee357523fooEv,_ZThn16_N7ee357523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee35752 = { "ee35752", // class name
+ bases_ee35752, 4,
+ &(vtc_ee35752[0]), // expected_vtbl_contents
+ &(vtt_ee35752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee35752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee35752),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee35752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1541,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee45752 : dd5752 {
+ int e;
+ virtual void bar(); // _ZN7ee457523barEv
+ ~ee45752(); // tgen
+ ee45752(); // tgen
+};
+//SIG(1 ee45752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee45752 ::bar(){vfunc_called(this, "_ZN7ee457523barEv");}
+ee45752 ::~ee45752(){ note_dtor("ee45752", this);} // tgen
+ee45752 ::ee45752(){ note_ctor("ee45752", this);} // tgen
+
+static void Test_ee45752()
+{
+ extern Class_Descriptor cd_ee45752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee45752, buf);
+ ee45752 *dp, &lv = *(dp=new (buf) ee45752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee45752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee45752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee45752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee45752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(16,12), "ee45752");
+ check_base_class_offset(lv, (dd5752*), 0, "ee45752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee45752.e");
+ test_class_info(&lv, &cd_ee45752);
+ dp->~ee45752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee45752(Test_ee45752, "ee45752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee45752C1Ev();
+extern void _ZN7ee45752D1Ev();
+Name_Map name_map_ee45752[] = {
+ NSPAIR(_ZN7ee45752C1Ev),
+ NSPAIR(_ZN7ee45752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee45752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee45752[];
+extern void _ZN7ee457523barEv();
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee457523barEv,_ZTv0_n24_N7ee457523barEv)();
+extern void ABISELECT(_ZThn16_N7ee457523barEv,_ZThn12_N7ee457523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457523barEv,_ZTv0_n16_N7ee457523barEv)();
+extern void ABISELECT(_ZThn32_N7ee457523barEv,_ZThn20_N7ee457523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee457523barEv,_ZTv0_n16_N7ee457523barEv)();
+extern void ABISELECT(_ZThn48_N7ee457523barEv,_ZThn28_N7ee457523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee45752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee45752[0]),
+ (VTBL_ENTRY)&_ZN7ee457523barEv,
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee45752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee457523barEv,_ZTv0_n24_N7ee457523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee45752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457523barEv,_ZTv0_n16_N7ee457523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee45752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee457523barEv,_ZTv0_n16_N7ee457523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee45752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee45752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee45752[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee45752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee45752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee45752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee45752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee45752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee45752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee45752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee45752[] = {
+ {&(_ZTV7ee45752[5]), 5,25},
+ {&(_tg__ZTV6dd5752__7ee45752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee45752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee45752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee45752[4]), 4,6},
+ {&(_ZTV7ee45752[12]), 12,25},
+ {&(_ZTV7ee45752[18]), 18,25},
+ {&(_ZTV7ee45752[23]), 23,25},
+ {&(_tg__ZTV5cc752__7ee45752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee45752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee45752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee45752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee45752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee45752[];
+extern VTBL_ENTRY _ZTV7ee45752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee45752[];
+static VTBL_ENTRY alt_thunk_names1542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee457523barEv,_ZTv0_n16_N7ee457523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee457523barEv,_ZThn28_N7ee457523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee457523barEv,_ZThn20_N7ee457523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee457523barEv,_ZTv0_n24_N7ee457523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee457523barEv,_ZThn12_N7ee457523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee45752 = { "ee45752", // class name
+ bases_ee45752, 4,
+ &(vtc_ee45752[0]), // expected_vtbl_contents
+ &(vtt_ee45752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee45752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee45752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee45752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1542,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee55752 : virtual dd5752 {
+ int e;
+ virtual void bar(); // _ZN7ee557523barEv
+ ~ee55752(); // tgen
+ ee55752(); // tgen
+};
+//SIG(1 ee55752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void ee55752 ::bar(){vfunc_called(this, "_ZN7ee557523barEv");}
+ee55752 ::~ee55752(){ note_dtor("ee55752", this);} // tgen
+ee55752 ::ee55752(){ note_ctor("ee55752", this);} // tgen
+
+static void Test_ee55752()
+{
+ extern Class_Descriptor cd_ee55752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee55752, buf);
+ ee55752 *dp, &lv = *(dp=new (buf) ee55752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee55752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee55752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee55752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee55752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(32,16), "ee55752");
+ check_base_class_offset(lv, (dd5752*), ABISELECT(16,8), "ee55752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee55752.e");
+ test_class_info(&lv, &cd_ee55752);
+ dp->~ee55752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee55752(Test_ee55752, "ee55752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee55752C1Ev();
+extern void _ZN7ee55752D1Ev();
+Name_Map name_map_ee55752[] = {
+ NSPAIR(_ZN7ee55752C1Ev),
+ NSPAIR(_ZN7ee55752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee55752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee55752[];
+extern void _ZN7ee557523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557523barEv,_ZTv0_n24_N7ee557523barEv)();
+extern void ABISELECT(_ZThn16_N7ee557523barEv,_ZThn8_N7ee557523barEv)() __attribute__((weak));
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee557523barEv,_ZTv0_n24_N7ee557523barEv)();
+extern void ABISELECT(_ZThn32_N7ee557523barEv,_ZThn16_N7ee557523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557523barEv,_ZTv0_n16_N7ee557523barEv)();
+extern void ABISELECT(_ZThn48_N7ee557523barEv,_ZThn24_N7ee557523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee557523barEv,_ZTv0_n16_N7ee557523barEv)();
+extern void ABISELECT(_ZThn64_N7ee557523barEv,_ZThn32_N7ee557523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee55752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee55752[0]),
+ (VTBL_ENTRY)&_ZN7ee557523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee55752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557523barEv,_ZTv0_n24_N7ee557523barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee55752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee557523barEv,_ZTv0_n24_N7ee557523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee55752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557523barEv,_ZTv0_n16_N7ee557523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee55752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee557523barEv,_ZTv0_n16_N7ee557523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee55752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee55752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee55752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee55752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee55752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee55752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee55752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee55752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee55752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee55752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee55752[] = {
+ {&(_ZTV7ee55752[6]), 6,33},
+ {&(_ZTV7ee55752[13]), 13,33},
+ {&(_ZTV7ee55752[20]), 20,33},
+ {&(_ZTV7ee55752[26]), 26,33},
+ {&(_ZTV7ee55752[31]), 31,33},
+ {&(_tg__ZTV6dd5752__7ee55752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee55752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee55752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee55752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee55752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee55752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee55752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee55752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee55752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee55752[];
+extern VTBL_ENTRY _ZTV7ee55752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee55752[];
+static VTBL_ENTRY alt_thunk_names1543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee557523barEv,_ZTv0_n16_N7ee557523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee557523barEv,_ZThn32_N7ee557523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee557523barEv,_ZThn24_N7ee557523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee557523barEv,_ZTv0_n24_N7ee557523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee557523barEv,_ZThn16_N7ee557523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee557523barEv,_ZThn8_N7ee557523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee55752 = { "ee55752", // class name
+ bases_ee55752, 4,
+ &(vtc_ee55752[0]), // expected_vtbl_contents
+ &(vtt_ee55752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee55752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee55752),33, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee55752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1543,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee65752 : dd5752 {
+ int e;
+ virtual void foo(); // _ZN7ee657523fooEv
+ virtual void bar(); // _ZN7ee657523barEv
+ ~ee65752(); // tgen
+ ee65752(); // tgen
+};
+//SIG(1 ee65752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee65752 ::foo(){vfunc_called(this, "_ZN7ee657523fooEv");}
+void ee65752 ::bar(){vfunc_called(this, "_ZN7ee657523barEv");}
+ee65752 ::~ee65752(){ note_dtor("ee65752", this);} // tgen
+ee65752 ::ee65752(){ note_ctor("ee65752", this);} // tgen
+
+static void Test_ee65752()
+{
+ extern Class_Descriptor cd_ee65752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee65752, buf);
+ ee65752 *dp, &lv = *(dp=new (buf) ee65752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee65752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee65752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee65752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee65752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(16,12), "ee65752");
+ check_base_class_offset(lv, (dd5752*), 0, "ee65752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee65752.e");
+ test_class_info(&lv, &cd_ee65752);
+ dp->~ee65752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee65752(Test_ee65752, "ee65752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee65752C1Ev();
+extern void _ZN7ee65752D1Ev();
+Name_Map name_map_ee65752[] = {
+ NSPAIR(_ZN7ee65752C1Ev),
+ NSPAIR(_ZN7ee65752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee65752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee65752[];
+extern void _ZN7ee657523barEv();
+extern void _ZN7ee657523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee657523fooEv,_ZTv0_n20_N7ee657523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee657523fooEv,_ZThn12_N7ee657523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee657523barEv,_ZTv0_n24_N7ee657523barEv)();
+extern void ABISELECT(_ZThn16_N7ee657523barEv,_ZThn12_N7ee657523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657523barEv,_ZTv0_n16_N7ee657523barEv)();
+extern void ABISELECT(_ZThn32_N7ee657523barEv,_ZThn20_N7ee657523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee657523fooEv,_ZTv0_n12_N7ee657523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee657523fooEv,_ZThn28_N7ee657523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee657523barEv,_ZTv0_n16_N7ee657523barEv)();
+extern void ABISELECT(_ZThn48_N7ee657523barEv,_ZThn28_N7ee657523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee65752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee65752[0]),
+ (VTBL_ENTRY)&_ZN7ee657523barEv,
+ (VTBL_ENTRY)&_ZN7ee657523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee65752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee657523fooEv,_ZTv0_n20_N7ee657523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee657523barEv,_ZTv0_n24_N7ee657523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee65752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657523barEv,_ZTv0_n16_N7ee657523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee65752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee657523fooEv,_ZTv0_n12_N7ee657523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee657523barEv,_ZTv0_n16_N7ee657523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee65752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee65752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee65752[] = {
+ ABISELECT(-16,-12),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee65752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee65752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee65752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee65752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee65752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee65752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee65752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee65752[] = {
+ {&(_ZTV7ee65752[5]), 5,26},
+ {&(_tg__ZTV6dd5752__7ee65752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee65752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee65752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee65752[4]), 4,6},
+ {&(_ZTV7ee65752[13]), 13,26},
+ {&(_ZTV7ee65752[19]), 19,26},
+ {&(_ZTV7ee65752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee65752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee65752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee65752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee65752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee65752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee65752[];
+extern VTBL_ENTRY _ZTV7ee65752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee65752[];
+static VTBL_ENTRY alt_thunk_names1544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn28_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn20_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn12_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee657523fooEv,_ZTv0_n12_N7ee657523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee657523fooEv,_ZThn28_N7ee657523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee657523barEv,_ZTv0_n16_N7ee657523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee657523barEv,_ZThn28_N7ee657523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee657523barEv,_ZThn20_N7ee657523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee657523barEv,_ZTv0_n24_N7ee657523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657523barEv,_ZThn12_N7ee657523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee657523fooEv,_ZTv0_n20_N7ee657523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee657523fooEv,_ZThn12_N7ee657523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee65752 = { "ee65752", // class name
+ bases_ee65752, 4,
+ &(vtc_ee65752[0]), // expected_vtbl_contents
+ &(vtt_ee65752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee65752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee65752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee65752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1544,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee75752 : virtual dd5752 {
+ int e;
+ virtual void foo(); // _ZN7ee757523fooEv
+ virtual void bar(); // _ZN7ee757523barEv
+ ~ee75752(); // tgen
+ ee75752(); // tgen
+};
+//SIG(1 ee75752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void ee75752 ::foo(){vfunc_called(this, "_ZN7ee757523fooEv");}
+void ee75752 ::bar(){vfunc_called(this, "_ZN7ee757523barEv");}
+ee75752 ::~ee75752(){ note_dtor("ee75752", this);} // tgen
+ee75752 ::ee75752(){ note_ctor("ee75752", this);} // tgen
+
+static void Test_ee75752()
+{
+ extern Class_Descriptor cd_ee75752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee75752, buf);
+ ee75752 *dp, &lv = *(dp=new (buf) ee75752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee75752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee75752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee75752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee75752");
+ check_base_class_offset(lv, (cc752*)(dd5752*), ABISELECT(32,16), "ee75752");
+ check_base_class_offset(lv, (dd5752*), ABISELECT(16,8), "ee75752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee75752.e");
+ test_class_info(&lv, &cd_ee75752);
+ dp->~ee75752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee75752(Test_ee75752, "ee75752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee75752C1Ev();
+extern void _ZN7ee75752D1Ev();
+Name_Map name_map_ee75752[] = {
+ NSPAIR(_ZN7ee75752C1Ev),
+ NSPAIR(_ZN7ee75752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd5752;
+extern VTBL_ENTRY _ZTI6dd5752[];
+extern VTBL_ENTRY _ZTV6dd5752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd5752[];
+static Base_Class bases_ee75752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd5752, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee75752[];
+extern void _ZN7ee757523fooEv();
+extern void _ZN7ee757523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee757523barEv,_ZTv0_n24_N7ee757523barEv)();
+extern void ABISELECT(_ZThn16_N7ee757523barEv,_ZThn8_N7ee757523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee757523fooEv,_ZTv0_n20_N7ee757523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee757523fooEv,_ZThn16_N7ee757523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee757523barEv,_ZTv0_n24_N7ee757523barEv)();
+extern void ABISELECT(_ZThn32_N7ee757523barEv,_ZThn16_N7ee757523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757523barEv,_ZTv0_n16_N7ee757523barEv)();
+extern void ABISELECT(_ZThn48_N7ee757523barEv,_ZThn24_N7ee757523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee757523fooEv,_ZTv0_n12_N7ee757523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee757523fooEv,_ZThn32_N7ee757523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee757523barEv,_ZTv0_n16_N7ee757523barEv)();
+extern void ABISELECT(_ZThn64_N7ee757523barEv,_ZThn32_N7ee757523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee75752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee75752[0]),
+ (VTBL_ENTRY)&_ZN7ee757523fooEv,
+ (VTBL_ENTRY)&_ZN7ee757523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee75752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757523barEv,_ZTv0_n24_N7ee757523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee75752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee757523fooEv,_ZTv0_n20_N7ee757523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee757523barEv,_ZTv0_n24_N7ee757523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee75752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757523barEv,_ZTv0_n16_N7ee757523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee75752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee757523fooEv,_ZTv0_n12_N7ee757523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee757523barEv,_ZTv0_n16_N7ee757523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee75752[];
+extern void _ZN6dd57523barEv();
+static VTBL_ENTRY _tg__ZTV6dd5752__7ee75752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN6dd57523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv)();
+extern void ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd5752__7ee75752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd5752__7ee75752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv)();
+extern void ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd5752__7ee75752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd5752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee75752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee75752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee75752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee75752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee75752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee75752[] = {
+ {&(_ZTV7ee75752[6]), 6,34},
+ {&(_ZTV7ee75752[14]), 14,34},
+ {&(_ZTV7ee75752[21]), 21,34},
+ {&(_ZTV7ee75752[27]), 27,34},
+ {&(_ZTV7ee75752[32]), 32,34},
+ {&(_tg__ZTV6dd5752__7ee75752[5]), 5,6},
+ {&(_tg__ZTV5cc752__6dd5752__7ee75752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd5752__7ee75752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd5752__7ee75752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee75752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee75752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee75752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee75752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee75752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee75752[];
+extern VTBL_ENTRY _ZTV7ee75752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee75752[];
+static VTBL_ENTRY alt_thunk_names1545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd57523barEv,_ZTv0_n16_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd57523barEv,_ZThn24_N6dd57523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd57523barEv,_ZThn16_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd57523barEv,_ZTv0_n24_N6dd57523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd57523barEv,_ZThn8_N6dd57523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee757523fooEv,_ZTv0_n12_N7ee757523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee757523fooEv,_ZThn32_N7ee757523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee757523barEv,_ZTv0_n16_N7ee757523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee757523barEv,_ZThn32_N7ee757523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee757523barEv,_ZThn24_N7ee757523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee757523fooEv,_ZTv0_n20_N7ee757523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757523fooEv,_ZThn16_N7ee757523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee757523barEv,_ZTv0_n24_N7ee757523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee757523barEv,_ZThn16_N7ee757523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee757523barEv,_ZThn8_N7ee757523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee75752 = { "ee75752", // class name
+ bases_ee75752, 4,
+ &(vtc_ee75752[0]), // expected_vtbl_contents
+ &(vtt_ee75752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee75752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee75752),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee75752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd6752 : cc752 {
+ int d;
+ virtual void bar(); // _ZN6dd67523barEv
+ virtual void foo(); // _ZN6dd67523fooEv
+ ~dd6752(); // tgen
+ dd6752(); // tgen
+};
+//SIG(-1 dd6752) C1{ BC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd6752 ::bar(){vfunc_called(this, "_ZN6dd67523barEv");}
+void dd6752 ::foo(){vfunc_called(this, "_ZN6dd67523fooEv");}
+dd6752 ::~dd6752(){ note_dtor("dd6752", this);} // tgen
+dd6752 ::dd6752(){ note_ctor("dd6752", this);} // tgen
+
+static void Test_dd6752()
+{
+ extern Class_Descriptor cd_dd6752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(7,8)];
+ init_test(&cd_dd6752, buf);
+ dd6752 *dp, &lv = *(dp=new (buf) dd6752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,28), "sizeof(dd6752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd6752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(32,20), "dd6752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(16,12), "dd6752");
+ check_base_class_offset(lv, (cc752*), 0, "dd6752");
+ check_field_offset(lv, d, ABISELECT(12,8), "dd6752.d");
+ test_class_info(&lv, &cd_dd6752);
+ dp->~dd6752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd6752(Test_dd6752, "dd6752", ABISELECT(48,28));
+
+#else // __cplusplus
+
+extern void _ZN6dd6752C1Ev();
+extern void _ZN6dd6752D1Ev();
+Name_Map name_map_dd6752[] = {
+ NSPAIR(_ZN6dd6752C1Ev),
+ NSPAIR(_ZN6dd6752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd6752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(32,20), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(16,12), //bcp->offset
+ 6, //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
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd6752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd6752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd6752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd6752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd6752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd6752[] = {
+ {&(_ZTV6dd6752[4]), 4,17},
+ {&(_tg__ZTV5cc752__6dd6752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd6752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd6752[4]), 4,6},
+ {&(_ZTV6dd6752[10]), 10,17},
+ {&(_ZTV6dd6752[15]), 15,17},
+ {&(_tg__ZTV4bb52__6dd6752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd6752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static VTBL_ENTRY alt_thunk_names1546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd6752 = { "dd6752", // class name
+ bases_dd6752, 3,
+ &(vtc_dd6752[0]), // expected_vtbl_contents
+ &(vtt_dd6752[0]), // expected_vtt_contents
+ ABISELECT(48,28), // object size
+ NSPAIRA(_ZTI6dd6752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV6dd6752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd6752),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1546,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee06752 : dd6752 {
+ int e;
+ ~ee06752(); // tgen
+ ee06752(); // tgen
+};
+//SIG(1 ee06752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee06752 ::~ee06752(){ note_dtor("ee06752", this);} // tgen
+ee06752 ::ee06752(){ note_ctor("ee06752", this);} // tgen
+
+static void Test_ee06752()
+{
+ extern Class_Descriptor cd_ee06752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee06752, buf);
+ ee06752 *dp, &lv = *(dp=new (buf) ee06752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee06752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee06752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee06752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(24,16), "ee06752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), 0, "ee06752");
+ check_base_class_offset(lv, (dd6752*), 0, "ee06752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee06752.e");
+ test_class_info(&lv, &cd_ee06752);
+ dp->~ee06752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee06752(Test_ee06752, "ee06752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee06752C1Ev();
+extern void _ZN7ee06752D1Ev();
+Name_Map name_map_ee06752[] = {
+ NSPAIR(_ZN7ee06752C1Ev),
+ NSPAIR(_ZN7ee06752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee06752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee06752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee06752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee06752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee06752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee06752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee06752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee06752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee06752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee06752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee06752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee06752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee06752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee06752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee06752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee06752[] = {
+ {&(_ZTV7ee06752[4]), 4,17},
+ {&(_tg__ZTV6dd6752__7ee06752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee06752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee06752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee06752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee06752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee06752[4]), 4,6},
+ {&(_ZTV7ee06752[10]), 10,17},
+ {&(_ZTV7ee06752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee06752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee06752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee06752[];
+extern VTBL_ENTRY _ZTV7ee06752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee06752[];
+static VTBL_ENTRY alt_thunk_names1547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee06752 = { "ee06752", // class name
+ bases_ee06752, 4,
+ &(vtc_ee06752[0]), // expected_vtbl_contents
+ &(vtt_ee06752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee06752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee06752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee06752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1547,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee16752 : virtual dd6752 {
+ int e;
+ ~ee16752(); // tgen
+ ee16752(); // tgen
+};
+//SIG(1 ee16752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee16752 ::~ee16752(){ note_dtor("ee16752", this);} // tgen
+ee16752 ::ee16752(){ note_ctor("ee16752", this);} // tgen
+
+static void Test_ee16752()
+{
+ extern Class_Descriptor cd_ee16752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee16752, buf);
+ ee16752 *dp, &lv = *(dp=new (buf) ee16752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee16752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee16752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee16752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(32,20), "ee16752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), ABISELECT(16,8), "ee16752");
+ check_base_class_offset(lv, (dd6752*), ABISELECT(16,8), "ee16752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee16752.e");
+ test_class_info(&lv, &cd_ee16752);
+ dp->~ee16752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee16752(Test_ee16752, "ee16752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee16752C1Ev();
+extern void _ZN7ee16752D1Ev();
+Name_Map name_map_ee16752[] = {
+ NSPAIR(_ZN7ee16752C1Ev),
+ NSPAIR(_ZN7ee16752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee16752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee16752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee16752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee16752[0]),
+ 0,
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee16752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee16752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee16752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee16752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee16752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee16752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee16752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee16752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee16752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee16752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee16752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee16752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee16752[] = {
+ {&(_ZTV7ee16752[5]), 5,24},
+ {&(_ZTV7ee16752[11]), 11,24},
+ {&(_ZTV7ee16752[17]), 17,24},
+ {&(_ZTV7ee16752[22]), 22,24},
+ {&(_tg__ZTV6dd6752__7ee16752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee16752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee16752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee16752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee16752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee16752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee16752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee16752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee16752[];
+extern VTBL_ENTRY _ZTV7ee16752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee16752[];
+static VTBL_ENTRY alt_thunk_names1548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee16752 = { "ee16752", // class name
+ bases_ee16752, 4,
+ &(vtc_ee16752[0]), // expected_vtbl_contents
+ &(vtt_ee16752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee16752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee16752),24, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee16752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1548,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee26752 : dd6752 {
+ int e;
+ virtual void foo(); // _ZN7ee267523fooEv
+ ~ee26752(); // tgen
+ ee26752(); // tgen
+};
+//SIG(1 ee26752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee26752 ::foo(){vfunc_called(this, "_ZN7ee267523fooEv");}
+ee26752 ::~ee26752(){ note_dtor("ee26752", this);} // tgen
+ee26752 ::ee26752(){ note_ctor("ee26752", this);} // tgen
+
+static void Test_ee26752()
+{
+ extern Class_Descriptor cd_ee26752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee26752, buf);
+ ee26752 *dp, &lv = *(dp=new (buf) ee26752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee26752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee26752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee26752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(24,16), "ee26752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), 0, "ee26752");
+ check_base_class_offset(lv, (dd6752*), 0, "ee26752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee26752.e");
+ test_class_info(&lv, &cd_ee26752);
+ dp->~ee26752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee26752(Test_ee26752, "ee26752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee26752C1Ev();
+extern void _ZN7ee26752D1Ev();
+Name_Map name_map_ee26752[] = {
+ NSPAIR(_ZN7ee26752C1Ev),
+ NSPAIR(_ZN7ee26752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee26752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee26752[];
+extern void _ZN7ee267523fooEv();
+extern void _ZN6dd67523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee267523fooEv,_ZTv0_n12_N7ee267523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee267523fooEv,_ZThn24_N7ee267523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee26752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee26752[0]),
+ (VTBL_ENTRY)&_ZN7ee267523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee26752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee26752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee267523fooEv,_ZTv0_n12_N7ee267523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee26752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee26752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee26752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee26752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee26752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee26752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee26752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee26752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee26752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee26752[] = {
+ {&(_ZTV7ee26752[4]), 4,17},
+ {&(_tg__ZTV6dd6752__7ee26752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee26752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee26752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee26752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee26752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee26752[4]), 4,6},
+ {&(_ZTV7ee26752[10]), 10,17},
+ {&(_ZTV7ee26752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee26752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee26752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee26752[];
+extern VTBL_ENTRY _ZTV7ee26752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee26752[];
+static VTBL_ENTRY alt_thunk_names1549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee267523fooEv,_ZTv0_n12_N7ee267523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee267523fooEv,_ZThn24_N7ee267523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee26752 = { "ee26752", // class name
+ bases_ee26752, 4,
+ &(vtc_ee26752[0]), // expected_vtbl_contents
+ &(vtt_ee26752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee26752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee26752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee26752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1549,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee36752 : virtual dd6752 {
+ int e;
+ virtual void foo(); // _ZN7ee367523fooEv
+ ~ee36752(); // tgen
+ ee36752(); // tgen
+};
+//SIG(1 ee36752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee36752 ::foo(){vfunc_called(this, "_ZN7ee367523fooEv");}
+ee36752 ::~ee36752(){ note_dtor("ee36752", this);} // tgen
+ee36752 ::ee36752(){ note_ctor("ee36752", this);} // tgen
+
+static void Test_ee36752()
+{
+ extern Class_Descriptor cd_ee36752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee36752, buf);
+ ee36752 *dp, &lv = *(dp=new (buf) ee36752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee36752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee36752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee36752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(32,20), "ee36752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), ABISELECT(16,8), "ee36752");
+ check_base_class_offset(lv, (dd6752*), ABISELECT(16,8), "ee36752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee36752.e");
+ test_class_info(&lv, &cd_ee36752);
+ dp->~ee36752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee36752(Test_ee36752, "ee36752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee36752C1Ev();
+extern void _ZN7ee36752D1Ev();
+Name_Map name_map_ee36752[] = {
+ NSPAIR(_ZN7ee36752C1Ev),
+ NSPAIR(_ZN7ee36752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee36752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee36752[];
+extern void _ZN7ee367523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee367523fooEv,_ZTv0_n20_N7ee367523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee367523fooEv,_ZThn8_N7ee367523fooEv)() __attribute__((weak));
+extern void _ZN6dd67523barEv();
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee367523fooEv,_ZTv0_n12_N7ee367523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee367523fooEv,_ZThn28_N7ee367523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee36752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee36752[0]),
+ (VTBL_ENTRY)&_ZN7ee367523fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee36752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee367523fooEv,_ZTv0_n20_N7ee367523fooEv),
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee36752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee36752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee367523fooEv,_ZTv0_n12_N7ee367523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee36752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee36752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee36752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee36752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee36752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee36752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee36752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee36752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee36752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee36752[] = {
+ {&(_ZTV7ee36752[5]), 5,25},
+ {&(_ZTV7ee36752[12]), 12,25},
+ {&(_ZTV7ee36752[18]), 18,25},
+ {&(_ZTV7ee36752[23]), 23,25},
+ {&(_tg__ZTV6dd6752__7ee36752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee36752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee36752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee36752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee36752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee36752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee36752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee36752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee36752[];
+extern VTBL_ENTRY _ZTV7ee36752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee36752[];
+static VTBL_ENTRY alt_thunk_names1550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee367523fooEv,_ZTv0_n12_N7ee367523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee367523fooEv,_ZThn28_N7ee367523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee367523fooEv,_ZTv0_n20_N7ee367523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee367523fooEv,_ZThn8_N7ee367523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee36752 = { "ee36752", // class name
+ bases_ee36752, 4,
+ &(vtc_ee36752[0]), // expected_vtbl_contents
+ &(vtt_ee36752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee36752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee36752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee36752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1550,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee46752 : dd6752 {
+ int e;
+ virtual void bar(); // _ZN7ee467523barEv
+ ~ee46752(); // tgen
+ ee46752(); // tgen
+};
+//SIG(1 ee46752) C1{ BC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee46752 ::bar(){vfunc_called(this, "_ZN7ee467523barEv");}
+ee46752 ::~ee46752(){ note_dtor("ee46752", this);} // tgen
+ee46752 ::ee46752(){ note_ctor("ee46752", this);} // tgen
+
+static void Test_ee46752()
+{
+ extern Class_Descriptor cd_ee46752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee46752, buf);
+ ee46752 *dp, &lv = *(dp=new (buf) ee46752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee46752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee46752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee46752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(24,16), "ee46752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), 0, "ee46752");
+ check_base_class_offset(lv, (dd6752*), 0, "ee46752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee46752.e");
+ test_class_info(&lv, &cd_ee46752);
+ dp->~ee46752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee46752(Test_ee46752, "ee46752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee46752C1Ev();
+extern void _ZN7ee46752D1Ev();
+Name_Map name_map_ee46752[] = {
+ NSPAIR(_ZN7ee46752C1Ev),
+ NSPAIR(_ZN7ee46752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee46752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee46752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN7ee467523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee467523barEv,_ZTv0_n16_N7ee467523barEv)();
+extern void ABISELECT(_ZThn24_N7ee467523barEv,_ZThn16_N7ee467523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee467523barEv,_ZTv0_n16_N7ee467523barEv)();
+extern void ABISELECT(_ZThn40_N7ee467523barEv,_ZThn24_N7ee467523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee46752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee46752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN7ee467523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee46752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467523barEv,_ZTv0_n16_N7ee467523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee46752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee467523barEv,_ZTv0_n16_N7ee467523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee46752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee46752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee46752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee46752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee46752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee46752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee46752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee46752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee46752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee46752[] = {
+ {&(_ZTV7ee46752[4]), 4,17},
+ {&(_tg__ZTV6dd6752__7ee46752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee46752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee46752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee46752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee46752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee46752[4]), 4,6},
+ {&(_ZTV7ee46752[10]), 10,17},
+ {&(_ZTV7ee46752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee46752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee46752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee46752[];
+extern VTBL_ENTRY _ZTV7ee46752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee46752[];
+static VTBL_ENTRY alt_thunk_names1551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee467523barEv,_ZTv0_n16_N7ee467523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee467523barEv,_ZThn24_N7ee467523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee467523barEv,_ZThn16_N7ee467523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee46752 = { "ee46752", // class name
+ bases_ee46752, 4,
+ &(vtc_ee46752[0]), // expected_vtbl_contents
+ &(vtt_ee46752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee46752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee46752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee46752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1551,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee56752 : virtual dd6752 {
+ int e;
+ virtual void bar(); // _ZN7ee567523barEv
+ ~ee56752(); // tgen
+ ee56752(); // tgen
+};
+//SIG(1 ee56752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee56752 ::bar(){vfunc_called(this, "_ZN7ee567523barEv");}
+ee56752 ::~ee56752(){ note_dtor("ee56752", this);} // tgen
+ee56752 ::ee56752(){ note_ctor("ee56752", this);} // tgen
+
+static void Test_ee56752()
+{
+ extern Class_Descriptor cd_ee56752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee56752, buf);
+ ee56752 *dp, &lv = *(dp=new (buf) ee56752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee56752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee56752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee56752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(32,20), "ee56752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), ABISELECT(16,8), "ee56752");
+ check_base_class_offset(lv, (dd6752*), ABISELECT(16,8), "ee56752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee56752.e");
+ test_class_info(&lv, &cd_ee56752);
+ dp->~ee56752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee56752(Test_ee56752, "ee56752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee56752C1Ev();
+extern void _ZN7ee56752D1Ev();
+Name_Map name_map_ee56752[] = {
+ NSPAIR(_ZN7ee56752C1Ev),
+ NSPAIR(_ZN7ee56752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee56752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 14, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee56752[];
+extern void _ZN7ee567523barEv();
+extern void _ZN6dd67523fooEv();
+extern void ABISELECT(_ZTv0_n48_N7ee567523barEv,_ZTv0_n24_N7ee567523barEv)();
+extern void ABISELECT(_ZThn16_N7ee567523barEv,_ZThn8_N7ee567523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567523barEv,_ZTv0_n16_N7ee567523barEv)();
+extern void ABISELECT(_ZThn32_N7ee567523barEv,_ZThn20_N7ee567523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee567523barEv,_ZTv0_n16_N7ee567523barEv)();
+extern void ABISELECT(_ZThn48_N7ee567523barEv,_ZThn28_N7ee567523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee56752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee56752[0]),
+ (VTBL_ENTRY)&_ZN7ee567523barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee56752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee567523barEv,_ZTv0_n24_N7ee567523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee56752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567523barEv,_ZTv0_n16_N7ee567523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-32,-20),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee56752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee567523barEv,_ZTv0_n16_N7ee567523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee56752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee56752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee56752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee56752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee56752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee56752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee56752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee56752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee56752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee56752[] = {
+ {&(_ZTV7ee56752[5]), 5,25},
+ {&(_ZTV7ee56752[12]), 12,25},
+ {&(_ZTV7ee56752[18]), 18,25},
+ {&(_ZTV7ee56752[23]), 23,25},
+ {&(_tg__ZTV6dd6752__7ee56752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee56752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee56752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee56752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee56752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee56752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee56752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee56752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee56752[];
+extern VTBL_ENTRY _ZTV7ee56752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee56752[];
+static VTBL_ENTRY alt_thunk_names1552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee567523barEv,_ZTv0_n16_N7ee567523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee567523barEv,_ZThn28_N7ee567523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee567523barEv,_ZThn20_N7ee567523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee567523barEv,_ZTv0_n24_N7ee567523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee567523barEv,_ZThn8_N7ee567523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee56752 = { "ee56752", // class name
+ bases_ee56752, 4,
+ &(vtc_ee56752[0]), // expected_vtbl_contents
+ &(vtt_ee56752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee56752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee56752),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee56752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1552,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee66752 : dd6752 {
+ int e;
+ virtual void foo(); // _ZN7ee667523fooEv
+ virtual void bar(); // _ZN7ee667523barEv
+ ~ee66752(); // tgen
+ ee66752(); // tgen
+};
+//SIG(1 ee66752) C1{ BC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee66752 ::foo(){vfunc_called(this, "_ZN7ee667523fooEv");}
+void ee66752 ::bar(){vfunc_called(this, "_ZN7ee667523barEv");}
+ee66752 ::~ee66752(){ note_dtor("ee66752", this);} // tgen
+ee66752 ::ee66752(){ note_ctor("ee66752", this);} // tgen
+
+static void Test_ee66752()
+{
+ extern Class_Descriptor cd_ee66752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(8,9)];
+ init_test(&cd_ee66752, buf);
+ ee66752 *dp, &lv = *(dp=new (buf) ee66752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(56,32), "sizeof(ee66752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee66752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(40,24), "ee66752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(24,16), "ee66752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), 0, "ee66752");
+ check_base_class_offset(lv, (dd6752*), 0, "ee66752");
+ check_field_offset(lv, e, ABISELECT(16,12), "ee66752.e");
+ test_class_info(&lv, &cd_ee66752);
+ dp->~ee66752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee66752(Test_ee66752, "ee66752", ABISELECT(56,32));
+
+#else // __cplusplus
+
+extern void _ZN7ee66752C1Ev();
+extern void _ZN7ee66752D1Ev();
+Name_Map name_map_ee66752[] = {
+ NSPAIR(_ZN7ee66752C1Ev),
+ NSPAIR(_ZN7ee66752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee66752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(40,24), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 9, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(24,16), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 8, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 3, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, 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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee66752[];
+extern void _ZN7ee667523fooEv();
+extern void _ZN7ee667523barEv();
+extern void ABISELECT(_ZTv0_n32_N7ee667523barEv,_ZTv0_n16_N7ee667523barEv)();
+extern void ABISELECT(_ZThn24_N7ee667523barEv,_ZThn16_N7ee667523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee667523fooEv,_ZTv0_n12_N7ee667523fooEv)();
+extern void ABISELECT(_ZThn40_N7ee667523fooEv,_ZThn24_N7ee667523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee667523barEv,_ZTv0_n16_N7ee667523barEv)();
+extern void ABISELECT(_ZThn40_N7ee667523barEv,_ZThn24_N7ee667523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee66752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee66752[0]),
+ (VTBL_ENTRY)&_ZN7ee667523fooEv,
+ (VTBL_ENTRY)&_ZN7ee667523barEv,
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI7ee66752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667523barEv,_ZTv0_n16_N7ee667523barEv),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI7ee66752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee667523fooEv,_ZTv0_n12_N7ee667523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee667523barEv,_ZTv0_n16_N7ee667523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee66752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee66752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee66752[] = {
+ ABISELECT(40,24),
+ ABISELECT(24,16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee66752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee66752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee66752[] = {
+ ABISELECT(-24,-16),
+ ABISELECT(16,8),
+ ABISELECT(-24,-16),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee66752[] = {
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ ABISELECT(-40,-24),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee66752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee66752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee66752[] = {
+ {&(_ZTV7ee66752[4]), 4,17},
+ {&(_tg__ZTV6dd6752__7ee66752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee66752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee66752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee66752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee66752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee66752[4]), 4,6},
+ {&(_ZTV7ee66752[10]), 10,17},
+ {&(_ZTV7ee66752[15]), 15,17},
+ {&(_tg__ZTV4bb52__7ee66752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee66752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee66752[];
+extern VTBL_ENTRY _ZTV7ee66752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee66752[];
+static VTBL_ENTRY alt_thunk_names1553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523fooEv,_ZThn24_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N6dd67523barEv,_ZThn24_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N6dd67523barEv,_ZThn16_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523fooEv,_ZThn24_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N5cc7523barEv,_ZThn24_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee667523fooEv,_ZTv0_n12_N7ee667523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee667523fooEv,_ZThn24_N7ee667523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee667523barEv,_ZTv0_n16_N7ee667523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn40_N7ee667523barEv,_ZThn24_N7ee667523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn24_N7ee667523barEv,_ZThn16_N7ee667523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee66752 = { "ee66752", // class name
+ bases_ee66752, 4,
+ &(vtc_ee66752[0]), // expected_vtbl_contents
+ &(vtt_ee66752[0]), // expected_vtt_contents
+ ABISELECT(56,32), // object size
+ NSPAIRA(_ZTI7ee66752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee66752),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee66752),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1553,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee76752 : virtual dd6752 {
+ int e;
+ virtual void foo(); // _ZN7ee767523fooEv
+ virtual void bar(); // _ZN7ee767523barEv
+ ~ee76752(); // tgen
+ ee76752(); // tgen
+};
+//SIG(1 ee76752) C1{ VBC2{ BC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee76752 ::foo(){vfunc_called(this, "_ZN7ee767523fooEv");}
+void ee76752 ::bar(){vfunc_called(this, "_ZN7ee767523barEv");}
+ee76752 ::~ee76752(){ note_dtor("ee76752", this);} // tgen
+ee76752 ::ee76752(){ note_ctor("ee76752", this);} // tgen
+
+static void Test_ee76752()
+{
+ extern Class_Descriptor cd_ee76752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee76752, buf);
+ ee76752 *dp, &lv = *(dp=new (buf) ee76752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee76752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee76752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee76752");
+ check_base_class_offset(lv, (bb52*)(cc752*)(dd6752*), ABISELECT(32,20), "ee76752");
+ check_base_class_offset(lv, (cc752*)(dd6752*), ABISELECT(16,8), "ee76752");
+ check_base_class_offset(lv, (dd6752*), ABISELECT(16,8), "ee76752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee76752.e");
+ test_class_info(&lv, &cd_ee76752);
+ dp->~ee76752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee76752(Test_ee76752, "ee76752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee76752C1Ev();
+extern void _ZN7ee76752D1Ev();
+Name_Map name_map_ee76752[] = {
+ NSPAIR(_ZN7ee76752C1Ev),
+ NSPAIR(_ZN7ee76752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd6752;
+extern VTBL_ENTRY _ZTI6dd6752[];
+extern VTBL_ENTRY _ZTV6dd6752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd6752[];
+static Base_Class bases_ee76752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 0, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 0},
+ {&cd_dd6752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 5, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee76752[];
+extern void _ZN7ee767523fooEv();
+extern void _ZN7ee767523barEv();
+extern void ABISELECT(_ZTv0_n40_N7ee767523fooEv,_ZTv0_n20_N7ee767523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee767523fooEv,_ZThn8_N7ee767523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee767523barEv,_ZTv0_n24_N7ee767523barEv)();
+extern void ABISELECT(_ZThn16_N7ee767523barEv,_ZThn8_N7ee767523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767523barEv,_ZTv0_n16_N7ee767523barEv)();
+extern void ABISELECT(_ZThn32_N7ee767523barEv,_ZThn20_N7ee767523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee767523fooEv,_ZTv0_n12_N7ee767523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee767523fooEv,_ZThn28_N7ee767523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee767523barEv,_ZTv0_n16_N7ee767523barEv)();
+extern void ABISELECT(_ZThn48_N7ee767523barEv,_ZThn28_N7ee767523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee76752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee76752[0]),
+ (VTBL_ENTRY)&_ZN7ee767523fooEv,
+ (VTBL_ENTRY)&_ZN7ee767523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee76752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee767523fooEv,_ZTv0_n20_N7ee767523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee767523barEv,_ZTv0_n24_N7ee767523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee76752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767523barEv,_ZTv0_n16_N7ee767523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee76752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee767523fooEv,_ZTv0_n12_N7ee767523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee767523barEv,_ZTv0_n16_N7ee767523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee76752[];
+extern void _ZN6dd67523fooEv();
+extern void _ZN6dd67523barEv();
+static VTBL_ENTRY _tg__ZTV6dd6752__7ee76752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&_ZN6dd67523fooEv,
+ (VTBL_ENTRY)&_ZN6dd67523barEv,
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc7526dd6752__7ee76752[] = {
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc7526dd6752__7ee76752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc7526dd6752__7ee76752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd6752__7ee76752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv)();
+extern void ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv)();
+extern void ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd6752__7ee76752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd6752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee76752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee76752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee76752[] = {
+ {&(_ZTV7ee76752[5]), 5,26},
+ {&(_ZTV7ee76752[13]), 13,26},
+ {&(_ZTV7ee76752[19]), 19,26},
+ {&(_ZTV7ee76752[24]), 24,26},
+ {&(_tg__ZTV6dd6752__7ee76752[4]), 4,6},
+ {&(_tg__ZTV5cc7526dd6752__7ee76752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc7526dd6752__7ee76752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc7526dd6752__7ee76752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd6752__7ee76752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd6752__7ee76752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee76752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee76752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee76752[];
+extern VTBL_ENTRY _ZTV7ee76752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee76752[];
+static VTBL_ENTRY alt_thunk_names1554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd67523fooEv,_ZTv0_n12_N6dd67523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523fooEv,_ZThn20_N6dd67523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd67523barEv,_ZTv0_n16_N6dd67523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd67523barEv,_ZThn20_N6dd67523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd67523barEv,_ZThn12_N6dd67523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn20_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn20_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn12_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee767523fooEv,_ZTv0_n12_N7ee767523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee767523fooEv,_ZThn28_N7ee767523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee767523barEv,_ZTv0_n16_N7ee767523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee767523barEv,_ZThn28_N7ee767523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee767523barEv,_ZThn20_N7ee767523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee767523barEv,_ZTv0_n24_N7ee767523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767523barEv,_ZThn8_N7ee767523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee767523fooEv,_ZTv0_n20_N7ee767523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee767523fooEv,_ZThn8_N7ee767523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee76752 = { "ee76752", // class name
+ bases_ee76752, 4,
+ &(vtc_ee76752[0]), // expected_vtbl_contents
+ &(vtt_ee76752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee76752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee76752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee76752),12, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct dd7752 : virtual cc752 {
+ int d;
+ virtual void bar(); // _ZN6dd77523barEv
+ virtual void foo(); // _ZN6dd77523fooEv
+ ~dd7752(); // tgen
+ dd7752(); // tgen
+};
+//SIG(-1 dd7752) C1{ VBC2{ VBC3{ VBC4{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void dd7752 ::bar(){vfunc_called(this, "_ZN6dd77523barEv");}
+void dd7752 ::foo(){vfunc_called(this, "_ZN6dd77523fooEv");}
+dd7752 ::~dd7752(){ note_dtor("dd7752", this);} // tgen
+dd7752 ::dd7752(){ note_ctor("dd7752", this);} // tgen
+
+static void Test_dd7752()
+{
+ extern Class_Descriptor cd_dd7752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_dd7752, buf);
+ dd7752 *dp, &lv = *(dp=new (buf) dd7752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(dd7752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(dd7752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,24), "dd7752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,16), "dd7752");
+ check_base_class_offset(lv, (cc752*), ABISELECT(16,8), "dd7752");
+ check_field_offset(lv, d, ABISELECT(8,4), "dd7752.d");
+ test_class_info(&lv, &cd_dd7752);
+ dp->~dd7752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vdd7752(Test_dd7752, "dd7752", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6dd7752C1Ev();
+extern void _ZN6dd7752D1Ev();
+Name_Map name_map_dd7752[] = {
+ NSPAIR(_ZN6dd7752C1Ev),
+ NSPAIR(_ZN6dd7752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+static Base_Class bases_dd7752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //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 _ZTI6dd7752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_dd7752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__6dd7752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__6dd7752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__6dd7752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_dd7752[] = {
+ {&(_ZTV6dd7752[5]), 5,26},
+ {&(_ZTV6dd7752[13]), 13,26},
+ {&(_ZTV6dd7752[19]), 19,26},
+ {&(_ZTV6dd7752[24]), 24,26},
+ {&(_tg__ZTV5cc752__6dd7752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__6dd7752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__6dd7752[4]), 4,6},
+ {&(_tg__ZTV4bb52__6dd7752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__6dd7752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static VTBL_ENTRY alt_thunk_names1555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_dd7752 = { "dd7752", // class name
+ bases_dd7752, 3,
+ &(vtc_dd7752[0]), // expected_vtbl_contents
+ &(vtt_dd7752[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6dd7752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV6dd7752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6dd7752),9, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee07752 : dd7752 {
+ int e;
+ ~ee07752(); // tgen
+ ee07752(); // tgen
+};
+//SIG(1 ee07752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee07752 ::~ee07752(){ note_dtor("ee07752", this);} // tgen
+ee07752 ::ee07752(){ note_ctor("ee07752", this);} // tgen
+
+static void Test_ee07752()
+{
+ extern Class_Descriptor cd_ee07752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee07752, buf);
+ ee07752 *dp, &lv = *(dp=new (buf) ee07752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee07752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee07752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee07752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee07752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(16,12), "ee07752");
+ check_base_class_offset(lv, (dd7752*), 0, "ee07752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee07752.e");
+ test_class_info(&lv, &cd_ee07752);
+ dp->~ee07752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee07752(Test_ee07752, "ee07752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee07752C1Ev();
+extern void _ZN7ee07752D1Ev();
+Name_Map name_map_ee07752[] = {
+ NSPAIR(_ZN7ee07752C1Ev),
+ NSPAIR(_ZN7ee07752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee07752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee07752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee07752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee07752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee07752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee07752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee07752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee07752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee07752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee07752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee07752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee07752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee07752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee07752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee07752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee07752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee07752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee07752[] = {
+ {&(_ZTV7ee07752[5]), 5,26},
+ {&(_tg__ZTV6dd7752__7ee07752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee07752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee07752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee07752[4]), 4,6},
+ {&(_ZTV7ee07752[13]), 13,26},
+ {&(_ZTV7ee07752[19]), 19,26},
+ {&(_ZTV7ee07752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee07752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee07752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee07752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee07752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee07752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee07752[];
+extern VTBL_ENTRY _ZTV7ee07752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee07752[];
+static VTBL_ENTRY alt_thunk_names1556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee07752 = { "ee07752", // class name
+ bases_ee07752, 4,
+ &(vtc_ee07752[0]), // expected_vtbl_contents
+ &(vtt_ee07752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee07752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee07752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee07752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee17752 : virtual dd7752 {
+ int e;
+ ~ee17752(); // tgen
+ ee17752(); // tgen
+};
+//SIG(1 ee17752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} Fi}
+
+
+ee17752 ::~ee17752(){ note_dtor("ee17752", this);} // tgen
+ee17752 ::ee17752(){ note_ctor("ee17752", this);} // tgen
+
+static void Test_ee17752()
+{
+ extern Class_Descriptor cd_ee17752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee17752, buf);
+ ee17752 *dp, &lv = *(dp=new (buf) ee17752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee17752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee17752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee17752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee17752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(32,16), "ee17752");
+ check_base_class_offset(lv, (dd7752*), ABISELECT(16,8), "ee17752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee17752.e");
+ test_class_info(&lv, &cd_ee17752);
+ dp->~ee17752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee17752(Test_ee17752, "ee17752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee17752C1Ev();
+extern void _ZN7ee17752D1Ev();
+Name_Map name_map_ee17752[] = {
+ NSPAIR(_ZN7ee17752C1Ev),
+ NSPAIR(_ZN7ee17752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee17752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, ABISELECT(16,8), //bcp->offset
+ 6, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee17752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee17752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee17752[0]),
+ 0,
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee17752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee17752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee17752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee17752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee17752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee17752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee17752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee17752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee17752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee17752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee17752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee17752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee17752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee17752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee17752[] = {
+ {&(_ZTV7ee17752[6]), 6,34},
+ {&(_ZTV7ee17752[13]), 13,34},
+ {&(_ZTV7ee17752[21]), 21,34},
+ {&(_ZTV7ee17752[27]), 27,34},
+ {&(_ZTV7ee17752[32]), 32,34},
+ {&(_tg__ZTV6dd7752__7ee17752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee17752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee17752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee17752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee17752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee17752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee17752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee17752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee17752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee17752[];
+extern VTBL_ENTRY _ZTV7ee17752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee17752[];
+static VTBL_ENTRY alt_thunk_names1557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee17752 = { "ee17752", // class name
+ bases_ee17752, 4,
+ &(vtc_ee17752[0]), // expected_vtbl_contents
+ &(vtt_ee17752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee17752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee17752),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee17752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1557,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee27752 : dd7752 {
+ int e;
+ virtual void foo(); // _ZN7ee277523fooEv
+ ~ee27752(); // tgen
+ ee27752(); // tgen
+};
+//SIG(1 ee27752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee27752 ::foo(){vfunc_called(this, "_ZN7ee277523fooEv");}
+ee27752 ::~ee27752(){ note_dtor("ee27752", this);} // tgen
+ee27752 ::ee27752(){ note_ctor("ee27752", this);} // tgen
+
+static void Test_ee27752()
+{
+ extern Class_Descriptor cd_ee27752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee27752, buf);
+ ee27752 *dp, &lv = *(dp=new (buf) ee27752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee27752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee27752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee27752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee27752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(16,12), "ee27752");
+ check_base_class_offset(lv, (dd7752*), 0, "ee27752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee27752.e");
+ test_class_info(&lv, &cd_ee27752);
+ dp->~ee27752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee27752(Test_ee27752, "ee27752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee27752C1Ev();
+extern void _ZN7ee27752D1Ev();
+Name_Map name_map_ee27752[] = {
+ NSPAIR(_ZN7ee27752C1Ev),
+ NSPAIR(_ZN7ee27752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee27752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee27752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN7ee277523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee277523fooEv,_ZTv0_n20_N7ee277523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee277523fooEv,_ZThn12_N7ee277523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee277523fooEv,_ZTv0_n12_N7ee277523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee277523fooEv,_ZThn28_N7ee277523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee27752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee27752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN7ee277523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee27752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee277523fooEv,_ZTv0_n20_N7ee277523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee27752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee27752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee277523fooEv,_ZTv0_n12_N7ee277523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee27752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee27752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee27752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee27752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee27752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee27752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee27752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee27752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee27752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee27752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee27752[] = {
+ {&(_ZTV7ee27752[5]), 5,26},
+ {&(_tg__ZTV6dd7752__7ee27752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee27752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee27752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee27752[4]), 4,6},
+ {&(_ZTV7ee27752[13]), 13,26},
+ {&(_ZTV7ee27752[19]), 19,26},
+ {&(_ZTV7ee27752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee27752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee27752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee27752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee27752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee27752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee27752[];
+extern VTBL_ENTRY _ZTV7ee27752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee27752[];
+static VTBL_ENTRY alt_thunk_names1558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee277523fooEv,_ZTv0_n12_N7ee277523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee277523fooEv,_ZThn28_N7ee277523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee277523fooEv,_ZTv0_n20_N7ee277523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee277523fooEv,_ZThn12_N7ee277523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee27752 = { "ee27752", // class name
+ bases_ee27752, 4,
+ &(vtc_ee27752[0]), // expected_vtbl_contents
+ &(vtt_ee27752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee27752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee27752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee27752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1558,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee37752 : virtual dd7752 {
+ int e;
+ virtual void foo(); // _ZN7ee377523fooEv
+ ~ee37752(); // tgen
+ ee37752(); // tgen
+};
+//SIG(1 ee37752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void ee37752 ::foo(){vfunc_called(this, "_ZN7ee377523fooEv");}
+ee37752 ::~ee37752(){ note_dtor("ee37752", this);} // tgen
+ee37752 ::ee37752(){ note_ctor("ee37752", this);} // tgen
+
+static void Test_ee37752()
+{
+ extern Class_Descriptor cd_ee37752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee37752, buf);
+ ee37752 *dp, &lv = *(dp=new (buf) ee37752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee37752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee37752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee37752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee37752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(32,16), "ee37752");
+ check_base_class_offset(lv, (dd7752*), ABISELECT(16,8), "ee37752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee37752.e");
+ test_class_info(&lv, &cd_ee37752);
+ dp->~ee37752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee37752(Test_ee37752, "ee37752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee37752C1Ev();
+extern void _ZN7ee37752D1Ev();
+Name_Map name_map_ee37752[] = {
+ NSPAIR(_ZN7ee37752C1Ev),
+ NSPAIR(_ZN7ee37752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee37752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee37752[];
+extern void _ZN7ee377523fooEv();
+extern void _ZN6dd77523barEv();
+extern void ABISELECT(_ZTv0_n56_N7ee377523fooEv,_ZTv0_n28_N7ee377523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee377523fooEv,_ZThn8_N7ee377523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee377523fooEv,_ZTv0_n20_N7ee377523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee377523fooEv,_ZThn16_N7ee377523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee377523fooEv,_ZTv0_n12_N7ee377523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee377523fooEv,_ZThn32_N7ee377523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee37752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee37752[0]),
+ (VTBL_ENTRY)&_ZN7ee377523fooEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee37752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee377523fooEv,_ZTv0_n28_N7ee377523fooEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee37752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee377523fooEv,_ZTv0_n20_N7ee377523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee37752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee37752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee377523fooEv,_ZTv0_n12_N7ee377523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee37752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee37752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee37752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee37752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee37752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee37752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee37752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee37752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee37752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee37752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee37752[] = {
+ {&(_ZTV7ee37752[6]), 6,35},
+ {&(_ZTV7ee37752[14]), 14,35},
+ {&(_ZTV7ee37752[22]), 22,35},
+ {&(_ZTV7ee37752[28]), 28,35},
+ {&(_ZTV7ee37752[33]), 33,35},
+ {&(_tg__ZTV6dd7752__7ee37752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee37752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee37752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee37752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee37752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee37752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee37752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee37752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee37752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee37752[];
+extern VTBL_ENTRY _ZTV7ee37752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee37752[];
+static VTBL_ENTRY alt_thunk_names1559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee377523fooEv,_ZTv0_n12_N7ee377523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee377523fooEv,_ZThn32_N7ee377523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee377523fooEv,_ZTv0_n20_N7ee377523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee377523fooEv,_ZThn16_N7ee377523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee377523fooEv,_ZTv0_n28_N7ee377523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee377523fooEv,_ZThn8_N7ee377523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee37752 = { "ee37752", // class name
+ bases_ee37752, 4,
+ &(vtc_ee37752[0]), // expected_vtbl_contents
+ &(vtt_ee37752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee37752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee37752),35, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee37752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1559,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee47752 : dd7752 {
+ int e;
+ virtual void bar(); // _ZN7ee477523barEv
+ ~ee47752(); // tgen
+ ee47752(); // tgen
+};
+//SIG(1 ee47752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee47752 ::bar(){vfunc_called(this, "_ZN7ee477523barEv");}
+ee47752 ::~ee47752(){ note_dtor("ee47752", this);} // tgen
+ee47752 ::ee47752(){ note_ctor("ee47752", this);} // tgen
+
+static void Test_ee47752()
+{
+ extern Class_Descriptor cd_ee47752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee47752, buf);
+ ee47752 *dp, &lv = *(dp=new (buf) ee47752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee47752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee47752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee47752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee47752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(16,12), "ee47752");
+ check_base_class_offset(lv, (dd7752*), 0, "ee47752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee47752.e");
+ test_class_info(&lv, &cd_ee47752);
+ dp->~ee47752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee47752(Test_ee47752, "ee47752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee47752C1Ev();
+extern void _ZN7ee47752D1Ev();
+Name_Map name_map_ee47752[] = {
+ NSPAIR(_ZN7ee47752C1Ev),
+ NSPAIR(_ZN7ee47752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee47752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee47752[];
+extern void _ZN7ee477523barEv();
+extern void _ZN6dd77523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee477523barEv,_ZTv0_n24_N7ee477523barEv)();
+extern void ABISELECT(_ZThn16_N7ee477523barEv,_ZThn12_N7ee477523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477523barEv,_ZTv0_n16_N7ee477523barEv)();
+extern void ABISELECT(_ZThn32_N7ee477523barEv,_ZThn20_N7ee477523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee477523barEv,_ZTv0_n16_N7ee477523barEv)();
+extern void ABISELECT(_ZThn48_N7ee477523barEv,_ZThn28_N7ee477523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee47752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee47752[0]),
+ (VTBL_ENTRY)&_ZN7ee477523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee47752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee477523barEv,_ZTv0_n24_N7ee477523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee47752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477523barEv,_ZTv0_n16_N7ee477523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee47752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee477523barEv,_ZTv0_n16_N7ee477523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee47752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee47752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee47752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee47752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee47752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee47752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee47752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee47752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee47752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee47752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee47752[] = {
+ {&(_ZTV7ee47752[5]), 5,26},
+ {&(_tg__ZTV6dd7752__7ee47752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee47752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee47752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee47752[4]), 4,6},
+ {&(_ZTV7ee47752[13]), 13,26},
+ {&(_ZTV7ee47752[19]), 19,26},
+ {&(_ZTV7ee47752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee47752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee47752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee47752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee47752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee47752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee47752[];
+extern VTBL_ENTRY _ZTV7ee47752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee47752[];
+static VTBL_ENTRY alt_thunk_names1560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee477523barEv,_ZTv0_n16_N7ee477523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee477523barEv,_ZThn28_N7ee477523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee477523barEv,_ZThn20_N7ee477523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee477523barEv,_ZTv0_n24_N7ee477523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee477523barEv,_ZThn12_N7ee477523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee47752 = { "ee47752", // class name
+ bases_ee47752, 4,
+ &(vtc_ee47752[0]), // expected_vtbl_contents
+ &(vtt_ee47752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee47752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee47752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee47752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1560,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee57752 : virtual dd7752 {
+ int e;
+ virtual void bar(); // _ZN7ee577523barEv
+ ~ee57752(); // tgen
+ ee57752(); // tgen
+};
+//SIG(1 ee57752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v2 v1 Fi} v1 v2 Fi} v1 Fi}
+
+
+void ee57752 ::bar(){vfunc_called(this, "_ZN7ee577523barEv");}
+ee57752 ::~ee57752(){ note_dtor("ee57752", this);} // tgen
+ee57752 ::ee57752(){ note_ctor("ee57752", this);} // tgen
+
+static void Test_ee57752()
+{
+ extern Class_Descriptor cd_ee57752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee57752, buf);
+ ee57752 *dp, &lv = *(dp=new (buf) ee57752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee57752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee57752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee57752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee57752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(32,16), "ee57752");
+ check_base_class_offset(lv, (dd7752*), ABISELECT(16,8), "ee57752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee57752.e");
+ test_class_info(&lv, &cd_ee57752);
+ dp->~ee57752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee57752(Test_ee57752, "ee57752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee57752C1Ev();
+extern void _ZN7ee57752D1Ev();
+Name_Map name_map_ee57752[] = {
+ NSPAIR(_ZN7ee57752C1Ev),
+ NSPAIR(_ZN7ee57752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee57752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, ABISELECT(16,8), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee57752[];
+extern void _ZN7ee577523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee577523barEv,_ZTv0_n24_N7ee577523barEv)();
+extern void ABISELECT(_ZThn16_N7ee577523barEv,_ZThn8_N7ee577523barEv)() __attribute__((weak));
+extern void _ZN6dd77523fooEv();
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee577523barEv,_ZTv0_n24_N7ee577523barEv)();
+extern void ABISELECT(_ZThn32_N7ee577523barEv,_ZThn16_N7ee577523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577523barEv,_ZTv0_n16_N7ee577523barEv)();
+extern void ABISELECT(_ZThn48_N7ee577523barEv,_ZThn24_N7ee577523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee577523barEv,_ZTv0_n16_N7ee577523barEv)();
+extern void ABISELECT(_ZThn64_N7ee577523barEv,_ZThn32_N7ee577523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee57752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee57752[0]),
+ (VTBL_ENTRY)&_ZN7ee577523barEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee57752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577523barEv,_ZTv0_n24_N7ee577523barEv),
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee57752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee577523barEv,_ZTv0_n24_N7ee577523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee57752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577523barEv,_ZTv0_n16_N7ee577523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-48,-24),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee57752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee577523barEv,_ZTv0_n16_N7ee577523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee57752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee57752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee57752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee57752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee57752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee57752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee57752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee57752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee57752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee57752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee57752[] = {
+ {&(_ZTV7ee57752[6]), 6,35},
+ {&(_ZTV7ee57752[14]), 14,35},
+ {&(_ZTV7ee57752[22]), 22,35},
+ {&(_ZTV7ee57752[28]), 28,35},
+ {&(_ZTV7ee57752[33]), 33,35},
+ {&(_tg__ZTV6dd7752__7ee57752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee57752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee57752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee57752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee57752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee57752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee57752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee57752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee57752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee57752[];
+extern VTBL_ENTRY _ZTV7ee57752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee57752[];
+static VTBL_ENTRY alt_thunk_names1561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee577523barEv,_ZTv0_n16_N7ee577523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee577523barEv,_ZThn32_N7ee577523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee577523barEv,_ZThn24_N7ee577523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee577523barEv,_ZTv0_n24_N7ee577523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee577523barEv,_ZThn16_N7ee577523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee577523barEv,_ZThn8_N7ee577523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee57752 = { "ee57752", // class name
+ bases_ee57752, 4,
+ &(vtc_ee57752[0]), // expected_vtbl_contents
+ &(vtt_ee57752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee57752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee57752),35, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee57752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1561,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee67752 : dd7752 {
+ int e;
+ virtual void foo(); // _ZN7ee677523fooEv
+ virtual void bar(); // _ZN7ee677523barEv
+ ~ee67752(); // tgen
+ ee67752(); // tgen
+};
+//SIG(1 ee67752) C1{ BC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee67752 ::foo(){vfunc_called(this, "_ZN7ee677523fooEv");}
+void ee67752 ::bar(){vfunc_called(this, "_ZN7ee677523barEv");}
+ee67752 ::~ee67752(){ note_dtor("ee67752", this);} // tgen
+ee67752 ::ee67752(){ note_ctor("ee67752", this);} // tgen
+
+static void Test_ee67752()
+{
+ extern Class_Descriptor cd_ee67752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[ABISELECT(9,10)];
+ init_test(&cd_ee67752, buf);
+ ee67752 *dp, &lv = *(dp=new (buf) ee67752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,36), "sizeof(ee67752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee67752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(48,28), "ee67752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(32,20), "ee67752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(16,12), "ee67752");
+ check_base_class_offset(lv, (dd7752*), 0, "ee67752");
+ check_field_offset(lv, e, ABISELECT(12,8), "ee67752.e");
+ test_class_info(&lv, &cd_ee67752);
+ dp->~ee67752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee67752(Test_ee67752, "ee67752", ABISELECT(64,36));
+
+#else // __cplusplus
+
+extern void _ZN7ee67752C1Ev();
+extern void _ZN7ee67752D1Ev();
+Name_Map name_map_ee67752[] = {
+ NSPAIR(_ZN7ee67752C1Ev),
+ NSPAIR(_ZN7ee67752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee67752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(48,28), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(32,20), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 12, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(16,12), //bcp->offset
+ 7, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, 0, //bcp->offset
+ -1, //bcp->virtual_function_table_offset
+ 5, //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},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee67752[];
+extern void _ZN7ee677523barEv();
+extern void _ZN7ee677523fooEv();
+extern void ABISELECT(_ZTv0_n40_N7ee677523fooEv,_ZTv0_n20_N7ee677523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee677523fooEv,_ZThn12_N7ee677523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee677523barEv,_ZTv0_n24_N7ee677523barEv)();
+extern void ABISELECT(_ZThn16_N7ee677523barEv,_ZThn12_N7ee677523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677523barEv,_ZTv0_n16_N7ee677523barEv)();
+extern void ABISELECT(_ZThn32_N7ee677523barEv,_ZThn20_N7ee677523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee677523fooEv,_ZTv0_n12_N7ee677523fooEv)();
+extern void ABISELECT(_ZThn48_N7ee677523fooEv,_ZThn28_N7ee677523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee677523barEv,_ZTv0_n16_N7ee677523barEv)();
+extern void ABISELECT(_ZThn48_N7ee677523barEv,_ZThn28_N7ee677523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee67752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee67752[0]),
+ (VTBL_ENTRY)&_ZN7ee677523barEv,
+ (VTBL_ENTRY)&_ZN7ee677523fooEv,
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI7ee67752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee677523fooEv,_ZTv0_n20_N7ee677523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee677523barEv,_ZTv0_n24_N7ee677523barEv),
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI7ee67752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677523barEv,_ZTv0_n16_N7ee677523barEv),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI7ee67752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee677523fooEv,_ZTv0_n12_N7ee677523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee677523barEv,_ZTv0_n16_N7ee677523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee67752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee67752[] = {
+ ABISELECT(48,28),
+ ABISELECT(32,20),
+ ABISELECT(16,12),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee67752[] = {
+ ABISELECT(-16,-12),
+ ABISELECT(-16,-12),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-12),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee67752[] = {
+ ABISELECT(-32,-20),
+ ABISELECT(16,8),
+ ABISELECT(-32,-20),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee67752[] = {
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ ABISELECT(-48,-28),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee67752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee67752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee67752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee67752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee67752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee67752[] = {
+ {&(_ZTV7ee67752[5]), 5,26},
+ {&(_tg__ZTV6dd7752__7ee67752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee67752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee67752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee67752[4]), 4,6},
+ {&(_ZTV7ee67752[13]), 13,26},
+ {&(_ZTV7ee67752[19]), 19,26},
+ {&(_ZTV7ee67752[24]), 24,26},
+ {&(_tg__ZTV5cc752__7ee67752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee67752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee67752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee67752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee67752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee67752[];
+extern VTBL_ENTRY _ZTV7ee67752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee67752[];
+static VTBL_ENTRY alt_thunk_names1562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn28_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn28_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn20_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn12_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn12_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee677523fooEv,_ZTv0_n12_N7ee677523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee677523fooEv,_ZThn28_N7ee677523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee677523barEv,_ZTv0_n16_N7ee677523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee677523barEv,_ZThn28_N7ee677523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee677523barEv,_ZThn20_N7ee677523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee677523barEv,_ZTv0_n24_N7ee677523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677523barEv,_ZThn12_N7ee677523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee677523fooEv,_ZTv0_n20_N7ee677523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee677523fooEv,_ZThn12_N7ee677523fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee67752 = { "ee67752", // class name
+ bases_ee67752, 4,
+ &(vtc_ee67752[0]), // expected_vtbl_contents
+ &(vtt_ee67752[0]), // expected_vtt_contents
+ ABISELECT(64,36), // object size
+ NSPAIRA(_ZTI7ee67752),ABISELECT(24,12), //typeinfo_var
+ NSPAIRA(_ZTV7ee67752),26, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee67752),13, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1562,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct ee77752 : virtual dd7752 {
+ int e;
+ virtual void foo(); // _ZN7ee777523fooEv
+ virtual void bar(); // _ZN7ee777523barEv
+ ~ee77752(); // tgen
+ ee77752(); // tgen
+};
+//SIG(1 ee77752) C1{ VBC2{ VBC3{ VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi} v2 v1 Fi} v1 v2 Fi}
+
+
+void ee77752 ::foo(){vfunc_called(this, "_ZN7ee777523fooEv");}
+void ee77752 ::bar(){vfunc_called(this, "_ZN7ee777523barEv");}
+ee77752 ::~ee77752(){ note_dtor("ee77752", this);} // tgen
+ee77752 ::ee77752(){ note_ctor("ee77752", this);} // tgen
+
+static void Test_ee77752()
+{
+ extern Class_Descriptor cd_ee77752;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_ee77752, buf);
+ ee77752 *dp, &lv = *(dp=new (buf) ee77752());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(ee77752)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(ee77752)");
+ check_base_class_offset(lv, (aa2*)(bb52*), ABISELECT(64,32), "ee77752");
+ check_base_class_offset(lv, (bb52*)(cc752*), ABISELECT(48,24), "ee77752");
+ check_base_class_offset(lv, (cc752*)(dd7752*), ABISELECT(32,16), "ee77752");
+ check_base_class_offset(lv, (dd7752*), ABISELECT(16,8), "ee77752");
+ check_field_offset(lv, e, ABISELECT(8,4), "ee77752.e");
+ test_class_info(&lv, &cd_ee77752);
+ dp->~ee77752();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vee77752(Test_ee77752, "ee77752", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN7ee77752C1Ev();
+extern void _ZN7ee77752D1Ev();
+Name_Map name_map_ee77752[] = {
+ NSPAIR(_ZN7ee77752C1Ev),
+ NSPAIR(_ZN7ee77752D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_aa2;
+extern VTBL_ENTRY _ZTI3aa2[];
+extern VTBL_ENTRY _ZTV3aa2[];
+extern Class_Descriptor cd_bb52;
+extern VTBL_ENTRY _ZTI4bb52[];
+extern VTBL_ENTRY _ZTV4bb52[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT4bb52[];
+extern Class_Descriptor cd_cc752;
+extern VTBL_ENTRY _ZTI5cc752[];
+extern VTBL_ENTRY _ZTV5cc752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5cc752[];
+extern Class_Descriptor cd_dd7752;
+extern VTBL_ENTRY _ZTI6dd7752[];
+extern VTBL_ENTRY _ZTV6dd7752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6dd7752[];
+static Base_Class bases_ee77752[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_aa2, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_bb52, ABISELECT(48,24), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 13, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_cc752, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_dd7752, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 7, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI7ee77752[];
+extern void _ZN7ee777523fooEv();
+extern void _ZN7ee777523barEv();
+extern void ABISELECT(_ZTv0_n48_N7ee777523barEv,_ZTv0_n24_N7ee777523barEv)();
+extern void ABISELECT(_ZThn16_N7ee777523barEv,_ZThn8_N7ee777523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n56_N7ee777523fooEv,_ZTv0_n28_N7ee777523fooEv)();
+extern void ABISELECT(_ZThn16_N7ee777523fooEv,_ZThn8_N7ee777523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N7ee777523fooEv,_ZTv0_n20_N7ee777523fooEv)();
+extern void ABISELECT(_ZThn32_N7ee777523fooEv,_ZThn16_N7ee777523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N7ee777523barEv,_ZTv0_n24_N7ee777523barEv)();
+extern void ABISELECT(_ZThn32_N7ee777523barEv,_ZThn16_N7ee777523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777523barEv,_ZTv0_n16_N7ee777523barEv)();
+extern void ABISELECT(_ZThn48_N7ee777523barEv,_ZThn24_N7ee777523barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N7ee777523fooEv,_ZTv0_n12_N7ee777523fooEv)();
+extern void ABISELECT(_ZThn64_N7ee777523fooEv,_ZThn32_N7ee777523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N7ee777523barEv,_ZTv0_n16_N7ee777523barEv)();
+extern void ABISELECT(_ZThn64_N7ee777523barEv,_ZThn32_N7ee777523barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_ee77752[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI7ee77752[0]),
+ (VTBL_ENTRY)&_ZN7ee777523fooEv,
+ (VTBL_ENTRY)&_ZN7ee777523barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI7ee77752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777523barEv,_ZTv0_n24_N7ee777523barEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n56_N7ee777523fooEv,_ZTv0_n28_N7ee777523fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI7ee77752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N7ee777523fooEv,_ZTv0_n20_N7ee777523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N7ee777523barEv,_ZTv0_n24_N7ee777523barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI7ee77752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777523barEv,_ZTv0_n16_N7ee777523barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI7ee77752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N7ee777523fooEv,_ZTv0_n12_N7ee777523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N7ee777523barEv,_ZTv0_n16_N7ee777523barEv),
+};
+extern VTBL_ENTRY _ZTV7ee77752[];
+extern void _ZN6dd77523barEv();
+extern void _ZN6dd77523fooEv();
+static VTBL_ENTRY _tg__ZTV6dd7752__7ee77752[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&_ZN6dd77523barEv,
+ (VTBL_ENTRY)&_ZN6dd77523fooEv,
+};
+extern void ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv)();
+extern void ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV5cc752__6dd7752__7ee77752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__6dd7752__7ee77752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv)();
+extern void ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv)();
+extern void ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__6dd7752__7ee77752[] = {
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6dd7752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv),
+};
+extern void _ZN5cc7523fooEv();
+extern void _ZN5cc7523barEv();
+static VTBL_ENTRY _tg__ZTV5cc752__7ee77752[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&_ZN5cc7523fooEv,
+ (VTBL_ENTRY)&_ZN5cc7523barEv,
+};
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV4bb52__5cc752__7ee77752[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv)();
+extern void ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv)();
+extern void ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__5cc752__7ee77752[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5cc752[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv),
+};
+extern void _ZN4bb523barEv();
+static VTBL_ENTRY _tg__ZTV4bb52__7ee77752[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN4bb523barEv,
+};
+extern void _ZN3aa23fooEv();
+extern void ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv)();
+extern void ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3aa2__4bb52__7ee77752[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI4bb52[0]),
+ (VTBL_ENTRY)&_ZN3aa23fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv),
+};
+static VTT_ENTRY vtt_ee77752[] = {
+ {&(_ZTV7ee77752[6]), 6,36},
+ {&(_ZTV7ee77752[15]), 15,36},
+ {&(_ZTV7ee77752[23]), 23,36},
+ {&(_ZTV7ee77752[29]), 29,36},
+ {&(_ZTV7ee77752[34]), 34,36},
+ {&(_tg__ZTV6dd7752__7ee77752[5]), 5,7},
+ {&(_tg__ZTV5cc752__6dd7752__7ee77752[6]), 6,8},
+ {&(_tg__ZTV4bb52__6dd7752__7ee77752[4]), 4,5},
+ {&(_tg__ZTV3aa2__6dd7752__7ee77752[4]), 4,6},
+ {&(_tg__ZTV5cc752__7ee77752[4]), 4,6},
+ {&(_tg__ZTV4bb52__5cc752__7ee77752[4]), 4,5},
+ {&(_tg__ZTV3aa2__5cc752__7ee77752[4]), 4,6},
+ {&(_tg__ZTV4bb52__7ee77752[3]), 3,4},
+ {&(_tg__ZTV3aa2__4bb52__7ee77752[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI7ee77752[];
+extern VTBL_ENTRY _ZTV7ee77752[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT7ee77752[];
+static VTBL_ENTRY alt_thunk_names1563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N4bb523barEv,_ZTv0_n16_N4bb523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N4bb523barEv,_ZThn8_N4bb523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5cc7523fooEv,_ZTv0_n12_N5cc7523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523fooEv,_ZThn16_N5cc7523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5cc7523barEv,_ZTv0_n16_N5cc7523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5cc7523barEv,_ZThn16_N5cc7523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5cc7523barEv,_ZThn8_N5cc7523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6dd77523fooEv,_ZTv0_n12_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523fooEv,_ZThn24_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6dd77523barEv,_ZTv0_n16_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6dd77523barEv,_ZThn24_N6dd77523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6dd77523barEv,_ZThn16_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N6dd77523barEv,_ZTv0_n24_N6dd77523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523barEv,_ZThn8_N6dd77523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6dd77523fooEv,_ZTv0_n20_N6dd77523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6dd77523fooEv,_ZThn8_N6dd77523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N7ee777523fooEv,_ZTv0_n12_N7ee777523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee777523fooEv,_ZThn32_N7ee777523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N7ee777523barEv,_ZTv0_n16_N7ee777523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N7ee777523barEv,_ZThn32_N7ee777523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N7ee777523barEv,_ZThn24_N7ee777523barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N7ee777523fooEv,_ZTv0_n20_N7ee777523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777523fooEv,_ZThn16_N7ee777523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n56_N7ee777523fooEv,_ZTv0_n28_N7ee777523fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777523fooEv,_ZThn8_N7ee777523fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N7ee777523barEv,_ZTv0_n24_N7ee777523barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N7ee777523barEv,_ZThn16_N7ee777523barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N7ee777523barEv,_ZThn8_N7ee777523barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_ee77752 = { "ee77752", // class name
+ bases_ee77752, 4,
+ &(vtc_ee77752[0]), // expected_vtbl_contents
+ &(vtt_ee77752[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI7ee77752),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV7ee77752),36, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT7ee77752),14, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1563,
+};
+#endif // __cplusplus
+
+//============================================================================
+